【问题标题】:Best Handle Intraday GA Data in BigQueryBigQuery 中处理日内 GA 数据的最佳方式
【发布时间】:2018-11-21 05:16:39
【问题描述】:
我有一个配置的谷歌分析原始数据导出到大查询。
社区中的任何人都可以建议查询日内数据的有效方法,因为我们注意到日内同步的问题(例如 15 分钟延迟),流数据在同步频率上呈指数增长。
例如:
- 每天 (T-1) 批处理数据 (ga_sessions_yyymmdd) 与 15-20GB 同步,记录 3.5M-5M。
- 另一方面,日内数据流(延迟 15 分钟)每天超过约 150GB,记录约 30M。
https://issuetracker.google.com/issues/117064598
持久化和查询数据并不划算。
而且,这是产品错误还是预期行为,因为数据不能经济高效地用于指数增长的数据?
查询大查询的成本为每 TB 5 美元,流式插入的成本约为每 TB 50 美元
【问题讨论】:
标签:
google-analytics
google-cloud-platform
google-bigquery
【解决方案1】:
在我看来,这不是错误,而是 Google Analytics 中数据结构的结果。
每一行都是一个会话,在每个会话中,您都有许多匹配项。由于我们不能等到会话完全完成,因此每次发生新的命中(或命中组)时,都需要将整个会话再次导出到 BQ。更新行在流系统中不是一个选项(至少在 BigQuery 中)。
我已经在带有 Session Windows 的 Google Dataflow 中创建了一些流管道(不确定它是否是 Google 内部使用的),我面临同样的困境:等待只导出一次聚合,或者连续导出并具有指数成长。
关于查询 ga_realtime_sessions 表的建议是:
- 只查询您真正需要的列(不选择 *);
- 将导出的视图与每日 ga_realtime_sessions_yyyymmdd 一起使用,它不会影响查询的大小,但会阻止您使用重复数据。