【发布时间】:2016-06-13 14:44:18
【问题描述】:
我遇到了时间分区 bigquery 表的一些奇怪的未记录行为:
我在 BigQuery 中创建了一个时间分区表并插入了数据。 我能够正常插入 - 数据已写入今天的分区(我也能够显式指定一个分区并写入它)
经过一些新数据的测试,我删除了今天的分区,以便有干净的数据:(CLI)
bq --project_id=my-project rm v1.mytable$20160613
然后我检查它是否为空:
select count(*) from [v1.mytable]
结果 270 而不是 0
我尝试再次删除并重新运行查询 - 结果相同。 于是我查询了
select count(*) from [v1.mytable$20160613]
结果 0
所以我之前可能插入了数据的几个日期,但都是 0。 最后我跑了
SELECT partition_id from [v1.mytable$__PARTITIONS_SUMMARY__];
结果是
{ 未分区 20160609 20160613 }
所有的数据实际上都在UNPARTITIONED
我的问题:
- 数据何时写入此特殊分区而不是日常分区,如何避免这种情况?
- 除了失去处理特定日期的能力(在查询中,或在删除数据时等)之外,是否还有其他影响?我应该处理这个案子吗?
【问题讨论】:
-
cloud.google.com/bigquery/… 文档说明:当有足够的未分区数据时,将数据分区到相应的分区
标签: google-bigquery