何时在BigQuery中使用分区 [英] When to use partitioning in BigQuery

查看:0
本文介绍了何时在BigQuery中使用分区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望利用您在BigQuery中的经验来决定我的数据的最佳结构, 我在关系数据库特别是Oracle DB方面有5年的经验,我熟悉在关系数据库中用来构建数据仓库的最佳实践,但在云解决方案方面,我仍然是新手

我的问题是关于BigQuery中的分区表, 据我所知,我们在BigQuery中只有一天有分区,

因此,我的很多数据每天的行数都很少(在1K到12K之间),但它们包含很长一段时间的数据,所以根据日期对表进行分区是个好主意吗? 如果我将我的数据分区到每年的表中,并创建一个视图来表示所有的表,这会有帮助吗?或者在BigQuery上还有其他解决方案。 根据您的经验,在BQ中使用分区是有效的,每天的数据量应该有多大?

如果您有任何有关使用BQ for DWH的最佳实践的参考或书籍,请将其提供给我。

推荐答案

所以我的很多数据每天的行数都很少(在1K到12K之间),但它们包含了很长一段时间的数据,所以根据日期对表进行分区是不是一个好主意?

这将取决于您要使用的查询覆盖的时间范围有多广。

案例A
例如,如果查询的最大持续时间是1周,则分区到每日分区在速度和成本方面可能非常有利,因为引擎不需要扫描整个表。仅选择7个每日分区。
示例:对于公共数据集bigquery-public-data.samples.github_timeline,覆盖1天的查询由于表扫描导致数据使用量约为数百MB。使用类似的每日分区表可将1天查询产生的数据使用量减少到约10 MB。

案例B
另一方面,如果最频繁运行的查询覆盖了一年或两年的时间范围(例如,从时间上讲,表中的整个数据跨度),那么每天使用分区并没有多大帮助,引擎无论如何都需要处理几乎所有的表。因此,使用每日分区也无济于事。如果每日数据量小于最小群集大小,则群集可能会对数据使用率产生不利影响,因为引擎最终将处理更多磁盘空间。

如果记录类似的注意事项以及实际最小集群大小和最小分区大小(如果有的话)的信息,将会很有帮助。如果这些数字是动态的,那么预期范围是什么。

有用的答案:
1
2
3

这篇关于何时在BigQuery中使用分区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