| 超时 | 典型 30 分钟(业务定) |
|---|---|
| 切分 | lag 间隔 + 累计和 |
| 度量 | 时长/页数/入口页 |
会话切分
会话切分
WITH e AS (
SELECT user_id, event_ts,
lag(event_ts) OVER (PARTITION BY user_id ORDER BY event_ts) AS prev_ts
FROM dwd_event
), s AS (
SELECT user_id, event_ts,
sum(CASE WHEN prev_ts IS NULL OR timestampdiff(minute, prev_ts, event_ts) >= 30
THEN 1 ELSE 0 END)
OVER (PARTITION BY user_id ORDER BY event_ts) AS session_seq
FROM e
)
SELECT user_id, session_seq, min(event_ts) AS start_ts, max(event_ts) AS end_ts
FROM s GROUP BY user_id, session_seq;会话超时阈值是口径:变更会改变会话数指标,要版本化管理。