2016-11-27 6 views
0

私はGoogle BigQueryに移行しようとしている比較的大きなSQLiteテーブル(500万行、2GB)を持っています。私がデータベース内の他のテーブルに使用した簡単な解決方法は、SQLite Manager(Firefox拡張機能)をCSVにエクスポートするのと同じものを使用することでしたが、これは失敗します。問題のテーブルをエクスポートします。私はこれにアプローチする最善の方法を考えようとしており、以下を思いついています。BigQueryへの非常に大きなsqliteテーブルのインポート

  1. 巨大な単一のCSVを手動で書き込むものを書きます。これは多くの理由から悪い考えですが、大きな理由の1つは、フィールドの1つがBQのインポートツールでサポートされている区切り文字のいずれかに必然的に矛盾するテキストデータであり、BQが大規模な単一のCSVをサポートする
  2. それぞれを〜100k行のような一連のCSVに手動でエクスポートするスクリプトを作成します。主な問題は、50個のファイルをインポートする必要があるということです。
  3. 一連のJSONを処理し、そこから対処する方法を理解してください。
  4. これをMySQLにインポートしてから、mysqldumpを実行してください。
  5. Avroを使用してください同じ#2のようにバイナリになることを除いて、必然的に失敗するとデバッグするのが難しくなるでしょう。

このデータはローカルのElasticSearchノードにもありますが、それをBQに移行します。誰にも何か提案はありますか?私がオンラインで見つけたものの大半は、物事をBQから取り出そうとしています。

+0

bigqueryのCSV、JSON、(推奨)Avroのいずれかを使用して、5行から100行のサンプルを実行するスクリプトを作成します。 2GBが大きくない場合、BigQueryの非圧縮の制限は5TBです。 – Pentium10

答えて

1

(2)は問題ありません。 BQはインポートジョブごとに最大10kファイルをインポートできます。

また、BQは、入力を断片化することができる限り(テキストベースの形式は圧縮されず、引用符付き改行なしのCSVファイル)、非常に大きなCSV/JSON/AVROファイルをインポートすることもできます。

https://cloud.google.com/bigquery/quota-policy#importを参照してください。

関連する問題