BigQuery bq 命令 - 仅在表为空或不存在时加载
Posted
技术标签:
【中文标题】BigQuery bq 命令 - 仅在表为空或不存在时加载【英文标题】:BigQuery bq command - load only if table is empty or doesn't exist 【发布时间】:2015-04-20 11:38:37 【问题描述】:我正在使用 bq 执行加载命令,例如:
bq load ds.table gs://mybucket/data.csv dt:TIMESTAMP,f1:INTEGER
我只想在表为空或不存在时加载数据。
有可能吗?
编辑:
基本上我想通过 bq 命令行工具使用 WRITE_EMPTY API 选项:
https://cloud.google.com/bigquery/docs/reference/v2/jobs#configuration.load.writeDisposition
如果表已存在且包含数据,则作业结果中会返回“重复”错误。
【问题讨论】:
BigQuery - Check if table already exists的可能重复 【参考方案1】:如果您查看包含 BigQuery CLI 源代码的 bq.py,您会发现 _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 提交功能请求
【讨论】:
【参考方案2】:您可以使用 BQ 命令行工具。
获取表格信息
bq show <project_id>:<dataset_id>.<table_id>
列出表格
bq ls [project_id:][dataset_id]
【讨论】:
以上是关于BigQuery bq 命令 - 仅在表为空或不存在时加载的主要内容,如果未能解决你的问题,请参考以下文章
Symfony2,创建querybuilder where子句,不为空或不为空
在 Java DB2 JDBC 中:如何在 SELECT 语句的 WHERE 子句中使用空参数,其中值可以为空或不为空?