首页 > 解决方案 > 使用 bigquery 将数据插入分区表不会插入数据

问题描述

我正在尝试使用 INSERT INTO DML 命令将数据从非分区表插入到分区的 BigQuery 表中。

遵循的步骤:

1.创建空分区表

CREATE TABLE project.dataset.tbl1 ( field1 STRING, field2 STRING, field3 TIMESTAMP) PARTITION BY DATE(field3) OPTIONS( partition_expiration_days=3, description="a table partitioned " )

2.将table2中的数据插入table1

INSERT INTO dataset.tbl1(field1, field2,field3) AS select f1, f2,f3 from project.dataset.tbl2where DATE(f3) IN ('2018-09-13','2018-09-14','2018-09-15','2018 -09-16') 并且 f1 不为空且 f2 不为空

上面的 DML 语句被执行但没有插入记录。所以我检查 SELECT 查询是否获取数据。

下面获取 13 条记录。

选择 f1, f2,f3 from project.dataset.tbl2where DATE(f3) IN ('2018-09-13','2018-09-14','2018-09-15','2018-09-16') 而 f1 不是空且 f2 不为空

标签: google-bigquery

解决方案


当您设置 partition_expiration_days=3 时,这意味着所有超过 3 天的分区都应该过期并被删除。您插入了从 9/13 到 9/16 的数据,自从您昨天发布以来,我假设您在 9/26 运行了查询。所以数据在插入表后立即过期。


推荐阅读