首页 > 解决方案 > 在 bigquery 中删除和创建表是否会更新每天的配额限制?

问题描述

我正在创建一个数据管道,它每分钟将数据写入 bigquery 表并最终超过配额限制。几个小时后删除表然后重新创建会更新该表的配额限制吗?

我正在使用 bigquery 的 Python API 来完成这项任务。

需要在不超过配额限制的情况下更新 bigquery 中的同一张表。

标签: google-bigquery

解决方案


根据 BQ 文档,它规定每个表每天更新 1,000 次的上限。

我认为您必须“设计”方法来绕过对表格的更新频率。有一些非常明显的方法可以解决这个问题(这也是非常标准的行业惯例),然后还有一些技巧。以下是我能想到的:

  1. 您可以选择不那么频繁地更新目标表(覆盖)。
  2. 您可以编写一个新表名,使其仅对一天中特定时间间隔内的更新有效(例如:在凌晨 2 点到 3 点之间,让您的管道将查询结果写入表mydataset.my_table_[date]_02_03)。然后,在查询时,您可以使用通配符语句,例如:

    select count(*) as cnt from `mydataset.my_table_[date]_*`
    

    这相当于:

    select count(*) as cnt from (
       select * from (
           select * from `mydataset.my_table_[date]_00_01`
       )
       union all
       select * from (
           select * from `mydataset.my_table_[date]_01_02`
       )
       union all 
       ....
    )
    

    但是,在此,请确保您始终将数据“附加”(而不是覆盖)到与一天中的时间相对应的表中。此外,不要忘记,您始终可以充分利用 BQ 的日期分区表来获得类似的结果。

希望这可以帮助。


推荐阅读