分区表BigQuery(带自定义字段)

时间:2018-03-26 15:24:01

标签: google-cloud-platform google-bigquery

我找不到任何显示如何使用自定义字段为分区表编写JSON的示例。下面是一个如何指定按类型" DAY"分区的表的示例,但是如果我另外想要按特定字段进行分区 - JSON将如何显示?

{
  "tableReference": {
    "projectId": "bookstore-1382",
    "datasetId": "exports",
    "tableId": "partition"
  },
  "timePartitioning": {
    "type": "DAY"
  }
}

1 个答案:

答案 0 :(得分:2)

看看API referencetimePartitioning对象当前支持以下属性:

  • expirationMs
  • field
  • requirePartitionFilter
  • type

我不会在这里复制/粘贴所有评论,但这就是它对field所说的内容:

  

[Experimental] [可选]如果未设置,则表被分区   伪列' _PARTITIONTIME&#39 ;;如果设置,则表被分区   这个领域。该字段必须是顶级TIMESTAMP或DATE字段。它的   模式必须是NULLABLE或REQUIRED。

在您的情况下,有效负载看起来像:

{
  "tableReference": {
    "projectId": "<your project>",
    "datasetId": "<your dataset>",
    "tableId": "partition"
  },
  "timePartitioning": {
    "type": "DAY",
    "field": "<date_or_timestamp_column_name>"
  }
}

或者,您可以使用标准SQL发出CREATE TABLE DDL statement。举个例子:

#standardSQL
CREATE TABLE `your-project.your-dataset.table`
(
  x INT64,
  event_date DATE
)
PARTITION BY event_date;