【问题标题】:Hard limit on number of tables in a BQ projectBQ项目中表数量的硬限制
【发布时间】:2015-05-27 02:00:38
【问题描述】:

我有一些高度可分区的数据想存储在 BigQuery 中,每个分区都有自己的表。我的问题是 BQ 是否会支持我需要的表格数量。

使用我的数据集,我每天将创建大约 2,000 个新表。所有表的有效期为 390 天(13 个月),因此在这个特定项目中,最终会有 ~ 2,000 个表 * 390 天 = ~780,000 个表的恒定计数。

我自己会对此进行测试,但 BQ 仅支持每天每个项目的 max of 10,000 加载作业。

有没有人有这种表数的经验?谷歌有没有官方提供的餐桌限制?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    今天有些项目有这么多不同的表。目前对不同表的数量没有硬性限制。

    在考虑使用这么多表的表示时会想到的一些相关注意事项:

    • 查询(包括引用的视图)目前只能reference 1000 tables

    • 具有大量表的数据集在使用table wildcard 函数时可能会出现问题。

    • 您可能过度分片。您可能只想使用更广泛的架构和更少的表,而不是大量单独的表。

    • 如果您严重依赖时间间隔作为分片考虑因素,您可能还希望将table decorators 视为限制数据扫描范围的一种方式。

    • 您可能还希望随着时间的推移将数据折叠到更少、更大的表中,因为它们会老化并且访问频率降低。例如,copy jobs 可以将多个源表附加到一个目标表中。

    【讨论】:

    • 您能解释一下“具有大量表的数据集在使用表通配符函数时可能会出现问题行为”是什么意思吗?你指的是一个已知的错误,还是别的什么?
    • 我还没有查看复制作业文档 - 看起来很棒。在查看并了解将多个表的副本合并为一个有多容易之后,我可能会每天对任何 > X 天的分区表执行此操作,这样可以使表数大大减少。
    【解决方案2】:

    只要您正确使用 BigQuery,BigQuery 中的大多数限制都可以提高 - 限制是为了防止滥用和误用。

    这里有一个关键问题 - 每个表将处理多少数据?拥有 780,000 个 10 行的表并不是一个好主意。

    您希望每个查询处理多少个表?每个查询有 1000 个表的硬性限制。

    如果您有一个需要更高限制的有趣用例,那么获得支持合同和他们的建议是提高默认限制的最佳方式。

    https://cloud.google.com/support/

    【讨论】:

    • 此处的云支持:@Felipe Hoffa 关于获得支持的观点是一个很好的观点 - 这可能是 Google 的某个人与您就您的应用程序进行长时间对话的最简单方法。另一种选择是联系云销售人员并与他们讨论您在做什么:cloud.google.com/contact 我想这真的取决于您需要多少建议:您的具体示例非常极端,支持可能是最好的建议。对于遇到的下一个用户,如果您的需求不那么苛刻,只需与销售人员交谈就足够了。
    • 有些表可能有10行,无法提前知道。不过,大多数将是数 GB。对于我们的查询模式,每个查询 1,000 个表的限制并不是一个障碍。 FWIW,我正在考虑这么多的分区 b/c 我们的查询通常不会跨分区,因此我们可以通过只访问感兴趣的分区来显着节省查询成本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多