精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用戶行為分析模型實踐(二)—— 漏斗分析模型

大數(shù)據(jù)
本文簡述了現(xiàn)有基于 Hive/Spark 的漏斗模型的實現(xiàn)邏輯,此種方式在允許用戶高度自定義查詢的同時,節(jié)約了存儲資源。但是會消耗一定的時間成本和隊列資源。

在《??用戶行為分析模型實踐(一)—— 路徑分析模型??》中,講述了基于平臺化查詢中查詢時間短、需要可視化的要求,并結(jié)合現(xiàn)有的存儲計算資源以及具體需求,我們在實現(xiàn)中將路徑數(shù)據(jù)進(jìn)行枚舉后分為兩次進(jìn)行合并。

本次帶來的是系列文章的第2篇,本文詳細(xì)介紹漏斗模型的概念及基本原理,并闡述了其在平臺內(nèi)部的具體實現(xiàn)。針對實際使用過程的問題,探索基于 ClickHouse漏斗模型實踐方案。

一、背景需求

漏斗分析是衡量轉(zhuǎn)化效果、進(jìn)行轉(zhuǎn)化分析的重要工具,是一種常見的流程式的數(shù)據(jù)分析方法。它能夠幫助你清晰地了解轉(zhuǎn)化情況,從多角度剖析對比,定位流失原因,提升轉(zhuǎn)化表現(xiàn)。他主要立足于三大需求場景:

  1. 定位用戶流失具體原因。
  2. 檢測某個專題活動效果。
  3. 針對不同版本,轉(zhuǎn)化率情況對比。

二、概述

2.1 概念介紹

漏斗模型主要用于分析一個多步驟過程中每一步的轉(zhuǎn)化與流失情況。其中有幾個概念要了解:

圖片

其中漏斗模型分為兩種:無序漏斗和有序漏斗。

定義如下:

無序漏斗:在漏斗的周期內(nèi),不限定漏斗多個步驟之間事件發(fā)生的順序。

【計算規(guī)則】:假設(shè)一個漏斗中包含了 A、B、C 3個步驟,A步驟發(fā)生的時間可以在B步驟之前,也可以在B的后面。用戶的行為順序為A、B、C的組合都算成功的漏斗轉(zhuǎn)化。即使漏斗步驟之間穿插一些其他事件步驟,依然視作該用戶完成一次成功的漏斗轉(zhuǎn)化。

有序漏斗:在漏斗的周期內(nèi),嚴(yán)格限定漏斗每個步驟之間的發(fā)生順序。

【計算規(guī)則】:假設(shè)一個漏斗中包含了 A、B、C 3個步驟,A步驟發(fā)生的時間必須在B步驟之前,用戶的行為順序必須為A->B->C 。

和無序漏斗一樣,漏斗步驟之間穿插一些其他事件步驟,依然視作該用戶完成一次成功的漏斗轉(zhuǎn)化。

 三、 用漏斗進(jìn)行的數(shù)據(jù)分析

了解了上面的關(guān)于漏斗模型的基本概念,我們看一下如何創(chuàng)建一個漏斗。

3.1 選一個漏斗類型

漏斗模型的類型一般分為有序漏斗和無序漏斗,它們的概念已在2.1做了詳細(xì)的介紹。我們這里以無序漏斗為例,創(chuàng)建漏斗模型。

3.2  添加漏斗步驟

漏斗步驟就是漏斗分析的核心部分,步驟間統(tǒng)計數(shù)據(jù)的對比,就是我們分析步驟間數(shù)據(jù)的轉(zhuǎn)化和流失的關(guān)鍵指標(biāo)。

比如我們以一個“下載應(yīng)用領(lǐng)紅包”的活動為例。預(yù)設(shè)的用戶的行為路徑是:用戶首先進(jìn)入【紅包首頁】,發(fā)現(xiàn)最新的紅包活動“下載應(yīng)用,領(lǐng)取紅包”,點擊進(jìn)入【紅包活動頁】,根據(jù)提示跳轉(zhuǎn)到【應(yīng)用下載頁】,選擇自己感興趣的應(yīng)用下載,完成后,進(jìn)入【提現(xiàn)頁面】領(lǐng)取活動獎勵。從上面描述的場景中,我們可以提取出以下關(guān)鍵的四步。

圖片

圖3.1 “下載應(yīng)用領(lǐng)紅包”活動步驟

3.3 確定漏斗的時間區(qū)間和周期

這里多了一個時間區(qū)間的概念,與前文介紹的周期容易混淆。一般來說,此類數(shù)據(jù)的數(shù)倉表是按照時間分區(qū)的。所以選擇時間區(qū)間,本質(zhì)就是選擇要計算的數(shù)據(jù)范圍。

周期是指一個漏斗從第一步流轉(zhuǎn)到最后一步的時間限制,即是用來界定怎樣才是一個完整的漏斗。在本例中,我們按照天為周期進(jìn)行處理,選擇時間區(qū)間為“2021-05-27”、“2021-05-28”、“2021-05-29”。

