将列描述添加到BiqQuery表?

时间:2015-05-02 21:51:21

标签: google-bigquery

需要为BigQuery表的每一列添加描述,似乎我可以手动执行,如何以编程方式执行?

3 个答案:

答案 0 :(得分:3)

正如Adam所提到的,您可以使用API​​上的表PATCH方法来更新架构列。另一种方法是使用bq。

您可以通过执行以下操作来获取架构:

1:获取JSON架构:

TABLE=publicdata:samples.shakespeare

bq show --format=prettyjson ${TABLE} > table.txt

然后将架构从table.txt复制到schema.txt ......它看起来像:

[
  {
    "description": "A single unique word (where whitespace is the delimiter) extracted from a corpus.",
    "mode": "REQUIRED",
    "name": "word",
    "type": "STRING"
  },
  {
    "description": "The number of times this word appears in this corpus.",
    "mode": "REQUIRED",
    "name": "word_count",
    "type": "INTEGER"
  },
  ....
]

2:将描述字段设置为您想要的任何内容(如果不存在,请添加它)。

3:告诉BigQuery使用添加的列更新架构。请注意,schema.txt必须包含完整的架构。

 bq update --schema schema.txt -t ${TABLE}

答案 1 :(得分:1)

BigQuery 现在支持 ALTER COLUMN SET OPTIONS 语句,可用于更新列的描述

示例:

ALTER TABLE mydataset.mytable
ALTER COLUMN price
SET OPTIONS (
  description="Price per unit"
)

文档:

https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_column_set_options_statement

答案 2 :(得分:0)

您可以使用REST API创建或更新表,并在架构中指定字段描述(schema.fields [] .description)。

https://cloud.google.com/bigquery/docs/reference/v2/tables#methods