BigQuery高级使用指南:优化查询与数据处理
1. 批量查询与交互式查询
在使用BigQuery时,查询分为交互式查询和批量查询。交互式查询会立即执行,如果达到速率限制,查询会失败,因为BigQuery假定交互式查询是用户需要立即运行的。而批量查询在达到速率限制时,查询会被排队并稍后重试。批量查询有独立的速率限制,不会影响交互式查询。
例如,你每天或每小时运行周期性查询来构建仪表板,假设有500个查询要运行。如果将它们作为交互式查询一次性运行,由于并发速率限制,一些查询会失败。而且,你可能不希望这些查询干扰从BigQuery Web UI手动运行的其他查询。所以,可以将仪表板查询设置为批量优先级,其他查询则正常以交互式运行。
使用批量查询的操作步骤如下:
- 使用bq命令行工具时,提供 --batch 标志。
- 在控制台或REST API中,将作业优先级指定为 BATCH ,而非 INTERACTIVE 。
如果BigQuery在24小时内未启动查询,会将作业优先级更改为交互式。不过,通常查询开始前的等待时间为几分钟,除非提交的查询数量超过并发请求配额,此时查询将在前面的查询完成后运行。
2. 文件加载
若想最小化“洞察时间”或拥有尽可能简单的数据流,可以通过Cloud Pub/Sub和Cloud Dataflow向BigQuery进行流式插入。这种架构在小型Cloud Dataflow集群上的摄取速度可达每秒100,000行,还可通过添加更多机器横向扩展Dataflow集群,实现每秒数百万行的摄取性能
BigQuery优化查询与数据处理指南
超级会员免费看
订阅专栏 解锁全文
73

被折叠的 条评论
为什么被折叠?



