2016-05-25 9 views
2

私はbqコマンドラインを使用していて、大量のjsonファイルを1日に1つのテーブルに挿入しようとしています。BigQueryを使用して100万行を高速に挿入する

私のアプローチ:

  1. リスト即日ファイル=> YYYMMDD.ndjson
  2. スプリットYYYMMDDでプッシュ(YYYMMDDHHMM.meta1.meta2.jsonという名前日付)
  3. CONCATENATEされるすべてのファイル。 ndjsonファイル(500行はそれぞれのファイル)YYYMMDD.ndjson_splittedijオーバーYYYMMDD.ndjson_splittedij

ループと

0123を実行します

このアプローチは機能します。私はそれが改善できるかどうか疑問に思います。

答えて

3

また、ストリーミングの挿入とジョブの読み込みが混乱しています。 各ファイルを500行に分割する必要はありません(ストリーミング・インサートに適用されます)。

あなたは、挿入のための非常に大きなファイルを持ってここに記載されているコマンドライン]タブの例を見ることができます:https://cloud.google.com/bigquery/loading-data#loading_csv_files

あなたはのみ実行する必要があります。

bq load --source_format=NEWLINE_DELIMITED_JSON --schema=personsDataSchema.json mydataset.persons_data personsData.json 

圧縮されていない場合、圧縮JSONファイルが4GBの下でなければなりません5 TB未満でなければなりません。コマンドが機能するまで、常に10行のサンプルファイルで試してください。

+0

1日あたり1つのテーブルが必要です。:)負荷ジョブのクォータは1日あたり1000であるようです。 –

+0

ええ、しかし、1000 * 5TBは5ペタバイトを意味します。同じ日にそのデータ量が欲しいと真剣に考えていますか? – Pentium10

+0

誤解。毎日システムLはフォルダB内に約30,000のファイルを生成する.BのスクリプトSは、フォルダDにBに属するファイルを生成する.Dには何百万ものファイルが含まれている可能性がある。目標はファイルをできるだけ早くBQに送信する前にファイルを集計することです。 –

関連する問題