如何在BigQuery中基于timestamp列创建分区表?报错求助
解决BigQuery创建时间分区表的错误问题
嘿,我来帮你搞定这个报错!
你遇到的问题其实是BigQuery对时间分区表的明确规则要求:不能直接用timestamp类型的字段作为分区表达式,必须将timestamp字段转换为DATE类型,也就是用DATE(<timestamp_column>)的形式,这和你收到的错误提示内容完全对应。
修改后的正确SQL
create table myfirstdataset.partition_table1(ts timestamp, transaction_id int64) partition by date(ts) as select timestamp '2013-12-31 01:55:02.000 UTC' ts, 10 transaction_id union all select timestamp '2013-12-31 02:10:02.000 UTC' ts, 5 transaction_id union all select timestamp '2013-12-31 04:20:02.000 UTC' ts, 6 transaction_id
简单说明
把partition by ts改成partition by date(ts)后,表就会按照ts字段对应的日期来创建分区。你这三条数据都是2013-12-31的,所以会被分到同一个日期分区里;之后如果有不同日期的数据插入,会自动进入对应的分区,完全符合BigQuery的分区规则。
内容的提问来源于stack exchange,提问作者user444422
相关产品推荐
相关产品推荐

