Google BigQuery 上的数百万个表

Millions of tables on Google BigQuery

我正在使用 BigQuery 处理大约 50 亿行,这些行可以根据大约 100 万个键进行分区。

由于我们的查询通常是按分区键进行的,是否可以创建约 100 万 table 秒(1 table / 键)来限制处理的总字节数?

有时我们还需要一起查询所有数据,将所有数据放在一个中很容易做到table,但我希望使用与批量分析相同的平台进行分区分析分析。

这可能行得通,但是非常不鼓励将您的 table 如此精细地划分。您最好将数据划分为数量较少的 tables,比如 10 或 100,然后只查询您需要的数据。

气馁是什么意思?首先,这百万 table 中的每一个人都将被收取至少 10 MB 的存储费用。因此,当您拥有的数据可能比这少得多时,您将需要为 9 TB 的存储空间付费。其次,当您尝试创建那么多 table 时,您可能会遇到速率限制。第三,管理一百万 tables 非常棘手; BigQuery UI 可能不会有太大帮助。第四,你会让 BigQuery 的工程师变得非常暴躁,他们会开始考虑是否需要提高 tables 的最小大小。

此外,如果您有时确实想查询所有数据,那么精细地分区可能会给您带来困难,除非您愿意多次存储数据。您只能在一个查询中引用 1000 个 table,并且您引用的每一个都会导致性能下降。