clickhouse数据模型中有序漏斗是什么
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关clickhouse数据模型中有序漏斗是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是有序漏斗,有序漏斗需要满足所有用户事件链
千家信息网最后更新 2025年12月02日clickhouse数据模型中有序漏斗是什么什么是有序漏斗,有序漏斗需要满足所有用户事件链上的操作都是逡巡时间先后关系的,且漏斗事件不能有断层,触达当前事件层的用户也需要经历前面的事件层 漏斗模型是一个倒置的金字塔形状,主要用来分析页面与页面 功能模块之前的转化情况,下面一层都是基于紧邻的上一层转化而来的,也就是说前一个条件是后一个条件成立的基础;解决此类场景clickhouse提供了一个名叫windowFunnel的函数来实现: 为了便于大家理解,这里举个简单的栗子。 插入测试数据 已30分钟作为一个时间窗口,看下windowFunnel返回了什么样的数据 这里level只记录了路径中最后一次事件所属的层级,如果直接对level分组统计就会丢失之前的层级数据,导致漏斗不能呈现金字塔状 继续使用上面的测试数据,通过数组的高阶函数对上述结果数据进行二次加工处理以获取完整漏斗展示效果。
这篇文章将为大家详细讲解有关clickhouse数据模型中有序漏斗是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
前言
假设我们已经得到了触达支付购买的路径有 "首页->详情页->购买页->支付" 和 "搜索页->详情页->购买页->支付" 两个主要路径,但是我们不清楚哪条路径转化率高,那么这个时候漏斗分析就派上用场了
windowFunnel(window)(timestamp, cond1, cond2, ..., condN)
window:窗口大小,从第一个事件开始,往后推移一个窗口大小来提取事件数据 timestamp:可以是时间或时间戳类型,用来对时事件进行排序 cond:每层满足的事件
# 创建一张用户行为表,至少包含时间、事件、用户idCREATE TABLE test.action( `uid` Int32, `event_type` String, `time` datetime)ENGINE = MergeTree()PARTITION BY uidORDER BY xxHash42(uid)SAMPLE BY xxHash42(uid)SETTINGS index_granularity = 8192
insert into action values(1,'浏览','2020-01-02 11:00:00'); insert into action values(1,'点击','2020-01-02 11:10:00'); insert into action values(1,'下单','2020-01-02 11:20:00'); insert into action values(1,'支付','2020-01-02 11:30:00');
insert into action values(2,'下单','2020-01-02 11:00:00'); insert into action values(2,'支付','2020-01-02 11:10:00');
insert into action values(1,'浏览','2020-01-02 11:00:00');
insert into action values(3,'浏览','2020-01-02 11:20:00'); insert into action values(3,'点击','2020-01-02 12:00:00');
insert into action values(4,'浏览','2020-01-02 11:50:00'); insert into action values(4,'点击','2020-01-02 12:00:00');
insert into action values(5,'浏览','2020-01-02 11:50:00'); insert into action values(5,'点击','2020-01-02 12:00:00'); insert into action values(5,'下单','2020-01-02 11:10:00');
insert into action values(6,'浏览','2020-01-02 11:50:00'); insert into action values(6,'点击','2020-01-02 12:00:00'); insert into action values(6,'下单','2020-01-02 12:10:00');SELECT user_id, windowFunnel(1800)(time, event_type = '浏览', event_type = '点击', event_type = '下单', event_type = '支付') AS level FROM ( SELECT time, event_type, uid AS user_id FROM action ) GROUP BY user_id
┌─user_id─┬─level─┐ │ 3 │ 1 │ │ 2 │ 0 │ │ 5 │ 2 │ │ 1 │ 4 │ │ 6 │ 3 │ └─────────┴───────┘模型
案例
分析"2020-01-02"这天 路径为"浏览->点击->下单->支付"的转化情况。
SELECT level_index,count(1) FROM( SELECT user_id, arrayWithConstant(level, 1) levels, arrayJoin(arrayEnumerate( levels )) level_index FROM ( SELECT user_id, windowFunnel(1800)( time, event_type = '浏览', event_type = '点击' , event_type = '下单', event_type = '支付' ) AS level FROM ( SELECT time, event_type , uid as user_id FROM test.action WHERE toDate(time) = '2020-01-02' ) GROUP BY user_id ))group by level_indexORDER BY level_index
关于"clickhouse数据模型中有序漏斗是什么"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
事件
漏斗
浏览
数据
支付
路径
有序
模型
时间
用户
篇文章
分析
函数
大小
层级
情况
更多
条件
详情
金字
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华为服务器编译器
网络技术运用于在线课程
数据库安全初始化
数据库中R叉乘S是什么意思
软件开发制作大纲
潍坊晨星网络技术有限公司
服务器做网关
郑州教育网络安全科普体验中心
长沙app软件开发费用明细
如何让数据库密码设置为长期
河北外协加工软件开发教程
偃师软件开发
安顺租房网络安全
bs服务器教程
嵌入式软件开发工具的发展趋势是
北京唐爱时空网络技术
辽宁华虹网络技术发展
网络安全风险预防原则概念
陕西公安网络安全
组策略如何设置补丁服务器
门禁设备与软件开发
少年儿童网络安全宣传语
数据库跨域导入数据
密友软件开发
实现缓存服务器
对服务器配置与管理这门课的认识
在网络安全生态构建策略
2022年网络安全知识考试答案
数据库删除某个时间段的某个数据
uniapp请求服务器获得数据