Big Query 中另一个表更新时如何触发查询作业

问题描述 投票:0回答:1

在大查询中,我每天都会将搜索控制台数据导出到表格中,这是由 Google 完成的,可以在一天中的任何时间发生。然后,我运行一个查询来丰富数据并将其格式化到另一个表中,以便在 Data Studio 中使用。

我想知道每次更新此表时触发查询的最佳方式。

计划查询确实有效,但如果每日导出未及时落地,则存在一些不确定性/没有回退措施。理想情况下,当数据到达原始数据集中时,它会触发作业运行?

google-cloud-platform google-bigquery
1个回答
0
投票

此用例有几个选项。

物化视图

根据丰富过程的复杂程度,物化视图可能适合您。这与常规视图的不同之处在于,只要源表数据发生更改并存储输出,就会执行视图定义(与标准视图相反,标准视图实际上是伪装成表的已保存查询)。这可确保您拥有最新的可用数据。

分析工程

物化视图并不总是合适的。一个常见的用例是需要对源数据执行一系列转换以准备(建模)它以便在 BI 工具中使用; DBT 是一种流行的工具,用于捕获这些转换的依赖关系并按顺序运行它们。

这本身并不是一个完整的解决方案,因为它不会监视并等待源数据“落地”。但是,DBT 运行可以由 API 触发。我见过的一种模式是通过触发 DBT 运行来完成更新源数据的任务(Apache Airflow 等工具可以使此类事情变得足够简单)。

另一个临时想法

如果您查询

INFORMATION_SCHEMA
,您可以找到某个表上次更新的时间。定期运行这样的查询应该非常便宜。您可以想象一个小 Python 脚本在短时间内运行,定期检查这一点,如果自上次运行以来检测到更新,则另外执行您所需的更新查询。

© www.soinside.com 2019 - 2024. All rights reserved.