gpt4 book ai didi

sql - 从现有表创建 BigQuery 表,包括 _PARTITIONTIME

转载 作者:行者123 更新时间:2023-12-05 04:28:56 24 4
gpt4 key购买 nike

我想从现有表创建一个新表,并添加一列。但是,这似乎有点棘手,我希望它按 _PARTITIONTIME 进行分区。

我知道我可以从现有表创建一个表,如下所示:

CREATE OR REPLACE TABLE `mydataset.mytable_new`
AS SELECT * FROM `mydataset.mytable`
--JOIN the new column here
LIMIT 0

我也知道我可以创建一个分区表,像这样:

CREATE OR REPLACE TABLE `mydataset.mytable_new`
(
date DATE,
var1 STRING,
var2 INT64,
--add new column here
)
PARTITION BY DATE(_PARTITIONTIME);

但是:我怎样才能将两者结合起来呢?我试过这个:

CREATE OR REPLACE TABLE `mydataset.mytable_new`
PARTITION BY DATE(_PARTITIONTIME)
AS SELECT * FROM `mydataset.mytable`
-- JOIN new column here
LIMIT 0

但是,这给了我错误“无法识别的名称:_PARTITIONTIME”。

非常感谢任何提示!

最佳答案

这是 CREATE TABLE 语法的分区表达式的记录限制:

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

_PARTITIONDATE. Partition by ingestion time with daily partitions. This syntax cannot be used with the AS query_statement clause.

我相信您应该能够拆分工作。使用语句创建新表,然后发出 INSERT 语句以从原始表填充。

但是,如果您已经在处理一个相当大的表,您可能需要重新考虑这种分区方案。默认情况下,原始表中的所有数据都将位于单个分区(当前日期)中。

关于sql - 从现有表创建 BigQuery 表,包括 _PARTITIONTIME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72474976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com