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 命令 - 仅在表为空或不存在时加载的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 ViewBag 属性是不是为空或不存在

Symfony2,创建querybuilder where子句,不为空或不为空

Node.js 请求下载文件有时为空或不存在

在 Java DB2 JDBC 中:如何在 SELECT 语句的 WHERE 子句中使用空参数,其中值可以为空或不为空?

在查询SQL语句中为空或不为空怎么写

BigQuery:Google Ads 报告转换:地理绩效报告:GeoStats 表为空