0

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

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

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

4

1 回答 1

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。

于 2012-06-13T16:01:44.183 回答