2012-01-12 16 views
2

大きなCSVファイル(5.4GB)があります。 6列の行がたくさんあるテーブルです。私はいくつかのテーブルにまたがってMySQLにインポートしたいと思っています。さらに、インポートする前にデータにいくつかの変換を行う必要があります(たとえば、セルを解析し、そのパーツをいくつかのテーブル値などに入力するなど)。今私は、変換を行い、一度に行を挿入するスクリプトを行うことができますが、データをインポートするには数週間かかるでしょう。私は、MySQL用のLOAD DATA INFILEがあることを知っていますが、SQLで必要な変換を行う方法や方法がわかりません。Djangoと変換を使用して大規模なCSVファイルをMySQLに読み込む

アドバイスを進めてください。

答えて

2

私の限られた経験では、Django ORMをこのようなものに使用することは望ましくありません。それははるかに遅いでしょう。 Pythonのcsvライブラリを使用して、CSVファイルで動作するPythonスクリプトを作成します。そして、ネイティブMySQLファシリティLOAD DATA INFILEを使用してデータをロードします。

CSVファイルをマッサージするPythonスクリプトが遅すぎる場合、それらの言語のためのまともなCSVライブラリを見つけることができると仮定して、CまたはC++でその部分を書くことを検討するかもしれません。

+0

ええ、それが好ましい方法だと思います。アドバイスをいただきありがとうございます。 –

関連する問題