google-bigquery - 在 bigquery 中删除和创建表是否会更新每天的配额限制?
问题描述
我正在创建一个数据管道,它每分钟将数据写入 bigquery 表并最终超过配额限制。几个小时后删除表然后重新创建会更新该表的配额限制吗?
我正在使用 bigquery 的 Python API 来完成这项任务。
需要在不超过配额限制的情况下更新 bigquery 中的同一张表。
解决方案
根据 BQ 文档,它规定每个表每天更新 1,000 次的上限。
我认为您必须“设计”方法来绕过对表格的更新频率。有一些非常明显的方法可以解决这个问题(这也是非常标准的行业惯例),然后还有一些技巧。以下是我能想到的:
- 您可以选择不那么频繁地更新目标表(覆盖)。
您可以编写一个新表名,使其仅对一天中特定时间间隔内的更新有效(例如:在凌晨 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 的日期分区表来获得类似的结果。
希望这可以帮助。
推荐阅读
- vue.js - 如何收集选中的 BootstrapVue (b-form-checkbox) 复选框?
- powerquery - Power Query 可以区分域和应用程序吗?
- typescript - 如何设置类型字符串 | 打字稿中变量的编号
- stata - 混合分析和增长曲线图中的缺失值
- angular - Angular 检测 API 的变化
- python - Discord.py get_user(id)
- java - Hibernate 在插入时忽略一列
- android - gRPC 代码不是从 proto 文件生成的
- aws-amplify - 如何修复放大拉问题 -> 本地设置
- python - 如何根据嵌套字典和元组中的指定值获取键