首页 > 解决方案 > 如何优化 Bigquery 导出数据流式插入中的查询分析和存储成本,这些插入在一天中以不同的时间间隔发生?

问题描述

我正在探索优化查询分析和将数据存储在 BigQuery 表中的成本的选项。如果我们能够重用对较大数据进行的查询,而不是重用/从最后一个查询结果中提取数据,以仅节省再次运行整个查询的成本。

限制

即使有可以构建的编程解决方案,也要尝试验证是否发生数据不一致或在数据不同步时对其进行管理。

提前致谢!

标签: databasegoogle-cloud-platformgoogle-bigquery

解决方案


要分析 BigQuery SQL 成本使用情况,您可以列出所有 BigQuery 作业 (BigQuery API) 并分析字节/插槽使用情况和执行时间。除了缓存之外,您还可以分析查询以查看是否有任何候选 分区和集群可以显着降低成本和执行时间。阅读其他 BigQuery SO 帖子,我的印象是物化视图即将到来,这将是另一个出色的性能和成本优化。

为了优化成本本身,您可以比较按需或插槽预留定价模型。

为了优化流插入成本,只要您可以接受 2 分钟延迟(与流的秒延迟相反),您就可以考虑事件驱动的无服务器数据摄取,例如BqTail

在缓存方面,您还可以探索急切缓存选项,每次底层数据更改时都会为​​最常用的 SQL 创建缓存,但在这种情况下,您必须控制所有数据摄取以重新创建缓存。(*可以使用 BqTail API 后加载任务)


推荐阅读