2011-12-19 13 views
1

speadsheetからJavaを使用してデータベースにデータをインポートしようとしています。私はこれを行うことができる2つの方法があります:1)読み込みとspeardsheetsからデータを抽出し、ArrayLists、ベクトルや異なるオブジェクトのマップなどのデータ構造に整理、私は余分なエントリなどを取り除くことができるデータ構造をデータベースに格納します。 2)データを抽出して、細胞が読み出され抽出されるとすぐにそれらをデータベースに入れる。私は最初の方法はおそらくより良いと思うが、2番目の方法は速くなるだろうか?私が考えるべき他の考慮すべき点は何ですか?スプレッドシートのデータをインポートする方が良いでしょうか?

ありがとうございます。

+0

を参照しているタスクの種類のためのETLツール(抽出、変換、ロード)の使用を検討することができます。あなたは6つの質問をしましたが、いずれかの質問に答えることはできませんでした。回答の横にあるチェックマークをクリックして回答を受け入れます。 – CoolBeans

答えて

3

executeBatch()ここではアプローチ#1に似ています。だから、基本的にバッチサイズ(つまり1000レコード)のスプレッドシートからデータを読み込んだ後、一度にバッチ処理をDBにコミットします。その後、次のバッチに移動します。このアプローチでは、データベースを効率的に活用し、ネットワークトリップを節約し、メモリ不足につながる可能性のある多くのデータをメモリに蓄積することはありません。同じ接続とプリペアドステートメントオブジェクトも再利用する必要があります。

データのクリーンアッププロセスに関しては、テーブルなどの永続ストレージに入れる前に確実にデータをサニタイズする必要があります。将来的にレポートを生成したり他のアプリケーションでデータを使用する必要があるかもしれないので、きれいな&テーブルを整えておくと、長期的に役立ちます。バッチアプリケーションの場合、は通常で、パフォーマンス要件はトランザクションシステムほど高くはありません。

Excelドキュメントを読むには、apache poiのようなヘルパーライブラリも利用する必要があります。データ構造に関しては、データに依存しますが、一般的にArrayListで十分です。

もう一つのポイントは、ほとんどのETLツールが、この種のデータ読み込みタスクをすぐに利用できることです。状況によっては、KettleのようなETLツールを見てデータを読み込むことを強くお勧めします。あなたは時間を節約して新しいツールを学ぶことができます。

希望すると便利です。

2

あなたは、コミュニティからの将来の答えを奨励するための答えを受け入れてください、あなたが

関連する問題