Google BigQuery (BQ) 允许您仅使用timestamp
或date
类型创建分区。
我 99% 的数据都有一个非常清晰的选择器,idClient。我已经使用谓词创建了客户的视图,idClient = code
因此可以保证隐私。
这种策略的问题在于,有些客户有 500 万行,而其他客户有 20 万行,并且由于BQ
没有索引,他们总是在处理彼此的数据(并且成本正在上升)。
我打算创建一个timestamp
字段,其中每个客户都有一个不同的字段,每个客户timestamp
敏感表中的每个插入都会重复该字段,因此我可以timestamp
通过修复它来查询,就像使用标准 ID 一样。
这有意义吗?如果 BQ 是一个索引数据库,我会担心数据倾斜,但由于它始终是全表扫描,我认为我只会有好处而没有坏处。
您的问题的解决方案是将 Cluster 字段添加到您的表中,这相当于其他数据库中的索引
此链接提供了有关如何使用集群字段的基础知识
聚类可以提高某些类型查询的性能,例如使用过滤器子句的查询和聚合数据的查询。当查询作业或加载作业将数据写入聚簇表时,BigQuery 会使用聚簇列中的值对数据进行排序
注意:当使用集群字段 BigQuert dryRun 不显示只能在执行后看到的成本改进
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句