3.4 漏斗數(shù)據(jù)的展示

依據(jù)我們設(shè)計的漏斗模型(具體模型設(shè)計,下文會提及),可以計算出下表的數(shù)據(jù):

圖片

    表3.1 “下載應(yīng)用領(lǐng)紅包”活動分步數(shù)據(jù)

以表3.1中2021-05-27日的數(shù)據(jù)為例,觸達(dá)第一步“紅包首頁”的用戶數(shù)量為150,000,在同一天內(nèi)同時觸發(fā)第一步“紅包首頁”和第二步“紅包活動頁”的人數(shù)為11,700。其他數(shù)據(jù)的含義以此類推。

將表3.1中的數(shù)據(jù)每步按照日期加起來,就得到2021-05-27至2021-05-29日數(shù)據(jù)的漏斗圖(圖3.2)。

從中可以直觀的反應(yīng)出用戶在“紅包首頁”、“紅包活動頁”、“應(yīng)用下載頁”、“提現(xiàn)頁”四步中每一步的人數(shù)和轉(zhuǎn)化率。

比如,觸達(dá)“紅包首頁”頁面的人數(shù)為400,000,經(jīng)過”紅包首頁“,觸達(dá)”紅包活動頁“頁面的人數(shù)為30,000。則這兩個階段的轉(zhuǎn)化率為:30,000÷400,000=7.5%。

通過對各個階段人數(shù)和轉(zhuǎn)化率的比對,就能比較直觀的發(fā)現(xiàn)我們這個 “下載應(yīng)用領(lǐng)紅包”的活動用戶流失的環(huán)節(jié)所在,并以此排查原因和優(yōu)化各個環(huán)節(jié)。

圖片


圖 3.2 “下載應(yīng)用領(lǐng)紅包”活動漏斗圖


 四、整體功能設(shè)計及漏斗分析模型的實現(xiàn)

4.1 功能整體架構(gòu)設(shè)計

圖片

圖 4.1 漏斗分析整體架構(gòu)設(shè)計


整體工程主要分為配置、計算、存儲三階段。

(1)配置

此階段主要是工程端的后臺服務(wù)實現(xiàn)。用戶在前端按照自身需求設(shè)置漏斗類型、漏斗步驟、篩選條件、時間區(qū)間和周期等配置。后臺服務(wù)收到配置請求后,依據(jù)漏斗類型選擇不同任務(wù)組裝器進(jìn)行任務(wù)的組裝。

其中,漏斗類型是無序漏斗使用的Hive SQL 任務(wù)組裝器,而更加復(fù)雜的有序漏斗可以使用 Spark任務(wù)組裝器。組裝后生成的任務(wù)包含了漏斗模型的計算邏輯,比如 Hive SQL或者 Spark 任務(wù)。

(2)計算

平臺根據(jù)接收到的任務(wù)的類型,選擇Hive或者 Spark引擎進(jìn)行分析計算。計算結(jié)果同步到 MySQL 或者ClickHouse集群。

(3)存儲

結(jié)果集持久化到數(shù)據(jù)庫中,可通過后臺服務(wù)展示給用戶。

4.2 無序漏斗實現(xiàn)邏輯

無序漏斗并不限制其多個步驟之間的發(fā)生順序,只要在限定的周期內(nèi)完成即可。

在模型的設(shè)計上,采用的思想是:

在一個周期內(nèi),按照步驟順序依次計算漏斗每一步驟的人數(shù),并且下一層的計算的人群范圍要等于上一次計算完成的人群范圍,通過每一步的人群范圍可以計算出想要的指標(biāo),比如每步的人數(shù)(uv)或者訪問量(pv)。

如圖4.2 所示。其中,圈選的人群為每一步的觸達(dá)的人數(shù),計算的結(jié)果集就是基于此人群得到計算結(jié)果。步驟1的圈選人群會作為步驟2漏斗計算的一個篩選條件,參與后續(xù)計算。依次類推完成漏斗的每一步計算。最終匯集每一步的計算結(jié)果集形成類似于表3.1 的結(jié)果數(shù)據(jù)。

圖片

圖4.2 無序漏斗計算邏輯



4.3 有序漏斗實現(xiàn)邏輯

有序漏斗顧名思義,將嚴(yán)格漏斗每步之間的順序。整個實現(xiàn)邏輯可分為以下幾步:

(1)獲取規(guī)定時間區(qū)間內(nèi)的數(shù)據(jù)集。

為了方便講解,示例數(shù)據(jù)如下圖所示,其中,day為數(shù)據(jù)上報的時間,userId為用戶唯一標(biāo)識,event為事件,event_time為事件發(fā)生時間。

圖片

(2)按照漏斗步驟計算每行數(shù)據(jù)處于的漏斗步驟。

假設(shè)需要統(tǒng)計分析的漏斗步驟為:“啟動”->“首頁”->“詳情”?!皢印睒?biāo)記為1,“首頁”標(biāo)記為2,“詳情”標(biāo)記為3,記錄在event_step字段上。

圖片

