問題
XMLのような(フィルタリングする必要がある非Unicodeを持っている)データがあります。
<row><div>1234</div><dept>ABCD</dept></row>
<row><div>5678</div><dept>EFGH</dept></row>
理解しやすいように、2 つの列のタグだけに言及します。実際には、それぞれに20を超える列タグがあります
XML データは、次のように Oracle スキーマ テーブルにレコードとして直接挿入されます。
div_c qdept
1234 ABCD
5678 EFGH
詳しくは
- XML ファイルは 9 ギガ以上で、FTP で利用できます。
- データベース テーブルの列名は、XML 列のタグ名とは異なる場合があります。
- 行を除外するには、いくつかのルールを追加/定義する必要がある場合があります。
質問
この膨大な XML を解析し、そのレコードがデータベース テーブルに存在するかどうかを確認するには、どのような方法が適切でしょうか? 利用できるオープンソース ツールはありますか?
試していること
- 無効な文字フィルター (FilterReader) を備えたデフォルトの実装 (XMLInputFactory) を使用して StAX パーサーを作成しました。
- XML をチャンクとして分割する計画
- 各チャンクを並行スレッドで処理する
- 各スレッドは、それがデータベースに存在するかどうかを確認するクエリを生成します (私はそのばかげたことを知っています)
- 接続プールを作成し、各スレッドでそれらのクエリを実行します
これは私がやっていることが本当に最悪であり、完了するまでに何年もかかることを私は知っています。チェックを簡単にし、XML 解析を高速にするために ORM を使用するかどうかなど、これに関するアドバイスが本当に必要です。
そのようないくつかの提案は本当に私を助けます.