溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

clickhouse數(shù)據(jù)模型中有序漏斗是什么

發(fā)布時(shí)間:2022-01-14 14:25:56 來(lái)源:億速云 閱讀:179 作者:小新 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)clickhouse數(shù)據(jù)模型中有序漏斗是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

什么是有序漏斗,有序漏斗需要滿足所有用戶事件鏈上的操作都是逡巡時(shí)間先后關(guān)系的,且漏斗事件不能有斷層,觸達(dá)當(dāng)前事件層的用戶也需要經(jīng)歷前面的事件層

前言

假設(shè)我們已經(jīng)得到了觸達(dá)支付購(gòu)買的路徑有 “首頁(yè)->詳情頁(yè)->購(gòu)買頁(yè)->支付“ 和 “搜索頁(yè)->詳情頁(yè)->購(gòu)買頁(yè)->支付“ 兩個(gè)主要路徑,但是我們不清楚哪條路徑轉(zhuǎn)化率高,那么這個(gè)時(shí)候漏斗分析就派上用場(chǎng)了

漏斗模型是一個(gè)倒置的金字塔形狀,主要用來(lái)分析頁(yè)面與頁(yè)面 功能模塊之前的轉(zhuǎn)化情況,下面一層都是基于緊鄰的上一層轉(zhuǎn)化而來(lái)的,也就是說(shuō)前一個(gè)條件是后一個(gè)條件成立的基礎(chǔ);解決此類場(chǎng)景clickhouse提供了一個(gè)名叫windowFunnel的函數(shù)來(lái)實(shí)現(xiàn):
windowFunnel(window)(timestamp, cond1, cond2, ..., condN)
  • window:窗口大小,從第一個(gè)事件開始,往后推移一個(gè)窗口大小來(lái)提取事件數(shù)據(jù)
  • timestamp:可以是時(shí)間或時(shí)間戳類型,用來(lái)對(duì)時(shí)事件進(jìn)行排序
  • cond:每層滿足的事件
為了便于大家理解,這里舉個(gè)簡(jiǎn)單的栗子。
# 創(chuàng)建一張用戶行為表,至少包含時(shí)間、事件、用戶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
插入測(cè)試數(shù)據(jù)
   
   
   
insert into action values(1,'瀏覽','2020-01-02 11:00:00');    insert into action values(1,'點(diǎn)擊','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,'點(diǎn)擊','2020-01-02 12:00:00');    
   insert into action values(4,'瀏覽','2020-01-02 11:50:00');    insert into action values(4,'點(diǎn)擊','2020-01-02 12:00:00');    
   insert into action values(5,'瀏覽','2020-01-02 11:50:00');    insert into action values(5,'點(diǎn)擊','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,'點(diǎn)擊','2020-01-02 12:00:00');    insert into action values(6,'下單','2020-01-02 12:10:00');      
已30分鐘作為一個(gè)時(shí)間窗口,看下windowFunnel返回了什么樣的數(shù)據(jù)
   
   
   
SELECT        user_id,        windowFunnel(1800)(time, event_type = '瀏覽', event_type = '點(diǎn)擊', 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 │    └─────────┴───────┘      
這里level只記錄了路徑中最后一次事件所屬的層級(jí),如果直接對(duì)level分組統(tǒng)計(jì)就會(huì)丟失之前的層級(jí)數(shù)據(jù),導(dǎo)致漏斗不能呈現(xiàn)金字塔狀

模型

繼續(xù)使用上面的測(cè)試數(shù)據(jù),通過(guò)數(shù)組的高階函數(shù)對(duì)上述結(jié)果數(shù)據(jù)進(jìn)行二次加工處理以獲取完整漏斗展示效果。
  • 案例
    分析"2020-01-02"這天 路徑為“瀏覽->點(diǎn)擊->下單->支付”的轉(zhuǎn)化情況。
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 = '點(diǎn)擊' ,            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

關(guān)于“clickhouse數(shù)據(jù)模型中有序漏斗是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI