我正在尝试使用INSERT INTO DML命令将数据从未分区的表插入分区的BigQuery表中。
遵循的步骤:
1。创建空的分区表
创建表project.dataset.tbl1
(field1 STRING,field2 STRING,field3 TIMESTAMP)
按日期划分(field3)
选项(
partition_expiration_days = 3,
description =“对表进行分区的表”
)
2。将数据从表2插入表1
插入dataset.tbl1
(field1,field2,field3)AS
从project.dataset.tbl2
中选择f1,f2,f3,其中
DATE(f3)IN('2018-09-13','2018-09-14','2018-09-15','2018-09-16')和f1不为空,f2不为空>
上面的DML语句被执行但没有插入记录。因此,我检查SELECT查询是否获取数据。
以下获取13条记录。
从project.dataset.tbl2
中选择f1,f2,f3,其中
DATE(f3)IN('2018-09-13','2018-09-14','2018-09-15','2018-09-16')和f1不为空,f2不为空>
答案 0 :(得分:0)
当您设置partition_expiration_days = 3时,这意味着所有早于3天的分区都将过期并被删除。您从9/13到9/16插入了数据,并且由于您昨天发布了数据,所以我假设您在9/26上运行了查询。因此,数据在插入表后立即过期。