如何以编程方式在 BigQuery 表中添加字段描述
Posted
技术标签:
【中文标题】如何以编程方式在 BigQuery 表中添加字段描述【英文标题】:How to add field descriptions programmatically in BigQuery table 【发布时间】:2015-12-22 01:12:06 【问题描述】:我想以编程方式在 bq 表中添加字段描述,我知道如何在 UI 中执行。 我有这个要求是因为我的数据集中很少有每天刷新的表,我们使用 "writeMode": "WRITE_TRUNCATE"。这也删除了表的所有字段名称的描述。
我还在我的架构文件中为表添加了描述,就像这样
"name" : "tax",
"type" : "FLOAT",
"description" : "Tax amount customer paid"
但在运行脚本加载数据后,我在最终表格中看不到说明。
【问题讨论】:
您能否澄清您是否为指定 WRITE_TRUNCATE 的加载作业提供模式?如果是,那么您可以在架构中包含“描述”(请参阅下面的答案)。如果不是,那么我怀疑您正在继承原始目标表的架构,该架构应该包含原始描述。如果是这种情况,这听起来像是一个错误:你能提供一个遇到这个问题的工作的 project_id:job_id 吗?在此处发帖或发送电子邮件至 msheldon@google.com,谢谢。 【参考方案1】:某些 Tables API (https://cloud.google.com/bigquery/docs/reference/v2/tables) 允许您设置表和架构的字段描述
您可以在期间设置描述 表创作 - https://cloud.google.com/bigquery/docs/reference/v2/tables/insert 或在使用以下 API 之一创建表之后:Patch - https://cloud.google.com/bigquery/docs/reference/v2/tables/patch 或更新 - https://cloud.google.com/bigquery/docs/reference/v2/tables/update
我认为,在你的情况下,Patch API 更合适 下面的链接显示了您可以使用这些 API 设置的表资源 https://cloud.google.com/bigquery/docs/reference/v2/tables#resource
【讨论】:
【参考方案2】:BigQuery 加载作业接受包含每个字段的“描述”的架构。
https://cloud.google.com/bigquery/docs/reference/v2/jobs#configuration.load
如果您在 WRITE_TRUNCATE 操作期间指定说明以及您正在创建的每个字段,则说明应应用于目标表。
这是来自上述链接的 sn-p,其中包含您指定的架构:
"load":
"sourceUris": [
string
],
"schema":
"fields": [
"name": string,
"type": string,
"mode": string,
"fields": [
(TableFieldSchema)
],
"description": string
]
,
【讨论】:
以上是关于如何以编程方式在 BigQuery 表中添加字段描述的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery:如何将字段添加到 REPEATED 记录?