【问题标题】:Making sure data is loaded确保数据已加载
【发布时间】:2012-06-13 15:00:07
【问题描述】:

我使用以下命令加载数据。

/home/bigquery/bq load --max_bad_record=30000 -F '^'  company.junelog entry.gz country:STRING,telco_name:STRING,datetime:STRING, ...

当我得到非零返回码时,数据仍然被加载。如何确保命令成功与否?检查返回码似乎没有帮助。有时我会再次加载相同的文件,因为出现错误但数据已在 bigquery 中可用。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    您可以使用加载作业的 bq show -j 并检查作业状态。 如果您正在编写代码来执行加载,因此您不知道作业 id,您可以将作业 id 传递给加载操作(只要它是唯一的),这样您就会知道要检查哪个作业。

    例如你可以运行

    /home/bigquery/bq load --job_id=some_unique_job_id --max_bad_record=30000 -F '^' company.junelog entry.gz country:STRING,telco_name:STRING,datetime:STRING, ...'

    那么 /home/bigquery/bq show --j some_unique_job_id

    请注意,如果您为每次加载创建新表(而不是追加),您可以使用写入处置 WRITE_EMPTY 来确保仅在表为空时才进行加载,从而防止两次添加相同的数据。这在 bq.py 中不直接支持,但您可以使用底层 bigquery_client.py 进行此调用,或直接使用 REST api。

    【讨论】:

    • # FATAL Flags parsing error: Unknown command line flag 'job_id' # Run 'bq help' 获取帮助 ## /home/bigquery/bq version ## 这是 BigQuery CLI v2.0.4跨度>