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
我正在使用 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