如何在 Bigquery 导出一天中以不同时间间隔发生的数据流插入中优化查询分析和存储成本?



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

局限性

无法使用缓存的结果,
  • 因为数据正在流式传输插入,并且每次重写都会使缓存的结果无效。

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

提前感谢!

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

要优化成本本身,您可以比较按需或时段预留定价模型。

为了优化流式处理插入成本,只要您可以接受 2 分钟的延迟(而不是流式处理的秒延迟(,您就可以考虑事件驱动的无服务器数据引入,如 BqTail

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

最新更新