我正在谷歌上一门课程。现代化的数据湖和数据仓库。在任务中,他们要求创建一个分区表,并填充源表中的所有信息,我执行代码,表被创建但为空。我还尝试创建空表和下一个插入,但我的表中也没有信息。,在这种情况下,日志显示已插入: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-25
和oxford_policy_tracker
表已经过了到期日,即'2021-09-10' + 360 days
。
因此,Bigquery将丢弃所有过时的数据,并且不会在新表中放入任何内容。
结论-谷歌实验室需要更新课程材料。