BigQuery中的最佳处理日内GA数据

时间:2018-11-21 05:16:40

标签: google-analytics google-cloud-platform google-bigquery

我已经配置了Google Analytics(分析)原始数据导出到大型查询。

社区中的任何人都可以提出有效的方法来查询日内数据,因为我们注意到“日内同步”存在问题(例如15分钟的延迟),因此流数据在整个同步频率上呈指数增长。

例如:

  • 每天(T-1)批处理数据(ga_sessions_yyymmdd)与15-20GB同步,并具有3.5M-5M记录。
  • 另一方面,一天中的数据流(延迟15分钟)超过每天150GB,并具有约3000万条记录。

enter image description here https://issuetracker.google.com/issues/117064598

持久性和查询数据的成本效益不高。

而且,这是产品缺陷还是预期的行为,因为数据无法以经济有效的方式用于呈指数增长的数据?

查询大查询的成本为每TB 5美元,流插入的成本为每TB 50美元

1 个答案:

答案 0 :(得分:0)

在我看来,这不是错误,而是Google Analytics(分析)中数据结构的结果。

每行都是一个会话,在每个会话中您都有许多匹配项。由于我们等不及要等到会话完全结束,因此每次发生新的匹配(或匹配组)时,整个会话都需要再次导出到BQ。在流式系统中(至少在BigQuery中),无法更新行。

我已经在带有Session Windows的Google Dataflow中创建了一些流管道(不知道它是否是Google内部使用的),并且我面临着同样的难题:等待仅导出一次聚合,或者连续导出并具有指数级增长。

我可以向您提供有关查询ga_realtime_sessions表的建议:

  • 仅查询您真正需要的列(不选择*);
  • 使用与每天的ga_realtime_sessions_yyyymmdd一起导出的视图,它不会影响查询的大小,但是会阻止您使用重复的数据。