【问题标题】:BigQuery quota limits from query table append apply or not?查询表追加的 BigQuery 配额限制是否适用?
【发布时间】:2019-10-02 15:57:16
【问题描述】:

在我的 C# 应用程序中,我使用 BigQueryClient.CreateQueryJobAsync 定期附加到分区表 table1。目前这种情况每天只发生 50-100 次。

await BqClient.CreateQueryJobAsync(
    ...,
    new QueryOptions
    {
        DestinationTable = "table1",
        WriteDisposition = WriteDisposition.WriteAppend
    })

我了解 Big Query 有很多限制,而且这些限制通常都有详细记录。但是对于这种特殊情况,我不确定这些限制是否适用。 quotas page 表示“每个表每天有 1,000 次更新”文档还明确列出了哪些操作受配额影响。假设有一个明确的列表,那么还必须有一个配额不适用的“其他”列表。例如,“经典 UI”在配额之下,这应该意味着“新 UI”不是。同样,该页面指出jobs.query API 受配额影响,但由于我使用的是官方 C# 驱动程序,这让我想知道这是否适用于我的场景。

显然,我可以编写一个脚本来尝试在 24 小时内执行 1001 次追加操作,看看我是否达到了配额,但我希望我可以简单地从文档中阅读并理解这一点,而不会有任何歧义。

有没有人亲身体验过这实际上是如何工作的?

【问题讨论】:

    标签: c# google-bigquery


    【解决方案1】:

    BigQuery C# 库在内部使用 jobs.query API,因此限制/配额适用于您的情况。

    还有一点需要注意的是,由于您正在写入分区表,因此低于配额也适用:

    每个表每天的最大分区修改次数 - 5,000

    您每天最多只能修改 5,000 次分区 对于分区表。分区可以通过使用 追加或覆盖分区中的数据的操作。 修改分区的操作包括:加载作业、查询 将结果写入分区或 DML 语句(INSERT、DELETE、 UPDATE 或 MERGE)修改分区中的数据。

    一个作业可能会影响多个分区。例如, DML 语句可以更新多个分区中的数据(对于 摄取时间和分区表)。查询作业和加载作业可以 也写入多个分区,但仅适用于分区表。 BigQuery 使用受作业影响的分区数 确定作业消耗了多少配额。流式插入 不影响此配额。

    【讨论】:

    猜你喜欢
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多