【问题标题】:How to add field descriptions programmatically in BigQuery table如何以编程方式在 BigQuery 表中添加字段描述
【发布时间】: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,谢谢。

标签: google-bigquery


【解决方案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
          }
        ]
      },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-17
      • 2014-03-23
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 2017-02-19
      • 2014-06-26
      相关资源
      最近更新 更多