根据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 回答
表上的最后修改时间可能是这里最好的方法(并且比发出探测查询便宜) . 我不相信有任何其他信令机制来传递数据 .
如果完整查询的运行速度比轮询间隔快,则可能只需使用派生表的修改时间来保存数据(并在输出表比输入表更旧时更新) .
Metadata queries是免费的,因此您甚至可以在查询中嵌入大部分逻辑:
如果输出数据集中混合了表,则可以更具选择性(使用WHERE子句)来过滤所检查的表 .
如果您需要一个方便的位置来运行此调度逻辑(即't a developer' s工作站),您可能会考虑one of my previous answers . (简短版:Apps脚本非常整洁)
您还可以考虑在BigQuery的public issue tracker上为"materialized views"或"scheduled queries"提交功能请求 . 我过去没有听到过类似的请求 .
我不确定Google Analytics小组如何处理功能请求,但在交付新一批Google Analytics数据时发布pubsub通知似乎也很有用 .