三张表而不是一张
点击流不是一张表能装下的:曝光、点击、页面浏览是三种事件,各有生命周期与统计口径,通常分别建事实表,以请求级明细为基础,会话级与天级由派生汇总产出。粒度定得太粗会失去留存、路径分析所需的用户级细节;把不同事件混在一张表里,则会让去重与漏斗计算反复出错,同一份数据在不同报表上给出不同答案。
基本信息
| 曝光 | 一次有效展示一行 |
|---|---|
| 点击 | 一次点击动作一行 |
| 页面浏览 | 一次页面打开一行 |
| 派生层 | 会话级、天级由明细汇总产出 |
| 必需键 | 事件 ID、用户键、内容或页面键 |
典型使用场景
- 计算曝光点击率、点击转化率等多段漏斗指标
- 用户路径与页面流转分析,需要请求级明细支撑
- 渠道效果评估:按来源参数聚合曝光与转化
- 异常流量与作弊识别,依赖明细与设备信息
- 内容推荐效果评估:内容维键与曝光去重规则必须先定
请求级明细
请求级明细
-- 请求级点击明细,保留渠道与内容键
CREATE TABLE dwd_click (
click_id string,
user_id string,
page_id string,
content_sk bigint,
channel string COMMENT '规范化后的渠道标识',
event_ts timestamp
) PARTITIONED BY (dt string) STORED AS ORC;
-- 曝光去重:同一用户对同一内容的多次曝光按规则合并
SELECT dt, count(DISTINCT concat(user_id, '#', content_sk)) AS uv_expose
FROM dwd_expose WHERE dt = '2026-10-12' GROUP BY dt;事件粒度对照
| 事件 | 粒度 | 口径要点 |
|---|---|---|
| 曝光 | 一次展示一行 | 需区分请求曝光与可见曝光 |
| 点击 | 一次点击一行 | 去重键决定点击量口径 |
| 页面浏览 | 一次打开一行 | 停留时长需前后事件配对 |
| 会话 | 按超时窗口切分 | 窗口长度不同会话数不同 |
URL 参数携带的渠道信息要先规范化再入仓:同一来源可能有大写、短链、带追踪参数等多种写法,不统一则渠道口径会散成十几个。
曝光去重规则,是否按用户去重、是否按天去重,直接决定 CTR 的量级,规则要写进指标卡并在各报表间保持一致。
曝光明细的采集量通常远大于点击,常按位置、内容、设备多列展开,存储与分区要按保留期规划;行为时间以客户端上报为准,服务端接收时间只作延迟参考。