google-bigquery - 使用 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.tbl2
where 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.tbl2
where DATE(f3) IN ('2018-09-13','2018-09-14','2018-09-15','2018-09-16') 而 f1 不是空且 f2 不为空
解决方案
当您设置 partition_expiration_days=3 时,这意味着所有超过 3 天的分区都应该过期并被删除。您插入了从 9/13 到 9/16 的数据,自从您昨天发布以来,我假设您在 9/26 运行了查询。所以数据在插入表后立即过期。
推荐阅读
- php - Laravel 请求日期验证
- azure-web-app-service - Azure 应用服务交换的时间是直接部署的数倍
- debugging - Three.JS VRAM 内存泄漏时添加删除 THREE.Geometry 到场景
- ruby-on-rails - 包含搜索字符串的 rails/PostgreSQL 查询
- regex - 如何使用正则表达式选择包含特定单词的多行?
- android - WorkManager 不适用于百度推送 SDK
- lua - lua 打开带有表格的文件并更改某些值
- gradle - 跳过任务,因为它没有源文件,也没有以前的输出文件
- asp.net - 如何使用 aspnet 2.0 发布到 API
- javascript - 由于未知原因,React 钩子无法使用 setState