【发布时间】:2015-07-16 20:57:03
【问题描述】:
我希望得到第二双眼睛和一些帮助,以确认在 BigQuery 中的命中级别查看会话的最佳方式。我已经彻底阅读了 BigQuery 开发人员文档that provides insight on working WITHIN as session. My challenge is this。假设我编写了高级查询来计算存在的会话数,并按 device.device 类别对会话进行分组,如下所示:
SELECT device.deviceCategory,
COUNT(DISTINCT CONCAT (fullVisitorId, STRING (visitId)), 10000000) AS SESSIONS
FROM (TABLE_DATE_RANGE([XXXXXX.ga_sessions_], TIMESTAMP('2015-01-01'), TIMESTAMP('2015-06-30')))
GROUP EACH BY device.deviceCategory
ORDER BY sessions DESC
然后我运行如下的后续查询来查找不同用户(客户 ID)的数量:
SELECT device.deviceCategory,
COUNT(DISTINCT fullVisitorID) AS USERS
FROM (TABLE_DATE_RANGE([XXXXXX.ga_sessions_], TIMESTAMP('2015-01-01'), TIMESTAMP('2015-06-30')))
GROUP EACH BY device.deviceCategory
ORDER BY users DESC
(请注意,我将这些数据分开是因为我使用的数据量很大,在某些情况下会产生超过 5TB 的运行量)。
我的挑战如下。我觉得我有错误的方法并且没有成功使用 WITHIN 函数。对于每个用户 ID(或完整的访问者 ID),我想查看他们所有的各种会话,以找出他们拥有的许多会话中有多少是桌面会话,有多少是移动会话。基本上,这些是跨设备用户。我想收集这些用户的表。我从这里开始:
SELECT COUNT(DISTINCT CONCAT (fullVisitorId, STRING (visitId)), 10000000) AS SESSIONS
FROM (TABLE_DATE_RANGE([XXXXXX.ga_sessions_], TIMESTAMP('2015-01-01'), TIMESTAMP('2015-06-30')))
WHERE device.deviceCategory = 'desktop' AND device.deviceCategory = 'mobile'
这是不正确的。此外,我编写的内部查询的任何版本都会给我无意义的结果或数字为 0 的结果。有没有人有任何策略或技巧来推荐前进的道路?使用 WITHIN 函数查找可能在会话内发生多个事件的会话的最佳方法是什么(我的目标是收集满足会话内或各种会话中某些要求的用户 ID)。两天前,我通过手动完成这些步骤并保存中间数据帧以生成计数,以非常手动的方式完成了这项工作。也就是说,我想看看是否有任何指导可以使用单个查询快速完成此操作?
【问题讨论】:
标签: google-bigquery google-cloud-platform