如何以编程方式在 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中以编程方式更新/插入数据

BigQuery:如何获取列中特定字段的值?

如何在 BigQuery 上展开数组以将列添加到现有表

BigQuery:如何将字段添加到 REPEATED 记录?

以编程方式为 BigQuery 服务传递服务帐户凭据(JSON 文件)

如何以编程方式添加文本字段和按钮?