计划更新 BigQuery 上的 Google 个分析数据集
Schedule update of Google Analytics dataset on BigQuery
我知道 Google Analytics 可以使用 GA 中的 BigQuery Linking
功能链接到 Bigquery。
但我遇到了随机安排的缺点。所以,它搞砸了我的 table 与这些 GA 数据的依赖关系,我在上午 9 点使用 DBT 设置这些数据——所以如果 GA 数据在上午 9 点以上更新,我的 table 将不会有今天的GA数据。
我的问题是:
- 有没有办法像 cronjob 那样安排更新的 GA 数据具有恒定的时间?
- 或者如果没有。在bigquery上更新GA数据后,DBT有没有办法运行作业?
不幸的是,Google 没有为从 Google Analytics 3 导出的 BigQuery 提供 SLA,如果您可以选择,最好的解决方案是迁移到 Google Analytics 4,这是几乎实时导出到 BigQuery,并且看起来更加健壮。在 the official Google support page.
上了解更多信息
我目前通过使用基于事件的触发器来解决这个问题,这些触发器查看 table 的元数据,或者检查昨天是否存在分片 table,然后继续下游作业,我相信您可以使用 DBT 实现类似的效果。
下面是一些示例 SQL 代码,它通过返回最大时间戳来检查昨天 Google 分析分片 table 是否存在:
SELECT MAX(cast(PARSE_DATE('%Y%m%d', SUBSTR(table_id,13)) as timestamp)) as max_date
FROM `my_ga_dataset.__TABLES__`
WHERE table_id LIKE'%ga_sessions_%'
AND table_id NOT LIKE '%intraday%'
AND PARSE_DATE('%Y%m%d', SUBSTR(table_id,13)) >= CURRENT_DATE() -9
这适用于分片 tables,如果你想使用 table 元数据来获取上次 table 更新的 date/time,你可以使用 INFORMATION_SCHEMA:
https://cloud.google.com/bigquery/docs/information-schema-tables
我知道 Google Analytics 可以使用 GA 中的 BigQuery Linking
功能链接到 Bigquery。
但我遇到了随机安排的缺点。所以,它搞砸了我的 table 与这些 GA 数据的依赖关系,我在上午 9 点使用 DBT 设置这些数据——所以如果 GA 数据在上午 9 点以上更新,我的 table 将不会有今天的GA数据。
我的问题是:
- 有没有办法像 cronjob 那样安排更新的 GA 数据具有恒定的时间?
- 或者如果没有。在bigquery上更新GA数据后,DBT有没有办法运行作业?
不幸的是,Google 没有为从 Google Analytics 3 导出的 BigQuery 提供 SLA,如果您可以选择,最好的解决方案是迁移到 Google Analytics 4,这是几乎实时导出到 BigQuery,并且看起来更加健壮。在 the official Google support page.
上了解更多信息我目前通过使用基于事件的触发器来解决这个问题,这些触发器查看 table 的元数据,或者检查昨天是否存在分片 table,然后继续下游作业,我相信您可以使用 DBT 实现类似的效果。
下面是一些示例 SQL 代码,它通过返回最大时间戳来检查昨天 Google 分析分片 table 是否存在:
SELECT MAX(cast(PARSE_DATE('%Y%m%d', SUBSTR(table_id,13)) as timestamp)) as max_date
FROM `my_ga_dataset.__TABLES__`
WHERE table_id LIKE'%ga_sessions_%'
AND table_id NOT LIKE '%intraday%'
AND PARSE_DATE('%Y%m%d', SUBSTR(table_id,13)) >= CURRENT_DATE() -9
这适用于分片 tables,如果你想使用 table 元数据来获取上次 table 更新的 date/time,你可以使用 INFORMATION_SCHEMA: https://cloud.google.com/bigquery/docs/information-schema-tables