(3)對上述數(shù)據(jù)進(jìn)行處理,得到每個用戶在當(dāng)天有序的事件上報列表。

將上述數(shù)據(jù)按照day,userId分組,按event_time順序,分別求取event_step和event_time的有序集合,并根據(jù)event_step獲取漏斗觸達(dá)的最大深度,記為level,如下:

圖片

(4)計算每一步漏斗的人數(shù)。

按照day與level分組計算每一步漏斗的人數(shù),也是是每個level的uv。

圖片

需要注意的是,因為計算的是每一步漏斗的人數(shù),所以步驟與步驟之間人數(shù)是沒有交集的,但事實上,根據(jù)有序漏斗的計算邏輯,觸達(dá)漏斗后面的步驟,一會觸達(dá)其前面的漏斗步驟。

所以,前面的步驟一定要加上其后所有步驟的的人數(shù),才是該步真正的人數(shù)。如上面的例子,對于2021-05-01的數(shù)據(jù),level=1的uv為1,level=2的uv為0,level=3的uv為1,所以level=1實際總?cè)藬?shù)為三步人數(shù)之和,也就是2。依次類推,由此可以得到所有步驟真正的總?cè)藬?shù)。

圖片

4.4 存在的問題與下一步優(yōu)化的方向

問題:現(xiàn)階段用戶通過自定義的配置,生成相應(yīng)的Spark或者Hive任務(wù)計算出模型的結(jié)果并生成報表,進(jìn)而展示給用戶。這樣的流程在提供給用戶靈活的配置和個性化的查詢的同時,兼顧了節(jié)約存儲資源。美中不足的是報表的生成過程,依然需要耗費(fèi)一定的時間成本,尤其是有序漏斗采用了Spark計算,對于隊列資源也會產(chǎn)生較大的消耗。這點在用戶短時間創(chuàng)建大量的分析報表時,體現(xiàn)的尤為明顯。

優(yōu)化方向:將一定時期內(nèi)的相關(guān)的數(shù)倉數(shù)據(jù)同步到ClickHouse,依托ClickHouse強(qiáng)大的即時計算和分析能力,為用戶提供所查即所得的使用體驗。用戶可以根據(jù)自身業(yè)務(wù)需求選擇即時查詢或者離線報表。例如,比如需要大量組合各類條件進(jìn)行對比分析的可以選擇即時模塊。需要長期觀察的報表可以選擇離線的例行報表。這樣就達(dá)到的存儲和查詢效率的平衡。

下面,就對漏斗模型在ClickHouse上的應(yīng)用做一些探索。

 五、基于 ClickHouse 的漏斗分析模型

5.1 主要函數(shù)介紹

(1)windowFunnel(window, [mode, [mode, ... ]])(timestamp, cond1, cond2, ..., condN)

  • 定義:
    在所定義的滑動窗口內(nèi),依次檢索事件鏈條。函數(shù)在這個事件連上觸及的事件的最大數(shù)量。
  • 補(bǔ)充:
    ① 該函數(shù)檢索到事件在窗口內(nèi)的第一個事件,則將事件計數(shù)器設(shè)置為1,此時就是滑動窗口的啟動時刻。
    ② 如果來自鏈的事件在窗口內(nèi)順序發(fā)生,則計數(shù)器遞增,如果事件序列終端,則計數(shù)器不會增加。
    ③ 如果數(shù)據(jù)在不同的完成點具有多個事件鏈,則該函數(shù)將僅輸出最長鏈的大小。
  • 參數(shù):
    ①【timestamp】 :表中代表時間的列。函數(shù)會按照這個時間排序
    ② 【cond】:事件鏈的約束條件
    ③【window】:滑動窗口的長度,表示首尾兩個事件條件的間隙。單位依據(jù)timestamp的參數(shù)而定。即:timestamp of cond1 <= timestamp of cond2 <= ... <= timestamp of condN <= timestamp of cond1 + window
    ④ 【mode】:可選的一些配置:
    【strict】: 事件鏈中,如果有事件是不唯一的,則重復(fù)的事件的將被排除,同時函數(shù)停止計算。
    【strict_orde】:事件鏈中的事件,要嚴(yán)格保證先后次序。
    【strict_increase】:事件鏈的中事件,其事件戳要保持完全遞增。

(2)arrayWithConstant(length,param)

  • 定義:
    生成一個指定長度的數(shù)組
  • 參數(shù):
    ① length:數(shù)組長度
    ② param:填充字段
  • 例:SQL:

select arrayWithConstant(3,1);

Result:

arrayWithConstant(3, 1)

[1,1,1]

(3)arrayEnumerate(arr)

  • 定義:返回數(shù)組下標(biāo)
  • 參數(shù):arr:數(shù)組
  • 例:SQL:?

select arrayEnumerate([11,22,33]);

Result:

arrayEnumerate([11, 22, 33])

[1,2,3]

(4)groupArray(x)

  • 定義:創(chuàng)建數(shù)組
  • 例:SQL: 

select groupArray(1);

Result:

groupArray(1)

[1]

