私は少し奥行きが足りないかもしれませんが、誰かが大きな(11.2GB)タブ区切りテキストファイル(2.2GB tar.gzファイル)をMySQL 5.5.41またはPostgreSQL 9.3.6にインポートした経験があることを期待して、このクエリを送信します。空間データ(緯度、経度、高度)であるため、フィールドには倍精度が必要です。
サーバーと対話するためにphpMyAdminとphpPGAdminを使用してUbuntu 14.04でMySQLとPostgreSQLをセットアップしています。ただし、コマンドラインの操作はおそらくより良いと思います。
私は少し読みましたが、MySQLのデータを分割する方法があるようです(SQLDumpSplitter2- http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/ =)。
提案や代替オプションは大歓迎です。
ありがとうポール
PostgreSQLの場合、 pgloader
の使用をお勧めします。
pgloader
は、インポートできない行を別のテキストファイルに残します。そのため、問題の原因を確認し、エラーを修正して、データのインポートを完了できます。 COPY
は、予期しない行に遭遇したときに単にクラッシュしました。これは、非常に大きなファイルの場合に数回発生する可能性があります。
pgloader
は、データを並行してロードするように設定することもできますが、単一のテーブルをロードするだけの場合、どの程度役立つかわかりません。
MySQLの場合、標準のLOAD DATA LOCAL INFILE
は、あなたが手に入れるのと同じくらい高速です(私の知る限り)。インポートできない行ごとにwarning
を吐き出すので、後で戻ってそのデータを確認できます。
それ以外は、11.2 GBは悪くありません。インポートするテーブルの既存のインデックスをすべて削除し、後でインデックスを再作成してください。
同等のサイズのテキストファイルを問題なく両方のデータベースにインポートしました。データのロードとインデックスの作成には数時間かかる場合があるため、一晩置いてください。