使用其他表中的数据按日期创建表分区时出现问题.在谷歌云中



我正在谷歌上一门课程。现代化的数据湖和数据仓库。在任务中,他们要求创建一个分区表,并填充源表中的所有信息,我执行代码,表被创建但为空。我还尝试创建空表和下一个插入,但我的表中也没有信息。,在这种情况下,日志显示已插入:XXX行。但是,当我检查预览或查询SELECT*时,我的表仍然是空的。拜托,为什么会发生这种事?帮助

#standardSQL
CREATE OR REPLACE TABLE
covid_598.oxford_policy_tracker_527
PARTITION BY
date OPTIONS ( partition_expiration_days=360 ) AS (
SELECT
oxford.*
FROM
bigquery-public-data.covid19_govt_response AS oxford
WHERE
alpha_3_code NOT IN ("GBR",
"BRA",
"CAN",
"USA") )

当您运行下面的查询时,它会创建表,但您在其中看不到任何数据。

#standardSQL
CREATE OR REPLACE TABLE `covid_598.oxford_policy_tracker_527`
PARTITION BY date OPTIONS ( partition_expiration_days=360 ) AS
SELECT oxford.*
FROM `bigquery-public-data.covid19_govt_response.oxford_policy_tracker` AS oxford
WHERE alpha_3_code NOT IN ("GBR", "BRA", "CAN", "USA");

这是因为表的每个部分都设置了过期时间

当您尝试以下查询时,您可以看到分区列date的最大时间,即2021-09-10

SELECT MAX(date)
FROM `bigquery-public-data.covid19_govt_response.oxford_policy_tracker`;

PO在2022-09-25oxford_policy_tracker表已经过了到期日,即'2021-09-10' + 360 days

因此,Bigquery将丢弃所有过时的数据,并且不会在新表中放入任何内容。

结论-谷歌实验室需要更新课程材料。

相关内容

  • 没有找到相关文章

最新更新