(5)arrayCount([func,] arr1)

  • 定義:返回數(shù)組中符合函數(shù)func的元素的數(shù)量
  • 參數(shù):
    ① func:lambda表達(dá)式
    ② arr1:數(shù)組
  • 例:SQL:

select arrayCount(x-> x!=1,[11,22,33]);

Result:

arrayCount(lambda(tuple(x), notEquals(x, 1)), [11, 22, 33])

3

6)hasAll(set, subset)

  • 定義:檢查一個數(shù)組是否是另一個數(shù)組的子集,如果是就返回1
  • 參數(shù):
    ① set:具有一組元素的任何類型的數(shù)組。
    ② subset:任何類型的數(shù)組,其元素應(yīng)該被測試為set的子集。
  • 例:SQL:

select hasAll([11,22,33], [11]);

Result:

hasAll([11, 22, 33], [11])

1

5.2 模型構(gòu)建過程

5.2.1  數(shù)據(jù)準(zhǔn)備

為了更加清晰的講解整個過程,我們舉一個例子演示一下整個過程。

首先構(gòu)建一個ClickHouse表funnel_test,包含用戶唯一標(biāo)識userId,事件名稱event,事件發(fā)生日期day。

建表語句如下:

create table funnel_test
(
userId String,
event String,
day DateTime
)
engine = MergeTree PARTITION BY userId
ORDER BY xxHash32(userId);

 插入測試數(shù)據(jù):

insert into funnel_test values(1,'啟動','2021-05-01 11:00:00');
insert into funnel_test values(1,'首頁','2021-05-01 11:10:00');
insert into funnel_test values(1,'詳情','2021-05-01 11:20:00');
insert into funnel_test values(1,'瀏覽','2021-05-01 11:30:00');
insert into funnel_test values(1,'下載','2021-05-01 11:40:00');

insert into funnel_test values(2,'啟動','2021-05-02 11:00:00');
insert into funnel_test values(2,'首頁','2021-05-02 11:10:00');
insert into funnel_test values(2,'瀏覽','2021-05-02 11:20:00');
insert into funnel_test values(2,'下載','2021-05-02 11:30:00');

insert into funnel_test values(3,'啟動','2021-05-01 11:00:00');
insert into funnel_test values(3,'首頁','2021-05-02 11:00:00');
insert into funnel_test values(3,'詳情','2021-05-03 11:00:00');
insert into funnel_test values(3,'下載','2021-05-04 11:00:00');

insert into funnel_test values(4,'啟動','2021-05-03 11:00:00');
insert into funnel_test values(4,'首頁','2021-05-03 11:01:00');
insert into funnel_test values(4,'首頁','2021-05-03 11:02:00');
insert into funnel_test values(4,'詳情','2021-05-03 11:03:00');
insert into funnel_test values(4,'詳情','2021-05-03 11:04:00');
insert into funnel_test values(4,'下載','2021-05-03 11:05:00');

如果數(shù)據(jù)表如下:


圖片

表 5.1 漏斗模型測試數(shù)據(jù)

5.2.2 有序漏斗計算

假定,漏斗的步驟為:啟動->首頁->詳情->下載

(1)使用ClickHouse的漏斗構(gòu)建函數(shù)windowFunnel()查詢 

SELECT userId,
windowFunnel(86400)(
day,
event = '啟動',
event = '首頁',
event = '詳情',
event = '下載'
) AS level
FROM (
SELECT day, event, userId
FROM funnel_test
WHERE toDate(day) >= '2021-05-01'
and toDate(day) <= '2021-05-06'
)
GROUP BY userId
order by userId;

從上述SQL中,設(shè)置了漏斗周期為86400秒(1天),這個周期的單位是依據(jù)timestamp決定的。整個漏斗分為了4步驟:啟動、首頁、詳情、下載。時間區(qū)間為“2021-05-01”到“2021-05-06”之間。執(zhí)行后,得到如下結(jié)果:

圖片

從結(jié)果中,可以看到各個userId在規(guī)定周期內(nèi),觸達(dá)的最大的漏斗層級,也就是執(zhí)行了漏斗步驟了幾步。例如,userId=1,在一天內(nèi),按序訪問了啟動->首頁->詳情->下載這四步,得到最大層級就是4。當(dāng)然,我們也可以漏斗函數(shù)配置為”strict_order“模式,他將嚴(yán)格保證先后次序,還是userId為1的情況,在”2021-05-01“這一天,”詳情“與”下載“間多了個”瀏覽“的動作,所以此刻,userId=1可觸達(dá)的層級就是3,因為,在”strict_order“下,”詳情“阻斷了整個事件鏈路。

(2)獲取每個用戶在每個層級的明細(xì)數(shù)據(jù)

通過上一步我們計算出了每個用戶在設(shè)定的周期內(nèi)觸達(dá)的最大的層級。下面接著要計算每個用戶在每個層級的明細(xì)數(shù)據(jù),計算邏輯如下:

SELECT userId,
arrayWithConstant(level, 1) levels,
arrayJoin(arrayEnumerate(levels)) level_index

