首页 文章

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

提问于
浏览
3

根据the docs,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_中有新数据可用?某种事件会引发火灾?我是否使用表格的最后修改日期(但我需要跟踪要运行的时间窗口)?

凯文,先谢谢你的帮助

1 回答

  • 4

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

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

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

    SELECT
      (
      SELECT
        MAX(last_modified_time)
      FROM
        `YOUR_INPUT_DATASET.__TABLES__`) >
      (
      SELECT
        MAX(last_modified_time)
      FROM
        `YOUR_OUTPUT_DATASET.__TABLES__`) need_update
    

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

    如果您需要一个方便的位置来运行此调度逻辑(即't a developer' s工作站),您可能会考虑one of my previous answers . (简短版:Apps脚本非常整洁)

    您还可以考虑在BigQuery的public issue tracker上为"materialized views"或"scheduled queries"提交功能请求 . 我过去没有听到过类似的请求 .

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

相关问题