Google bigquery 如何有效地判断ga_会话中是否有可用的新数据

Google bigquery 如何有效地判断ga_会话中是否有可用的新数据,google-bigquery,Google Bigquery,谷歌分析数据应该每天导出到大查询3次,根据。我试图在ga_sessions_intraday_表中确定检测新数据的有效方法,并在BQ中运行查询以提取新数据 我最好的办法是通过每小时运行一次SQL查询来轮询ga_会话。我会跟踪max visitStartTime(将状态存储在某处),如果新的max visitStartTime出现在ga_sessions_intraday_中,那么我会运行完整的查询 这种方法的问题是我需要存储关于最大访问开始时间的状态。我更喜欢简单一点的 GA Big Query

谷歌分析数据应该每天导出到大查询3次,根据。我试图在ga_sessions_intraday_表中确定检测新数据的有效方法,并在BQ中运行查询以提取新数据

我最好的办法是通过每小时运行一次SQL查询来轮询ga_会话。我会跟踪max visitStartTime(将状态存储在某处),如果新的max visitStartTime出现在ga_sessions_intraday_中,那么我会运行完整的查询

这种方法的问题是我需要存储关于最大访问开始时间的状态。我更喜欢简单一点的

GA Big Query是否有更好的方式告知新数据在GA_会话中可用?是什么引发的事件?我是否使用表的最后修改日期(但我需要跟踪要运行的时间窗口)

提前感谢您的帮助,
Kevin

表上最后一次修改时间可能是这里最好的方法(而且比发出探测查询更便宜)。我不相信有任何其他信号传递机制的数据

如果完整查询的运行速度快于轮询间隔,则可能只需使用派生表的修改时间来保存数据(并在输出表比输入表旧时更新)

是免费的,因此您甚至可以在查询中嵌入大部分逻辑:

SELECT
  (
  SELECT
    MAX(last_modified_time)
  FROM
    `YOUR_INPUT_DATASET.__TABLES__`) >
  (
  SELECT
    MAX(last_modified_time)
  FROM
    `YOUR_OUTPUT_DATASET.__TABLES__`) need_update
如果您的输出数据集中混合了多个表,那么您可以更有选择性地(使用WHERE子句)筛选您检查的表

如果你需要一个方便的地方来运行这个调度逻辑(这不是开发者的工作站),你可以考虑。(简短版本:应用程序脚本非常简洁)

您也可以考虑在BigQueq上提交“实体化视图”或“计划查询”的特征请求。我没有看到一个快速浏览的现有条目,但我肯定在过去听到过类似的请求

我不确定Google Analytics团队如何处理功能请求,但在交付新一批分析数据时发出pubsub通知似乎也很有用。

“元数据查询是免费的”。有趣。你有这方面的消息来源吗?我在你帖子的链接中找不到它。我确实在Google文档中看到元数据操作是免费的,但我不知道这如何应用于查询。如果将
\uuuuuuuuuuuuuuuu表与常规表组合,会发生什么情况?我想读更多关于这方面的内容。