FROM (
SELECT userId,
windowFunnel(86400)(
day,
event = '啟動',
event = '首頁',
event = '詳情',
event = '下載'
) AS level
FROM (
SELECT day, event, userId
FROM funnel_test
WHERE toDate(day) >= '2021-05-01'
and toDate(day) <= '2021-05-06'
)
GROUP BY userId
);

將這個最大的層級轉(zhuǎn)化為相應(yīng)大小的數(shù)組,從中得到數(shù)組下標(biāo)集合,然后將這個下標(biāo)的集合按其中元素展開為多行。這樣就得到每個用戶在每個層級上明細(xì)數(shù)據(jù)。

例如userId=1的最大層級為4,通過arryWithConstant函數(shù)生成數(shù)組[1,1,1,1],然后取這個數(shù)組下標(biāo)得到新的數(shù)組[1,2,3,4],這些下標(biāo)其實對應(yīng)著漏斗的“啟動”,“首頁”,“詳情”,“下載”這四個層級。

將下標(biāo)數(shù)組通過arrayJoin函數(shù)展開,得到userId=1的各層明細(xì)數(shù)據(jù):

全部userId的執(zhí)行結(jié)果如下:


圖片

(3) 計算漏斗各層的用戶數(shù)

將上面步驟得到的明細(xì)數(shù)據(jù)按照漏斗層級分組聚合,就得到了每個層級的用戶數(shù)??傮w邏輯如下:

SELECT  transform(level_index,[1,2,3,4],['啟動','首頁','詳情','下載'],'其他') as event,
count(1)
FROM (
SELECT userId,
arrayWithConstant(level, 1) levels,
arrayJoin(arrayEnumerate(levels)) level_index
FROM (
SELECT userId,
windowFunnel(86400)(
day,
event = '啟動',
event = '首頁',
event = '詳情',
event = '下載'
) AS level
FROM (
SELECT day, event, userId
FROM funnel_test
WHERE toDate(day) >= '2021-05-01'
and toDate(day) <= '2021-05-06'
)
GROUP BY userId
)
)
group by level_index
ORDER BY level_index;

結(jié)果為:

圖片

5.2.3 無序漏斗計算

假定,漏斗的步驟為:啟動->首頁

(1)確定計算的數(shù)據(jù)范圍

SELECT toDate(day),
event,
userId
FROM funnel_test
WHERE toDate(day) >= '2021-05-01'
and toDate(day) <= '2021-05-06';

結(jié)果如下:


圖片

(2)計算每個userId的訪問量(pv)和訪問用戶數(shù)(uv)。

先按照時間與userId分組,通過groupArray函數(shù)獲取事件(event)的集合。

pv計算:

【漏斗第一層級】:直接查詢事件集合中,漏斗第一步事件的總數(shù)。

【漏斗第二層級】:在第一層級事件存在的情況下,查詢第二層級的數(shù)量。后面的層級以此類推。

uv計算:

【漏斗第一層級】:如果事件集合中,包含第一步事件,則記為1,表示存在。

【漏斗第二層級】:事件集合中,同時包含第一與第二層級事件,則記為1。后面的層級依此類推。

select day,
userId,
groupArray(event) as events,
arrayCount(x-> x = '啟動', events) as level1_pv,
if(has(events, '啟動'), arrayCount(x-> x = '首頁', events), 0) as level2_pv,
hasAll(events, ['啟動']) as level1_uv,
hasAll(events, ['啟動','首頁']) as level2_uv
from (
SELECT toDate(day) as day,
event,
userId
FROM funnel_test
WHERE toDate(day) >= '2021-05-01'
and toDate(day) <= '2021-05-06')
group by day, userId;

得到結(jié)果:


圖片


(3)按天統(tǒng)計

按天統(tǒng)計,計算出每天的用戶數(shù)及每個層級的pv,uv。

SELECT day           AS day,     
sum(level1_pv) AS sum_level1_pv,
sum(level2_pv) AS sum_level2_pv,
sum(level1_uv) as sum_level1_uv,
sum(level2_uv) as sum_level2_uv
from (
select day,
userId,
groupArray(event) as events,
arrayCount(x-> x = '啟動', events) as level1_pv,
if(has(events, '啟動'), arrayCount(x-> x = '首頁', events), 0) as level2_pv,
hasAll(events, ['啟動']) as level1_uv,
hasAll(events, ['啟動','首頁']) as level2_uv
from (
SELECT toDate(day) as day,
event,
userId
FROM funnel_test
WHERE toDate(day) >= '2021-05-01'
and toDate(day) <= '2021-05-06')
group by day, userId
)
group by day
order by day;

計算結(jié)果如下:


圖片


 六、寫在最后

漏斗分析是數(shù)據(jù)分析中的一個重要的分析手段,通過它獲取的各個環(huán)節(jié)的訪問量、轉(zhuǎn)化率、流失率等數(shù)據(jù),為我們評估業(yè)務(wù)流程的合理性,提升用戶體驗,加強(qiáng)用戶的留存率都起到了重要作用。

