精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

老牛国内精品亚洲成av人片| 人妖欧美1区| 蜜臀91精品一区二区三区| 亚洲一线二线三线久久久| 99久久国产免费免费| 尤物视频在线观看国产| 欧美一区电影| 亚洲电影av在线| 在线精品日韩| 天堂av资源在线| 另类小说一区二区三区| 久久久免费精品| 国产馆在线观看| av一级亚洲| 欧美日韩精品系列| 日韩国产高清一区| 亚洲xxx在线| 蜜桃视频在线观看一区| 久久久久久久久久av| 林心如三级全黄裸体| 欧美人妖在线观看| 日韩亚洲欧美一区二区三区| 欧美精品一区二区三区免费播放| 污视频在线免费观看网站| 欧美韩国日本不卡| 裸体丰满少妇做受久久99精品| 精品人妻一区二区三区麻豆91 | 久久成人av网站| 在线 丝袜 欧美 日韩 制服| av男人一区| 日韩欧美一区二区在线视频| 国产精品v日韩精品v在线观看| 中文不卡1区2区3区| 亚洲一区二区在线播放相泽| 国产精品美女在线播放| 中文字幕+乱码+中文| 亚洲三级网站| 国产+人+亚洲| 国产一级片网址| 欧美日韩一卡| 欧美日韩不卡合集视频| 免费中文字幕日韩| 久久久久久久久99精品大| 在线观看日韩专区| 国产一区二区三区四区在线| 国产一区二区三区天码| 亚洲精品综合精品自拍| 久久一区二区电影| 台湾佬综合网| 欧美视频一区二区在线观看| 国产福利视频在线播放| 一区二区精品伦理...| 红桃av永久久久| 成人在线免费在线观看| 国产69久久| 久久久www免费人成精品| 久久天天狠狠| 国产精品久久久久久无人区| 久久se这里有精品| 成人av在线亚洲| 91久久久久久久久久久久| 欧美日韩精品| 欧美激情第一页xxx| 精品97人妻无码中文永久在线| 日韩欧美四区| 亚洲日韩中文字幕在线播放| 精品无码国产污污污免费网站 | 亚洲精品不卡| 无遮挡动作视频在线观看免费入口| 极品少妇xxxx偷拍精品少妇| 国产欧美精品一区二区三区-老狼| 日韩欧美一级大片| 激情久久五月| 国产91精品久久久| 久久久蜜桃一区二区| 日日夜夜免费精品| 国产精品青草久久久久福利99| 亚洲一区在线观| 国产·精品毛片| 国产精品丝袜久久久久久高清 | 欧美一区二区三区在线| 人妻av一区二区三区| 欧美午夜18电影| 尤物九九久久国产精品的特点 | 亚洲一区国产精品| 午夜国产在线观看| 国产精品第五页| 欧美男女爱爱视频| 免费在线观看av| 亚洲成人动漫av| 韩国视频一区二区三区| 日本一区二区三区视频在线看| 亚洲国产成人av在线| 三年中国中文观看免费播放| 96sao在线精品免费视频| 亚洲精品成人久久电影| 精品一区二区6| 精品91视频| 国产精品久久久久久久久久久久久| 国产免费的av| 国产网站一区二区三区| 欧美这里只有精品| 国产韩日精品| 亚洲第一精品福利| 熟女av一区二区| 校园春色综合网| www.成人av.com| 成年人免费在线视频| 亚洲成人av电影在线| 一本岛在线视频| 西野翔中文久久精品国产| 久久久精品视频成人| 无码人妻精品一区二区三区9厂 | 免费成人在线观看av| 制服丝袜中文字幕在线| 在线视频中文字幕一区二区| 国产污在线观看| 综合激情一区| 91精品久久久久久久久久久久久久| 51国产偷自视频区视频| 国产一区二区美女诱惑| 午夜精品亚洲一区二区三区嫩草| 奇米影视888狠狠狠777不卡| 亚洲欧美日韩人成在线播放| www.黄色网址.com| 国产一区二区主播在线| 日韩高清a**址| 精品视频在线观看免费| 国产一区不卡视频| 在线码字幕一区| 日韩黄色在线| 在线免费观看羞羞视频一区二区| 欧美啪啪小视频| 91伊人久久大香线蕉| 日本欧美视频在线观看| 91久久精品无嫩草影院| 久久不射热爱视频精品| 国产成人av免费看| 亚洲欧美国产三级| 污视频免费在线观看网站| 精品不卡一区| 国产精品久久久久影院日本| 国产视频网址在线| 欧美影院一区二区| 国产18无套直看片| 精品制服美女丁香| 青草全福视在线| 天堂va欧美ⅴa亚洲va一国产| 欧美成人精品激情在线观看| 99久久精品国产一区二区成人| 亚洲免费av高清| 免费看的av网站| 国模 一区 二区 三区| 国产日韩在线一区二区三区| 国产网红女主播精品视频| 亚洲国产日韩精品在线| 台湾佬中文在线| 国产欧美日韩亚州综合 | 国产精品一区不卡| 欧美精品中文字幕一区二区| 精品国产免费人成网站| 亚洲桃花岛网站| 国产精品爽爽久久| 国产欧美在线| 蜜桃传媒视频麻豆第一区免费观看| 看黄在线观看| 国产午夜精品视频| 中文字幕在线观看你懂的| 亚洲婷婷国产精品电影人久久| 青娱乐精品在线| 在线欧美日韩| 日本在线视频不卡| 日韩久久一区| 久久久久日韩精品久久久男男| 香蕉国产在线视频| 欧美影片第一页| 婷婷伊人五月天| av中文字幕在线不卡| 激情内射人妻1区2区3区 | 国产乱人伦偷精品视频不卡| 97中文字幕在线| 国产免费播放一区二区| 成人写真福利网| 久热在线观看视频| 久久精品免费电影| 日本不卡视频一区二区| 宅男在线国产精品| 岛国av中文字幕| 亚洲男同性视频| www在线观看免费视频| 国产福利91精品一区二区三区| 国产九区一区在线| 肉色欧美久久久久久久免费看| 精品国偷自产在线视频99| 亚洲精品久久久蜜桃动漫| 91福利视频久久久久| 欧美 日本 国产| 久久av老司机精品网站导航| 成品人视频ww入口| 香蕉精品视频在线观看| 精品欧美国产| 成人黄色91| 国产精品99久久久久久www| 2024短剧网剧在线观看| 伊人一区二区三区久久精品| 人妻一区二区三区四区| 911精品国产一区二区在线| 性无码专区无码| 亚洲一区成人在线| 成人做爰视频网站| 国产日韩欧美不卡| 亚洲一区二区三区综合| 国产一区二三区| 五月婷婷之综合激情| 亚洲毛片视频| 日韩小视频网站| 亚洲情侣在线| 亚洲一区二区高清视频| 国产精品嫩模av在线| 久久国产精品一区二区三区四区| 亚洲日本视频在线| 91久久精品国产| 欧美一级网址| 国产精品视频在线观看| 欧美专区福利免费| 91国在线精品国内播放| 丁香高清在线观看完整电影视频 | 精品国产视频一区二区三区| 久久婷婷综合激情| 中文字幕在线免费看线人| 成人av综合一区| 美女伦理水蜜桃4| 国产aⅴ精品一区二区三区色成熟| 久久婷婷中文字幕| 精品亚洲免费视频| xxxx在线免费观看| 国内精品伊人久久久久av一坑| 成人综合久久网| 欧美成人一品| 男同互操gay射视频在线看| 外国成人免费视频| 国产树林野战在线播放| 欧美69视频| 91国在线高清视频| 窝窝社区一区二区| 精品无码久久久久久久动漫| 都市激情久久| 久久99精品久久久久久青青日本 | 久久久久久久久久久久久国产精品| 99国产一区| 免费裸体美女网站| 日本免费新一区视频| 丁香婷婷激情网| 麻豆国产精品视频| 视频区 图片区 小说区| 国产成人无遮挡在线视频| 丰满少妇xbxb毛片日本| 99精品视频在线观看| 国产精品300页| 国产日韩精品一区二区三区| 少妇高潮惨叫久久久久| 亚洲日本韩国一区| 黄色小说在线观看视频| 欧美日韩在线第一页| 成人h动漫精品一区二区下载| 在线观看免费亚洲| 国产女18毛片多18精品| 亚洲第一精品福利| 麻豆国产在线播放| 久久视频在线视频| zzzwww在线看片免费| 欧美一区二区三区艳史| 国产原创一区| 欧美亚洲一区在线| 日韩中文视频| 91超碰rencao97精品| 欧美激情影院| 亚洲一卡二卡三卡| 亚洲精品综合| 在线免费观看视频黄| 国产精品一二三四区| 好吊日免费视频| 亚洲欧美日韩国产一区二区三区 | 奇米影视一区二区三区小说| 中文字幕第三区| 久久女同性恋中文字幕| 特一级黄色录像| 色综合久久综合| 免费在线观看黄网站| 欧美日韩亚洲另类| 午夜黄色小视频| 欧美成人亚洲成人| 素人一区二区三区| 国产女主播一区二区三区| 成人av资源电影网站| av在线播放天堂| 精品在线观看免费| 中文精品在线观看| 亚洲精品菠萝久久久久久久| 国产视频1区2区| 欧美精品一区二区三区久久久| 国产99久一区二区三区a片| 日韩精品亚洲精品| 亚洲区小说区图片区| 久久精品成人欧美大片| 欧美性xxx| 国外成人在线视频网站| 亚洲欧美日韩高清在线| 国产免费视频传媒| 久久影院视频免费| 国产精品不卡av| 欧美一区日韩一区| 午夜伦理在线| 国产精品激情av在线播放| 久久成人福利| 国产精品无码免费专区午夜| 另类人妖一区二区av| 日本高清www| 无码av免费一区二区三区试看| a天堂视频在线| 久久天天躁狠狠躁夜夜躁2014| 色8久久影院午夜场| 精品一区二区视频| 妖精视频成人观看www| 深夜福利网站在线观看| 中文字幕一区二区三区精华液| 中文字幕免费视频观看| 亚洲免费成人av电影| 密臀av在线播放| 国产精品美女黄网| 欧美三区在线| 中国xxxx性xxxx产国| 一级做a爱片久久| 亚洲精品一区二区三区不卡| 欧美成人免费在线视频| www欧美在线观看| 国产系列第一页| 国产一区视频导航| 精品国产精品国产精品| 69堂成人精品免费视频| 成人ww免费完整版在线观看| 欧美激情第1页| 99精品中文字幕在线不卡| www.18av.com| 成人午夜电影久久影院| 日本中文字幕免费| 亚洲精品视频网上网址在线观看 | 国产精品一区二区a| 在线看片成人| 黑人巨大精品欧美| 欧美亚洲精品一区| 日本福利专区在线观看| 91青草视频久久| 国模一区二区三区| 最近日本中文字幕| 色美美综合视频| 亚洲精品承认| 亚洲一区久久久| 国产欧美一级| 美女福利视频网| 日韩欧美中文一区二区| 91福利区在线观看| 欧美一区二区视频在线| 久久综合综合久久综合| 欧美成人国产精品高潮| 精品福利一区二区三区| 国产免费不卡| 26uuu成人| 93久久精品日日躁夜夜躁欧美| 这里只有精品免费视频| 日韩视频在线免费| 风间由美性色一区二区三区四区 | 中文字幕乱码视频| 九九久久国产精品| 亚洲毛片免费看| 波多野结衣国产精品| 午夜精品久久久久久久久| 国产高清视频在线播放| 亚洲伊人久久大香线蕉av| 亚洲精品影视| 国产激情无码一区二区三区| 亚洲精品久久久久久久久久久久| 偷拍视频一区二区三区| 好吊色视频988gao在线观看| 久久亚洲二区三区| 99热在线只有精品| 欧美中文字幕视频在线观看| 日韩在线欧美| 最近中文字幕无免费| 欧美丰满嫩嫩电影| 韩国久久久久久| 草草草视频在线观看| 国产色爱av资源综合区| 性生活视频软件| 国产日韩在线播放| 久久九九精品| 久久久久亚洲AV| 日韩最新av在线| 妖精视频一区二区三区| 男插女视频网站|