Просмотр исходного кода

feat(ads): 拼团转化漏斗 ads_trd_group_funnel DDL + job(1d/7d/30d 窗口聚合UV)

ADS 应用层首表。启动→曝光→详情→下单→成功 5 层 × 1d/7d/30d 三窗口
独立 distinct UV(窗口入字段名 kb/40 §3.7),一行一 dt 快照。
埋点 dwd 未建,MVP 跨层直读 ods;下游同步 PG 供看板。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tianyu.chu 1 месяц назад
Родитель
Сommit
8a0a62c021

+ 32 - 0
jobs/ads/trd/ads_trd_group_funnel.sql

@@ -0,0 +1,32 @@
+-- 作者:tianyu.chu
+-- 日期:2026-06-21
+-- 工单:(无)
+-- 目的:拼团转化漏斗,单 ${dt} 快照,扫近30天一次条件聚合出 1d/7d/30d 三窗口,写 dt=${dt}
+-- 口径:登录用户(user_id 非空非'0');每窗口独立 distinct UV(聚合UV 非路径,层间为近似);
+--       成功=GroupPayOrderConfirm 且 paymentCallBack='Y';dt=yyyyMMdd(埋点沿用文件日8位)
+-- 参数:${dt} 快照日;${d7}=dt-6、${d30}=dt-29(均含两端,共 7/30 天);
+--       分区裁剪靠 WHERE 的 '${d30}' 字面量(DS 调度用 $[yyyyMMdd-6]/$[yyyyMMdd-29] 传)
+INSERT OVERWRITE TABLE ads.ads_trd_group_funnel PARTITION (dt = '${dt}')
+SELECT
+    COUNT(DISTINCT CASE WHEN dt =  '${dt}' AND event_name = '$AppStart'            THEN user_id END) AS uv_start_1d,
+    COUNT(DISTINCT CASE WHEN dt =  '${dt}' AND event_name = 'GroupShow'            THEN user_id END) AS uv_show_1d,
+    COUNT(DISTINCT CASE WHEN dt =  '${dt}' AND event_name = 'ClickGroup'           THEN user_id END) AS uv_detail_1d,
+    COUNT(DISTINCT CASE WHEN dt =  '${dt}' AND event_name = 'GroupPayOrderConfirm' THEN user_id END) AS uv_order_1d,
+    COUNT(DISTINCT CASE WHEN dt =  '${dt}' AND event_name = 'GroupPayOrderConfirm'
+                         AND get_json_object(params_json, '$.paymentCallBack') = 'Y' THEN user_id END) AS uv_paid_1d,
+    COUNT(DISTINCT CASE WHEN dt >= '${d7}' AND event_name = '$AppStart'            THEN user_id END) AS uv_start_7d,
+    COUNT(DISTINCT CASE WHEN dt >= '${d7}' AND event_name = 'GroupShow'            THEN user_id END) AS uv_show_7d,
+    COUNT(DISTINCT CASE WHEN dt >= '${d7}' AND event_name = 'ClickGroup'           THEN user_id END) AS uv_detail_7d,
+    COUNT(DISTINCT CASE WHEN dt >= '${d7}' AND event_name = 'GroupPayOrderConfirm' THEN user_id END) AS uv_order_7d,
+    COUNT(DISTINCT CASE WHEN dt >= '${d7}' AND event_name = 'GroupPayOrderConfirm'
+                         AND get_json_object(params_json, '$.paymentCallBack') = 'Y' THEN user_id END) AS uv_paid_7d,
+    COUNT(DISTINCT CASE WHEN event_name = '$AppStart'            THEN user_id END) AS uv_start_30d,
+    COUNT(DISTINCT CASE WHEN event_name = 'GroupShow'            THEN user_id END) AS uv_show_30d,
+    COUNT(DISTINCT CASE WHEN event_name = 'ClickGroup'           THEN user_id END) AS uv_detail_30d,
+    COUNT(DISTINCT CASE WHEN event_name = 'GroupPayOrderConfirm' THEN user_id END) AS uv_order_30d,
+    COUNT(DISTINCT CASE WHEN event_name = 'GroupPayOrderConfirm'
+                         AND get_json_object(params_json, '$.paymentCallBack') = 'Y' THEN user_id END) AS uv_paid_30d,
+    current_timestamp() AS etl_time
+FROM ods.ods_usr_traces_apd_d
+WHERE dt BETWEEN '${d30}' AND '${dt}'
+  AND user_id IS NOT NULL AND user_id <> '0';

+ 29 - 0
manual/ddl/ads/trd/ads_trd_group_funnel_create.sql

@@ -0,0 +1,29 @@
+-- 作者:tianyu.chu
+-- 日期:2026-06-21
+-- 工单:(无)
+-- 目的:拼团转化漏斗 ADS 报表(启动→曝光→详情→下单→成功),1d/7d/30d 三窗口
+-- 备注:ADS 应用层首表;窗口体现在字段名(kb/40 §3.7),一行一 dt 快照;
+--       域取 trd(拼团转化主题),源事件虽为 usr 埋点;聚合 UV 非路径漏斗(层间为近似);
+--       下游同步 PG 供看板
+CREATE DATABASE IF NOT EXISTS ads;
+
+CREATE TABLE IF NOT EXISTS ads.ads_trd_group_funnel (
+    uv_start_1d   BIGINT    COMMENT '昨日 启动UV($AppStart,登录用户)',
+    uv_show_1d    BIGINT    COMMENT '昨日 曝光UV(GroupShow)',
+    uv_detail_1d  BIGINT    COMMENT '昨日 拼团详情UV(ClickGroup)',
+    uv_order_1d   BIGINT    COMMENT '昨日 下单UV(GroupPayOrderConfirm)',
+    uv_paid_1d    BIGINT    COMMENT '昨日 成功UV(GroupPayOrderConfirm 且 paymentCallBack=Y)',
+    uv_start_7d   BIGINT    COMMENT '近7天 启动UV',
+    uv_show_7d    BIGINT    COMMENT '近7天 曝光UV',
+    uv_detail_7d  BIGINT    COMMENT '近7天 拼团详情UV',
+    uv_order_7d   BIGINT    COMMENT '近7天 下单UV',
+    uv_paid_7d    BIGINT    COMMENT '近7天 成功UV',
+    uv_start_30d  BIGINT    COMMENT '近30天 启动UV',
+    uv_show_30d   BIGINT    COMMENT '近30天 曝光UV',
+    uv_detail_30d BIGINT    COMMENT '近30天 拼团详情UV',
+    uv_order_30d  BIGINT    COMMENT '近30天 下单UV',
+    uv_paid_30d   BIGINT    COMMENT '近30天 成功UV',
+    etl_time      TIMESTAMP COMMENT 'ETL 处理时间'
+) COMMENT '拼团转化漏斗(启动→曝光→详情→下单→成功; 1d/7d/30d; 聚合UV非路径)'
+PARTITIONED BY (dt STRING)
+STORED AS ORC;