【发布时间】:2015-11-21 09:22:34
【问题描述】:
我正在使用 BigQuery 处理大约 50 亿行,这些行可以在大约 100 万个键上进行分区。
由于我们的查询通常是按分区键进行的,是否可以创建约 100 万个表(1 个表/键)来限制处理的总字节数?
我们有时还需要同时查询所有数据,这很容易通过将所有数据放在一个表中来完成,但我希望使用与批量分析相同的平台进行分区分析。
【问题讨论】:
标签: google-bigquery
我正在使用 BigQuery 处理大约 50 亿行,这些行可以在大约 100 万个键上进行分区。
由于我们的查询通常是按分区键进行的,是否可以创建约 100 万个表(1 个表/键)来限制处理的总字节数?
我们有时还需要同时查询所有数据,这很容易通过将所有数据放在一个表中来完成,但我希望使用与批量分析相同的平台进行分区分析。
【问题讨论】:
标签: google-bigquery
这可能行得通,但是非常不鼓励对您的表进行如此精细的分区。您最好将数据划分为较少数量的表,例如 10 或 100 个表,然后只查询您需要的表。
我说的气馁是什么意思?首先,这百万个表中的每一个都将收取至少 10 MB 的存储费用。因此,当您的数据可能比这少得多时,您需要为 9 TB 的存储空间付费。其次,当您尝试创建这么多表时,您可能会遇到速率限制。第三,管理一百万张表非常棘手; BigQuery UI 可能不会有太大帮助。第四,您会让 BigQuery 的工程师变得非常暴躁,他们会开始试图弄清楚我们是否需要提高表的最小大小。
此外,如果您有时确实想查询所有数据,那么精细分区可能会给您带来困难,除非您愿意多次存储数据。您只能在查询中引用 1000 个表,并且您引用的每一个表都会导致性能下降。
【讨论】: