如何将大量,大量和嵌套的数据从GCS加载到BigQuery

时间:2018-06-21 12:20:03

标签: google-bigquery google-cloud-storage

在将大量数据加载到Bigquery时遇到麻烦。

在GCS中,我有很多这样的文件:

gs://bucket/many_folders/yyyy/mm/dd/many_files.gz

我想将其加载到BigQuery,因此,我首先尝试:

bq load --source_format=NEWLINE_DELIMITED_JSON \
  --ignore_unknown_values\
  --max_bad_records=2100000000\
  --nosync\
  project:dataset.table \
  gs://bucket/* \
  schema.txt

由于超出“ max_bad_records”限制而失败(该文件是许多类型的日志的聚合,因此会导致许多错误)。

然后我计算发现需要使用“ *”,例如:

bq load --source_format=NEWLINE_DELIMITED_JSON \
  --ignore_unknown_values\
  --max_bad_records=2100000000\
  --nosync\
  gs://bucket/many_folders/yyyy/mm/dd/*\
  schema.txt

由于max_bad_records限制。

但是我发现它非常慢(由于BigQuery中的并行运行限制)。而且它也超出了日常加载工作的限制。我宁愿不选择此选项。

解决这种情况的任何想法?我想尽快加载这些数据。

感谢您阅读。

1 个答案:

答案 0 :(得分:0)

我通过将GCS数据加载为一列来解决它。 然后下一步,我解析数据。