如何有效地告诉ga_sessions_intraday_中有新数据

Kev*_* S. 3 google-bigquery

根据文档,Google Analytics数据应该每天导出3次Big Query .我试图在ga_sessions_intraday_表中确定检测新数据的有效方法,并在BQ中运行查询以提取新数据.

我最好的想法是每小时运行一次SQL查询来轮询ga_sessions_intraday_.我会跟踪最大的visitStartTime(在某处存储状态),如果在ga_sessions_intraday_中显示新的最大visitStartTime,那么我将运行我的完整查询.

这种方法的问题是我需要存储有关max visitStartTime的状态.我更喜欢更简单的东西.

GA Big Query是否有更好的方式告诉ga_sessions_intraday_中有新数据可用?某种事件会引发火灾?我是否使用表格的最后修改日期(但我需要跟踪要运行的时间窗口)?

凯文,先谢谢你的帮助

Ada*_*ick 6

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

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

元数据查询是免费的,因此您甚至可以在查询中嵌入大多数逻辑:

SELECT
  (
  SELECT
    MAX(last_modified_time)
  FROM
    `YOUR_INPUT_DATASET.__TABLES__`) >
  (
  SELECT
    MAX(last_modified_time)
  FROM
    `YOUR_OUTPUT_DATASET.__TABLES__`) need_update
Run Code Online (Sandbox Code Playgroud)

如果输出数据集中混合了表,则可以更具选择性(使用WHERE子句)来过滤所检查的表.

如果您需要一个方便的位置来运行此调度逻辑(这不是开发人员的工作站),您可能会考虑我之前的答案之一.(简短版:Apps脚本非常整洁)

您还可以考虑在BigQuery的公共问题跟踪器上提交"物化视图"或"预定查询"的功能请求.我没有看到现有的快速浏览条目,但我在过去肯定听到过类似的请求.

我不确定Google Analytics小组如何处理功能请求,但在交付新一批Google Analytics数据时发布pubsub通知似乎也很有用.