如何在Google Bigquery中创建按日期(每年)分区的表格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Google Bigquery中创建按日期(每年)分区的表格相关的知识,希望对你有一定的参考价值。
这是我的数据样本
{"userName":"sampleUserName","DateCreated":"1519302159.248"}
这就是我试图创建表格的方式
CREATE TABLE dataSet.myTableName (userName string, DateCreated DATE, email string)
PARTITION BY DateCreated
OPTIONS(
description="a table partitioned by DateCreated"
)
但是当我尝试从newline_delimited_json从命令行加载数据时,我得到了这个错误
Invalid schema update. Field DateCreated has changed type from DATE to TIMESTAMP
我认为问题是DateCreated字段是DATE类型,我不知道如何使它成为TIMESTAMP,文档说使用partition_expression,我该怎么做,目的是按日期创建一个分区表(在我的情况是由DateCreated)例如按年分区。我如何改进我的查询以实现这一点,任何建议或指向我的示例或文档将是伟大的。
答案
您可以使用带时间戳分区的CREATE TABLE
语句:
CREATE TABLE dataSet.myTableName
(
userName STRING,
DateCreated TIMESTAMP,
email STRING
)
PARTITION BY DATE(DateCreated)
OPTIONS(
description="a table partitioned by DateCreated"
)
PARTITION BY DATE(<timestamp_column>)
- 使用TIMESTAMP
列的日期对表进行分区
如果打算按年划分,您有几个选择:
- 每当您插入表格时,都会将时间戳截断到年初。
- 只需插入时间戳而不截断,但在查询表时,按年份开始过滤,例如
WHERE _PARTITIONTIME >= '2018-01-01'
或WHERE _PARTITIONTIME >= '2016-01-01' AND _PARTITIONTIME < '2018-01-01'
。
以上是关于如何在Google Bigquery中创建按日期(每年)分区的表格的主要内容,如果未能解决你的问题,请参考以下文章
我们可以在 BigQuery 中自定义函数吗?如何在 BigQuery 中创建日期参数?