2016-05-25 44 views
2

我正在使用bq命令行並試圖每天在一個表中插入大量的json文件。BigQuery快速插入數百萬行的方法

我的方法:

  1. 列表中的所有文件,以推動(日期命名YYYMMDDHHMM.meta1.meta2.json)
  2. 串連在同一天的文件=> YYYMMDD.ndjson
  3. 分裂YYYMMDD。 ndjson文件(500行文件的每個)YYYMMDD.ndjson_splittedij

遍歷YYYMMDD.ndjson_splittedij並運行

bq insert --template_suffix=20160331 --dataset_id=MYDATASET TEMPLATE YYYMMDD.ndjson_splittedij 

此方法有效。我只是想知道是否有可能改進它。

回答

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文件必須小於4 GB,如果不壓縮必須低於5TB,所以更大的文件更好。總是嘗試使用10行樣本文件,直到您獲得命令的工作。

+0

我們每天必須有1張桌子:)。似乎負載工作的配額是每天1000。 –

+0

是的,但想象一下1000 * 5TB意味着5PB。您是否認真想在同一天獲得這些數據? – Pentium10

+0

誤會。系統L每天在文件夾B中生成大約30 000個文件。從B腳本S生成的文件與屬於文件夾B中的文件相同D. D可能包含數百萬個文件。我們的目標是在儘快將它們發送到BQ之前將它們整合起來。 –

相關問題