BigQuery按日分区event timestamp后分区数仍为0的问题
BigQuery分区显示为0的排查方案
你遇到的情况不一定代表分区没生效,先从这几个方向排查:
检查分区字段类型
确认event timestamp是TIMESTAMP或DATETIME类型,如果是字符串类型,哪怕格式是时间,BigQuery也没法识别为分区键,自然不会生成分区。验证数据是否触发分区
如果是先建普通表再改成分区表,原有数据不会自动生成分区,只有新写入的数据才会分配到对应分区。可以跑个SQL看看实际的日期分布:SELECT DISTINCT DATE(`event timestamp`) AS 分区日期 FROM `你的项目.数据集.表名` ORDER BY 分区日期要是能查出14个不同日期,说明分区逻辑实际是有效的。
排查UI显示延迟或异常
BigQuery控制台的分区数统计可能有延迟,或者显示逻辑有问题。可以用元数据查询确认真实的分区情况:SELECT partition_id, total_rows FROM `你的项目.数据集.INFORMATION_SCHEMA.PARTITIONS` WHERE table_name = '你的表名'这个查询能返回所有实际存在的分区信息,比控制台显示更准确。
确认分区配置是否正确生效
从你提供的配置截图看,分区规则是按event timestamp日分区,但要确认表创建时就配置了分区,还是事后修改的。事后修改的分区配置不会对已有数据生效,需要重新写入数据或者用CREATE TABLE AS SELECT重建分区表。
内容的提问来源于stack exchange,提问作者Christine
相关产品推荐
相关产品推荐