本文簡述了現(xiàn)有基于 Hive/Spark 的漏斗模型的實現(xiàn)邏輯,此種方式在允許用戶高度自定義查詢的同時,節(jié)約了存儲資源。但是會消耗一定的時間成本和隊列資源。

為了優(yōu)化此類問題,本文討論了基于 ClickHouse 的漏斗模型實現(xiàn),在模型的計算速率取得了較為理想的效果。ClickHouse 雖然擁有種類繁多的函數(shù)支持計算分析,但是在缺少便捷的自定義函數(shù)功能,在某些細(xì)分場景下并不十分貼合業(yè)務(wù),這一點也是未來可以加強(qiáng)和突破的方向。

責(zé)任編輯:龐桂玉 來源: vivo互聯(lián)網(wǎng)技術(shù)
相關(guān)推薦

2024-04-18 08:30:00

留存分析模型數(shù)據(jù)分析

2023-02-01 22:50:41

大數(shù)據(jù)

2023-02-01 23:10:16

大數(shù)據(jù)

2022-02-21 17:35:50

漏斗模型流程數(shù)據(jù)

2017-09-28 16:31:02

大數(shù)據(jù)數(shù)據(jù)分析漏斗模型

2017-07-24 09:18:55

大數(shù)據(jù)數(shù)據(jù)分析行為事件分析

2022-09-28 11:34:27

用戶行為數(shù)據(jù)業(yè)務(wù)

2021-08-02 22:56:54

漏斗分析數(shù)據(jù)

2023-09-11 11:38:53

漏斗工具模型

2013-09-05 09:33:25

大數(shù)據(jù)盧東明SAP

2016-10-21 14:17:13

大數(shù)據(jù)技術(shù)大數(shù)據(jù)行為分析

2024-08-06 11:32:07

2012-08-29 08:49:51

2017-05-02 10:30:46

2024-12-03 12:05:57

2024-03-26 09:58:01

CohortRFM分層模型

2025-09-03 02:23:00

行為分析分析流程建模思路

2024-05-07 12:00:47

決策分析模型數(shù)據(jù)

2024-10-30 12:21:18

2024-10-10 11:59:11

點贊
收藏

51CTO技術(shù)棧公眾號

