BigQuery bq 命令 - 仅在 table 为空或不存在时加载

BigQuery bq command - load only if table is empty or doesn't exist

我正在使用 bq 执行加载命令,例如:

bq load ds.table gs://mybucket/data.csv dt:TIMESTAMP,f1:INTEGER

我想仅在 table 为空或不存在时加载数据。

可能吗?

编辑:

基本上我想要通过 bq 命令行工具的 WRITE_EMPTY API 选项:

https://cloud.google.com/bigquery/docs/reference/v2/jobs#configuration.load.writeDisposition

If the table already exists and contains data, a 'duplicate' error is returned in the job result.

您可以使用 BQ 命令行工具。

获取Table信息

bq show <project_id>:<dataset_id>.<table_id>

列出表

 bq ls [project_id:][dataset_id]

如果您查看 bq.py,其中包含 BigQuery CLI 的源代码,您会发现 _Load() 方法未实现 WRITE_EMPTY API 选项。它是默认的 WRITE_APPEND 或可选的 WRITE_TRUNCATE.

正如您所说,API 确实支持 WRITE_EMPTY - 如果您想在 CLI 上看到它作为一个选项,您可以在 https://code.google.com/p/google-bigquery/issues/list?q=label:Feature-Request