BigQuery以更快的方式插入数百万行

时间:2016-05-25 12:54:42

标签: google-bigquery

我正在使用bq命令行并尝试每天插入大量的json文件和一个表。

我的方法:

  1. 列出要推送的所有文件(日期名为YYYMMDDHHMM.meta1.meta2.json)
  2. 在同一天连接file => YYYMMDD.ndjson
  3. 拆分YYYMMDD.ndjson文件(每行500行)YYYMMDD.ndjson_splittedij
  4. 循环遍历YYYMMDD.ndjson_splittedij并运行

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

    这种方法有效。我只是想知道是否有可能改进它。

1 个答案:

答案 0 :(得分: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文件必须低于5 TB,则压缩的JSON文件必须小于4 GB,因此更大的文件更好。始终尝试使用10行样本文件,直到命令正常工作。