国产成+人+综合+亚洲欧美| 高h放荡受浪受bl| 日韩激情在线| 日韩欧美亚洲国产精品字幕久久久| 国产欧美123| 四虎精品在线| 免费高清不卡av| 欧美日韩国产va另类| 欧美高清性xxxx| 日韩毛片免费视频一级特黄| 亚洲无人区一区| 日韩欧美手机在线| 6—12呦国产精品| 亚洲黄页一区| y97精品国产97久久久久久| 天天躁日日躁狠狠躁免费麻豆| 欧美影视资讯| 午夜精品国产更新| 中文字幕乱码一区二区三区| 亚洲 欧美 自拍偷拍| 精品在线免费视频| 日韩美女福利视频| 久草免费新视频| 久久中文字幕av| 亚洲男人天堂视频| 男人女人拔萝卜视频| 欧美国产日韩电影| 欧美日韩亚洲视频一区| 无码人妻精品一区二区蜜桃百度| 国产一二在线观看| av网站免费线看精品| 成人淫片在线看| 波多野结衣爱爱| 亚洲神马久久| 久久久久久久97| 一起操在线播放| 欧美色就是色| 亚洲欧美一区二区三区在线| 中文字幕99页| 欧州一区二区三区| 777午夜精品免费视频| 国产一区亚洲二区三区| av漫画网站在线观看| 亚洲乱码国产乱码精品精的特点 | 欧美日韩国产高清| 久久九九国产精品怡红院| 免费看裸体网站| 国产99精品一区| 亚洲免费伊人电影在线观看av| 欧美xxxxx少妇| 草莓视频一区二区三区| 日韩视频在线你懂得| 91欧美一区二区三区| 在线播放成人| 欧美一区二区三区视频免费播放| 天堂视频免费看| 亚洲精品自拍| 欧美一区二区三区在线看| 一级做a免费视频| 国产精品高清一区二区| 7777精品伊人久久久大香线蕉完整版| 自拍偷拍一区二区三区四区| 国产精品久久久久久妇女| 欧美专区在线观看一区| 黄色在线视频网| 欧美黄页免费| 日韩一区二区三区精品视频 | 久久久美女毛片| 日本免费高清不卡| avtt亚洲| 亚洲欧美日韩系列| 日本a在线天堂| 国产拍在线视频| 色菇凉天天综合网| 亚洲国产成人va在线观看麻豆| 久久电影天堂| 日韩欧美国产成人一区二区| 日本少妇毛茸茸| 欧美久久综合网| 久久综合免费视频影院| 久久视频免费在线观看| 性色一区二区三区| 国产欧美 在线欧美| 精品国产av一区二区| 成人中文字幕合集| 欧美一级爱爱| 国产淫片在线观看| 欧美日韩国产一区在线| 乌克兰美女av| 97色成人综合网站| 亚洲人精品午夜在线观看| 中文乱码字幕高清一区二区| 欧美人与禽猛交乱配视频| 午夜精品福利在线观看| 久久精品国产亚洲av麻豆蜜芽| 国产一区二区在线观看免费| 黑人巨大精品欧美一区二区小视频 | 日韩在线观看电影完整版高清免费| av在线免费一区| 一区二区三区产品免费精品久久75| 欧美日韩国产精品激情在线播放| 色综合视频一区二区三区44| 亚洲二区中文字幕| 日本 欧美 国产| 香蕉久久久久久久av网站| 91牛牛免费视频| 美女毛片在线看| 一区二区激情视频| 亚洲综合欧美激情| 色婷婷久久久| 久久久久久国产精品美女| 在线观看免费高清视频| 99精品久久免费看蜜臀剧情介绍| 一区二区三区欧美在线| 成人性生交大片免费网站| 欧美成人猛片aaaaaaa| 奇米网一区二区| 亚洲精选久久| 99re国产| 黄色成人影院| 欧美在线视频日韩| 丰满大乳奶做爰ⅹxx视频| 亚洲乱码精品| 国产精品自拍视频| 国产小视频在线观看| 亚洲一区二区视频在线观看| 性生生活大片免费看视频| 狠狠色丁香婷婷综合影院| 久久久久久久色| 午夜精品久久久久久久99热黄桃 | 91嫩草丨国产丨精品| 日本不卡一区二区| 欧美凹凸一区二区三区视频| 岛国片av在线| 欧美变态凌虐bdsm| 欧美日韩在线国产| 国内成人免费视频| 一区二区三区久久网| av在线一区不卡| 中文字幕久久久| 在线播放国产一区| 亚洲国产岛国毛片在线| 无码无遮挡又大又爽又黄的视频| 日韩在线黄色| 欧美性视频在线| 欧美孕妇孕交| 欧美午夜一区二区三区免费大片| 亚洲第一综合网| 奇米一区二区三区av| 先锋影音日韩| 欧美a视频在线| 日韩在线中文字| 国产一区二区三区黄片| 中文字幕一区二区三区色视频| 向日葵污视频在线观看| 欧美xxxx中国| 亚洲a中文字幕| 视频在线这里都是精品| 欧美成人三级电影在线| 久草精品视频在线观看| 99久久综合精品| 岳毛多又紧做起爽| 欧美精品乱码| 成人高清视频观看www| 国产激情视频在线| 日韩女优制服丝袜电影| 日本一区二区三区免费视频| 91麻豆产精品久久久久久| 无码人妻丰满熟妇区毛片18| av在线不卡顿| 亚洲精品欧美极品| 99re6在线精品视频免费播放| 亚洲精品wwwww| 制服丝袜在线一区| 亚洲少妇最新在线视频| 中文在线观看免费视频| 奶水喷射视频一区| 亚洲午夜精品久久| 成人春色在线观看免费网站| 茄子视频成人在线| 日韩伦理在线观看| 精品99999| 欧美另类高清videos的特点| 亚洲日本护士毛茸茸| 911亚洲精选| 日韩成人免费看| 91大学生片黄在线观看| 天堂av一区二区三区在线播放| 国产高清视频一区三区| bestiality新另类大全| 亚洲精品在线视频| 国产精品久久久午夜夜伦鲁鲁| 天涯成人国产亚洲精品一区av| av永久免费观看| 国产成人精品一区二区三区四区 | 综合网在线观看| 自拍偷拍国产精品| 强伦人妻一区二区三区| 国产老妇另类xxxxx| 国产熟女高潮视频| 午夜日韩电影| 亚洲国产高清国产精品| 丁香婷婷成人| 成人网页在线免费观看| 欧美大片在线看免费观看| 国产区视频在线| 亚洲成人精品视频在线观看| 一级黄色大毛片| 日韩欧美国产免费播放| 欧美精品一区二区蜜桃| 日本一区二区三区高清不卡| 亚洲av永久无码精品| 精品在线播放午夜| 欧美精品无码一区二区三区| 在线精品福利| dy888午夜| 成人免费看片39| 久久人人爽爽人人爽人人片av| 一区二区三区视频免费视频观看网站| 国产精品丝袜高跟| 欧美日韩五区| 欧美在线影院在线视频| sis001亚洲原创区| 久久69精品久久久久久国产越南| 日韩专区在线| 国产香蕉精品视频一区二区三区| 天堂av在线免费| 日韩欧美成人午夜| 国产夫绿帽单男3p精品视频| 欧美日韩第一区日日骚| 无码人妻av免费一区二区三区 | 久久99热精品这里久久精品| 97超碰人人在线| 一区二区三区亚洲| 毛片在线播放网址| 亚洲欧美精品一区二区| 亚洲三区在线观看无套内射| 亚洲成人精品视频| 人妻夜夜爽天天爽| 日韩成人中文字幕在线观看| 人妻va精品va欧美va| 欧美哺乳videos| 欧美视频一二区| 亚洲精美色品网站| 婷婷丁香一区二区三区| 亚洲电影天堂av| 婷婷综合激情网| 国产午夜精品久久久| 香蕉视频国产在线| 精品丝袜一区二区三区| 日产精品久久久久久久性色| 亚洲精品自拍偷拍| 免费在线性爱视频| 国产亚洲精品久久久久久| jizz在线观看中文| 日韩亚洲综合在线| 成人日韩欧美| 欧美极品少妇xxxxⅹ免费视频| 日本电影在线观看| 性色av一区二区咪爱| 蜜桃视频在线观看播放| 日韩免费高清在线观看| 巨胸喷奶水www久久久免费动漫| 国产精选久久久久久| 国产精品色婷婷在线观看| 99中文视频在线| 偷拍亚洲精品| 亚洲一卡二卡| 中文字幕一区二区三区欧美日韩| 欧美日韩国产在线看| 91传媒免费观看| 亚洲午夜激情av| 在线观看 亚洲| 欧美日韩精品免费观看视频| 国产视频www| 日韩h在线观看| 成年人视频在线看| 欧美日韩成人免费| 亚洲精品一区| 91麻豆国产精品| 久久亚州av| 亚洲欧美成人一区| 亚洲国产专区| 亚洲综合在线网站| 国产一区在线观看视频| 青青草视频网站| 国产精品另类一区| 国产精选第一页| 欧美日韩和欧美的一区二区| 午夜久久久久久久久久| 亚洲日本成人女熟在线观看| 国产在线高清理伦片a| 欧美在线xxx| 精品麻豆剧传媒av国产九九九| 久久久久se| 999视频精品| 青青视频在线播放| 国产一区二区精品久久99| 成人免费av片| 一区二区成人在线视频| 日韩精品成人免费观看视频| 日韩欧美国产成人一区二区| jizz在线观看中文| 欧美亚洲免费电影| 日韩欧美中文字幕一区二区三区| 日韩免费av一区二区三区| 亚洲午夜电影| 日本高清免费在线视频| 久久久国产精品午夜一区ai换脸| 激情五月少妇a| 欧美日韩精品免费观看视频 | 粉嫩13p一区二区三区| 久久视频精品在线观看| 欧美日韩午夜激情| 亚洲精品911| 久久久99免费视频| 国产一区二区主播在线| 精品婷婷色一区二区三区蜜桃| 中文在线日韩| 羞羞的视频在线| 国产午夜精品一区二区三区嫩草| 日本熟妇色xxxxx日本免费看| 884aa四虎影成人精品一区| 国产精品一二三区视频| 91精品国产乱码久久久久久蜜臀 | 亚洲的天堂在线中文字幕| 成人在线播放免费观看| 国产精品丝袜高跟| 欧美日韩在线播放视频| 国产成人无码av在线播放dvd| 99久久免费精品| 国产午夜精品一区二区理论影院 | 日本美女视频网站| 亚洲免费色视频| 国产巨乳在线观看| 精品国产自在精品国产浪潮 | 7777精品伊人久久久大香线蕉经典版下载 | 91成人网在线| 黄色电影免费在线看| 日本成熟性欧美| 最新国产精品视频| 国产女女做受ⅹxx高潮| wwww国产精品欧美| 午夜婷婷在线观看| 亚洲日韩欧美视频一区| 成人免费网站视频| 欧美人xxxxx| 日韩国产精品久久久久久亚洲| 日本少妇色视频| 欧美午夜精品一区二区蜜桃| 成年午夜在线| 国产日韩专区在线| 欧美日韩国产高清| 在线观看一区二区三区四区| 亚洲午夜精品17c| 亚州视频一区二区三区| 国产精品va在线播放我和闺蜜| 日韩成人激情| 在线视频日韩欧美| 一区二区在线观看视频在线观看| 精品国自产在线观看| 欧美日韩高清区| 日韩美脚连裤袜丝袜在线| 欧美 国产 小说 另类| 欧美国产欧美亚州国产日韩mv天天看完整 | 黄色网在线免费观看| 亚洲va欧美va在线观看| 海角社区69精品视频| 国产亚洲无码精品| 欧美日韩精品久久久| 丝袜美腿av在线| 久久青青草原| 精品亚洲成a人在线观看| 九九九免费视频| 亚洲色图偷窥自拍| 亚洲香蕉久久| 亚洲不卡中文字幕无码| 亚洲国产精品高清| 男人天堂手机在线观看| 日韩av片永久免费网站| 888久久久| 国产黄色网址在线观看| 9191国产精品| 在线观看福利电影| 国产精品久久成人免费观看| www.av精品| 91免费视频播放| 91大神福利视频在线| 91视频综合| 真人bbbbbbbbb毛片| 欧美疯狂做受xxxx富婆| 人在线成免费视频| 7777在线视频| 久久精品一区二区三区不卡| 国产成人精品一区二区无码呦| 欧美一级电影免费在线观看| 综合久久久久| 亚洲黄色小说视频| 精品国产sm最大网站| 日韩免费在线电影|