clickhouse数据模型中有序漏斗是什么
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章将为大家详细讲解有关clickhouse数据模型中有序漏斗是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是有序漏斗,有序漏斗需要满足所有用户事件链
千家信息网最后更新 2025年02月08日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安全错误
数据库的锁怎样保障安全
知网数据库的三种检索方式
工作总结软件开发
美国高防服务器免备案
如何创建数据库文件
如何服务器管理器
ftp服务器哪个效果好
金算盘如何连入数据库
企业软件开发靠谱吗
为什么是服务器上的黑名单
泗阳巨型网络技术供应商家
安卓查询软件开发
深圳聚星软件开发有限公司
计算机网络安全管理学考试
java上传服务器文件代码
北京大兴软件开发培训
网络安全法四十九条规定
diabox软件开发团队
防范高校网络安全心得
永泰县妇幼保健院网络安全项目
校园日手抄报以网络安全为重要
数据库正版多少钱
实名制数据库系统维护
华为刀片服务器价格查询
苹果网络安全原理
普陀区电商软件开发定制要多少钱
对多媒体数据库产生的影响是
软件开发哪个学校好大专
开展网络安全演练
杭州微世窗网络技术有限公司
网络安全郭局长