BigQuery中的嵌套表是否支持分区操作?
BigQuery 嵌套表分区问题解答
完全可以用created_at或last_modified_at中的任意一个对嵌套表做分区,BigQuery的分区功能仅要求分区键为表的顶级字段,和表中是否存在嵌套/重复字段(RECORD、ARRAY类型)没有关联,完全兼容非规范化后的嵌套表结构。
下面是分区键选择的实操建议:
- 优先匹配日常查询的过滤逻辑:如果你的大部分查询是按数据写入时间筛选,选
created_at作为分区键能获得最好的分区裁剪效果;如果查询经常需要筛选近期更新过的数据,last_modified_at作为分区键更合适,能最大程度降低扫描的数据量,节省查询成本。 - 两个字段如果是TIMESTAMP类型,既可以直接按天、小时等粒度做时间分区,也可以转换为DATE类型后按日期分区,按需选择对应分区粒度即可。
- 要注意分区键不能是嵌套在RECORD内部的字段,你提到的两个字段都是嵌套表本身的顶级字段,完全符合分区键的要求。
内容的提问来源于stack exchange,提问作者Daniel Peach
相关产品推荐
相关产品推荐

