0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

京東小程序數(shù)據(jù)中心架構(gòu)設(shè)計(jì)與最佳實(shí)踐

京東云 ? 來(lái)源:jf_75140285 ? 作者:jf_75140285 ? 2024-08-08 11:20 ? 次閱讀

一、京東小程序是什么

京東小程序平臺(tái)能夠提供開放、安全的產(chǎn)品,成為品牌開發(fā)者鏈接京東內(nèi)部核心產(chǎn)品的橋梁,致力于服務(wù)每一個(gè)信任我們的外部開發(fā)者,為不同開發(fā)能力的品牌商家提供合適的服務(wù)和產(chǎn)品,讓技術(shù)開放成為品牌的新機(jī)會(huì)?!癘nce Build, Run Anywhere”,一個(gè)小程序可以在多個(gè)APP運(yùn)行,引擎層抹平差異,一套代碼,相同頁(yè)面,云端下發(fā),多端運(yùn)行。

wKgZoma0OWWAKFh2AA_3oVhNhnk964.png


可能大家還不太了解我們的京東小程序,京東小程序到底是什么呢?它和微信小程序有什么區(qū)別?首先呢,需要明確的是,京東小程序不是運(yùn)行在微信端的京東商城購(gòu)物小程序,而是運(yùn)行在京東APP的,基于京東小程序引擎的一套京東系的小程序。

它是和支付寶小程序或者微信小程序?qū)?biāo)的一類京東化的小程序。

舉個(gè)例子,大家可以體驗(yàn)一下,比如在主站搜索寶格麗,會(huì)通過(guò)搜索直達(dá)直接跳轉(zhuǎn)到寶格麗小程序上,我們可以在這里購(gòu)買奢侈品,或者在首頁(yè)的同城Tab頁(yè)下,可以瀏覽到非常多的到家門店類的小程序,總之,京東小程序所覆蓋的業(yè)務(wù)還是極其廣泛的!

當(dāng)然,京東小程序不僅僅可以運(yùn)行在京東APP上,只要宿主在運(yùn)行時(shí)依賴了我們的小程序SDK引擎,就可以實(shí)現(xiàn)在各類其他宿主APP上的運(yùn)行,譬如,在京東小家APP上,可以通過(guò)小程序去控制智能IOT設(shè)備,在京ME的APP上,可以遠(yuǎn)程操作打印機(jī),實(shí)現(xiàn)一鍵打印。小程序作為一種輕量級(jí)的即用即走的工具,用戶群體廣泛,早已覆蓋到了我們生活的方方面面。

京東小程序是鏈接商家和京東內(nèi)部核心產(chǎn)品的重要橋梁,也是助力商家實(shí)現(xiàn)流量增長(zhǎng)、業(yè)務(wù)發(fā)展的一個(gè)重要方式。

那么,小程序平臺(tái)是怎么保證商家業(yè)務(wù)的穩(wěn)定、健康發(fā)展,服務(wù)好這些外部商家的呢?這里面非常重要的是我們平臺(tái)對(duì)小程序基本流量的運(yùn)營(yíng)與監(jiān)控。如何不讓業(yè)務(wù)的小程序在線上裸奔?如何幫助業(yè)務(wù)對(duì)自身小程序流量的沖高回落有一種直觀的把握和監(jiān)測(cè)?如何基于海量數(shù)據(jù)指導(dǎo)業(yè)務(wù)去進(jìn)行一個(gè)精細(xì)化的運(yùn)營(yíng)?實(shí)際上,京東小程序數(shù)據(jù)中心就扮演了一個(gè)這樣的小程序數(shù)據(jù)問(wèn)題終結(jié)者的角色,充分利用各類數(shù)據(jù)手段,解決這些痛點(diǎn)問(wèn)題。

二、京東小程序數(shù)據(jù)中心建設(shè)里程碑

wKgaoma0OWeADDSMAAJ_N5PmVZg899.png


京東小程序數(shù)據(jù)中心的建設(shè),主要經(jīng)歷了四個(gè)階段,從最開始的由0到1搭建了數(shù)據(jù)基礎(chǔ)能力,到豐富拓展各類數(shù)據(jù)指標(biāo),接著下鉆分析到用戶,幫助商家實(shí)現(xiàn)基于用戶的精細(xì)化的運(yùn)營(yíng),到目前的小程序數(shù)智化建設(shè),在整個(gè)小程序的迭代建設(shè)的過(guò)程中,都從各個(gè)維度為小程序的業(yè)務(wù)發(fā)展實(shí)現(xiàn)了保駕護(hù)航。

三、京東小程序數(shù)據(jù)中心業(yè)務(wù)全景圖

wKgZoma0OWiAaQ5yAAb-T9Yci0I337.png


?從功能角度,京東小程序運(yùn)營(yíng)數(shù)據(jù)分析,京東小程序監(jiān)控?cái)?shù)據(jù)分析;

?從展現(xiàn)角度,開發(fā)者控制臺(tái),管理后臺(tái),移動(dòng)端小程序助手,宙斯開放能力;

?從功能領(lǐng)域角度,用戶行為分析,交易鏈路數(shù)據(jù)分析,用戶畫像,流失率監(jiān)控,流量監(jiān)控等;

?從上報(bào)通道角度,子午線,自定義上報(bào),服務(wù)端埋點(diǎn);

?從數(shù)據(jù)存儲(chǔ)角度,JED,JimDB,ES,HBase等;

目前京東小程序數(shù)據(jù)中心功能范圍廣泛,我們?cè)诟鶕?jù)業(yè)務(wù)發(fā)展的需求,不斷完善整個(gè)京東小程序數(shù)據(jù)中心的功能架構(gòu)。

從展現(xiàn)角度看,包括開發(fā)者控制臺(tái),管理后臺(tái),移動(dòng)端小程序助手,實(shí)時(shí)數(shù)據(jù)大屏, 開放openApi能力;

其次是從功能領(lǐng)域角度看,主要包括運(yùn)營(yíng)數(shù)據(jù)分析,監(jiān)控?cái)?shù)據(jù)分析。

運(yùn)營(yíng)數(shù)據(jù)分析,包括用戶行為分析,比如小程序基礎(chǔ)的pv和uv;

來(lái)源分析,可以去分析小程序在各個(gè)廣告投放渠道下的營(yíng)銷轉(zhuǎn)化效果;

用戶畫像分析,可以分析到瀏覽過(guò)小程序的人群中的哪些是高凈值用戶群體,以及性別以及年齡等基礎(chǔ)的用戶畫像數(shù)據(jù)。

監(jiān)控?cái)?shù)據(jù)分析,主要是針對(duì)線上運(yùn)行的小程序的奔潰異常,網(wǎng)絡(luò)請(qǐng)求異常,啟動(dòng)性能數(shù)據(jù)的分析,用戶流失率的實(shí)時(shí)監(jiān)測(cè)等,可以在小程序出現(xiàn)異常時(shí)第一時(shí)間通知到開發(fā)者。

wKgaoma0OWqAaJ59AAVuYXrFA-A906.png


四、京東小程序數(shù)據(jù)中心技術(shù)架構(gòu)圖

wKgZoma0OW2ACHRaAA69G_S6Uoc584.png


對(duì)于整體的架構(gòu)設(shè)計(jì),其實(shí)在我看來(lái),數(shù)據(jù)的分析,主要是解決三個(gè)問(wèn)題,第一個(gè)要解決的是數(shù)據(jù)如何上報(bào)的問(wèn)題,第二個(gè)是解決數(shù)據(jù)如何存儲(chǔ)的問(wèn)題?第三個(gè)才是解決數(shù)據(jù)如何分析的問(wèn)題?

1、京東小程序數(shù)據(jù)中心的數(shù)據(jù)上報(bào)主要包括三個(gè)途徑,主要包括客戶端埋點(diǎn),服務(wù)端埋點(diǎn)或者其他外部的數(shù)據(jù)源,客戶端埋點(diǎn)主要利用的是子午線,服務(wù)端埋點(diǎn)主要是我們服務(wù)之間采集數(shù)據(jù),服務(wù)之間消費(fèi)和同步。

2、數(shù)據(jù)存到哪里去,這個(gè)需要基于我們業(yè)務(wù)上對(duì)這些數(shù)據(jù)的實(shí)時(shí)性要求,判斷是實(shí)時(shí)還是離線,進(jìn)而采用不同的數(shù)據(jù)源進(jìn)行存儲(chǔ),數(shù)據(jù)指標(biāo)是要秒級(jí)的?分鐘級(jí)的?還是T+1l類型的,實(shí)時(shí)性要求不同,那么存儲(chǔ)的數(shù)據(jù)源自然也就不同。

3、數(shù)據(jù)如何分析,實(shí)際上就是我們的業(yè)務(wù)邏輯,在設(shè)計(jì)時(shí)也需要充分考慮數(shù)據(jù)模型的復(fù)用性和可拓展性。

小程序數(shù)據(jù)中心對(duì)于來(lái)自子午線客戶端埋點(diǎn)數(shù)據(jù),以離線的方式構(gòu)建小程序自己的業(yè)務(wù)數(shù)倉(cāng),一層一層地進(jìn)行數(shù)據(jù)的降噪,清洗和計(jì)算,將聚合好的維度數(shù)據(jù)再推送到關(guān)系型數(shù)據(jù)庫(kù),方便業(yè)務(wù)快速接入。對(duì)于來(lái)自自建通道的實(shí)時(shí)數(shù)據(jù)以及外部系統(tǒng)的埋點(diǎn)數(shù)據(jù),通過(guò)統(tǒng)一上報(bào)服務(wù)將數(shù)據(jù)上報(bào)到消息隊(duì)列,進(jìn)行流量數(shù)據(jù)的異步處理和消峰,采用專門的消費(fèi)者服務(wù)對(duì)上報(bào)數(shù)據(jù)進(jìn)行消費(fèi)落庫(kù),存儲(chǔ)到ES和HBase數(shù)據(jù)庫(kù),便于平臺(tái)進(jìn)行多維度的明細(xì)或者匯總數(shù)據(jù)查詢;同時(shí),也會(huì)基于Flink對(duì)消息隊(duì)列中的數(shù)據(jù)進(jìn)行流式實(shí)時(shí)計(jì)算,實(shí)現(xiàn)異常波動(dòng)流量的告警和分析。

五、它山之石可以攻玉,借助集團(tuán)數(shù)據(jù)工具打造小程序業(yè)務(wù)數(shù)倉(cāng)

痛點(diǎn)問(wèn)題:

1.京東小程序的數(shù)據(jù)來(lái)源多樣化,數(shù)據(jù)量級(jí)龐大,如何立足業(yè)務(wù)數(shù)據(jù),發(fā)揮數(shù)據(jù)價(jià)值,幫助商家實(shí)現(xiàn)精細(xì)化的運(yùn)營(yíng)?

2.如何復(fù)用主站已有的數(shù)據(jù)模型和能力,讓更多的小程序商家參與到京東主站的流量場(chǎng),讓數(shù)據(jù)驅(qū)動(dòng)商家精準(zhǔn)營(yíng)銷?

3.業(yè)務(wù)指標(biāo)紛繁復(fù)雜,如何沉淀和抽離通用數(shù)據(jù)模型,減少重復(fù)工作?

如何解決:

基于集團(tuán)BDP平臺(tái),自上而下構(gòu)建京東小程序的業(yè)務(wù)數(shù)倉(cāng),借助BDP平臺(tái)豐富的數(shù)據(jù)產(chǎn)品工具,多維度地構(gòu)建小程序的數(shù)據(jù)能力。離線計(jì)算+實(shí)時(shí)計(jì)算相結(jié)合,小程序業(yè)務(wù)數(shù)據(jù)+集團(tuán)模型數(shù)據(jù)相結(jié)合。

1.數(shù)據(jù)分類化,將小程序流量進(jìn)行主題劃分,拆分為點(diǎn)擊、瀏覽、曝光、訂單等大維度的主題模型,方便數(shù)據(jù)定位,增加業(yè)務(wù)理解;

2.數(shù)據(jù)分層化,同一個(gè)流量主題下,進(jìn)一步按照ODS->DWD->DWS->ADS的層級(jí)結(jié)構(gòu)進(jìn)行分層,方便追蹤數(shù)據(jù)血緣,減少重復(fù)數(shù)據(jù)模型的開發(fā);

3.數(shù)據(jù)多元化,下游系統(tǒng)可從小程序數(shù)據(jù)倉(cāng)庫(kù)拉取符合業(yè)務(wù)需要的領(lǐng)域數(shù)據(jù),比如數(shù)紡,搜推廣等系統(tǒng),利用下游系統(tǒng)成熟穩(wěn)定的數(shù)據(jù)能力,為商家營(yíng)銷充分賦能;


wKgaoma0OXOAK5Z8AARa5qkVA3Q295.png


wKgZoma0OXSAI_TLAATnQ-EfLoc130.png


wKgZoma0OXaAE5LFAAaJmbQ2v54466.png


在京東小程序的業(yè)務(wù)數(shù)倉(cāng)搭建過(guò)程中,主要還是應(yīng)用了集團(tuán)BDP大數(shù)據(jù)平臺(tái)提供的豐富的產(chǎn)品工具和通用能力。

幾種典型的使用案例是:

1、離線hive表數(shù)據(jù)同步到j(luò)ed等關(guān)系型業(yè)務(wù)庫(kù),使用buffalo任務(wù)中的出庫(kù)算子;

2、業(yè)務(wù)產(chǎn)生的實(shí)時(shí)MQ數(shù)據(jù)同步到hive數(shù)倉(cāng),使用DTS,實(shí)時(shí)數(shù)據(jù)傳輸任務(wù),可以把業(yè)務(wù)數(shù)據(jù)同步到數(shù)倉(cāng);

3、我們需要在數(shù)倉(cāng)中構(gòu)建業(yè)務(wù)維表,比如構(gòu)建小程序基本信息的維表,業(yè)務(wù)數(shù)據(jù)需要同步到hive表,可以采用數(shù)據(jù)直通車DataBus,在表記錄的生成上,可以根據(jù)業(yè)務(wù)的需要,采用全量表,增量表,快照表,拉鏈表或者流水表的不同的記錄生成方式。

京東小程序客戶端埋點(diǎn)統(tǒng)一上報(bào)的子午線,需要從最原始的gdm層底表提取小程序自己的業(yè)務(wù)數(shù)據(jù),原始底表數(shù)據(jù)量級(jí)非常大,不可能每次直接對(duì)原始底表查詢,這樣的話耗費(fèi)計(jì)算資源,效率較低。所以,我們盡量提高底層數(shù)據(jù)模型的復(fù)用度,對(duì)數(shù)據(jù)進(jìn)行分類化和分層化處理。

所謂分類話,就是將小程序流量進(jìn)行主題劃分,拆分為點(diǎn)擊、瀏覽、曝光、訂單等大維度的主題模型,方便數(shù)據(jù)定位,增加業(yè)務(wù)理解;

所謂分層化,就是在同一個(gè)流量主題下,進(jìn)一步按照ODS->DWD->DWS->ADS的層級(jí)結(jié)構(gòu)進(jìn)行數(shù)據(jù)分層,方便追蹤數(shù)據(jù)血緣,減少重復(fù)數(shù)據(jù)模型的開發(fā)。

所謂多元化,就是復(fù)用度,加工好的這些數(shù)據(jù),可以給下游的團(tuán)隊(duì)接入使用,比如商智,黃金眼,數(shù)紡這些團(tuán)隊(duì)。以小程序廣告投放為例,在小程序數(shù)倉(cāng)中我們構(gòu)建了各個(gè)類型的用戶群體,在數(shù)紡注冊(cè)了用戶群體標(biāo)簽,比如關(guān)注用戶,粉絲用戶或者提單用戶等,下游的廣告精準(zhǔn)通系統(tǒng)會(huì)基于我們的這些標(biāo)簽進(jìn)行人群的圈選,進(jìn)而實(shí)現(xiàn)小程序廣告的投放。

總之,根據(jù)業(yè)務(wù)特點(diǎn),充分利用好集團(tuán)BDP的數(shù)據(jù)工具,幫助我們實(shí)現(xiàn)數(shù)倉(cāng)的搭建。

六、基于FLINK實(shí)時(shí)計(jì)算,落地小程序異常奔潰監(jiān)控利器

痛點(diǎn)問(wèn)題:京東小程序在線上運(yùn)行時(shí),需要實(shí)時(shí)監(jiān)測(cè)到小程序的業(yè)務(wù)代碼崩潰異常、性能數(shù)據(jù)波動(dòng),網(wǎng)絡(luò)請(qǐng)求耗時(shí)等,在有異常崩潰的情況下,保證可以第一時(shí)間通知到商家開發(fā)者,幫助業(yè)務(wù)及時(shí)止損。

如何解決:

1.報(bào)警規(guī)則可配置,基于Zookeeper分布式配置中心存儲(chǔ)小程序自定義的告警規(guī)則,實(shí)時(shí)監(jiān)聽規(guī)則節(jié)點(diǎn)變化,當(dāng)節(jié)點(diǎn)數(shù)據(jù)變化時(shí),實(shí)時(shí)聚合到業(yè)務(wù)流;

2.自定義滑動(dòng)窗口,每個(gè)小程序的告警窗口大小不一樣,拓展實(shí)現(xiàn)WindowAssigner,基于用戶動(dòng)態(tài)規(guī)則確定告警窗口開始時(shí)間和截止時(shí)間;

3.廣播變量,broadcast機(jī)制,將告警配置信息廣播到各個(gè)Task任務(wù)內(nèi)存,廣播變量就是一個(gè)公共的共享變量,將一個(gè)數(shù)據(jù)集廣播后,不同的Task都可以在節(jié)點(diǎn)上獲取到,每個(gè)節(jié)點(diǎn)只存一份,否則,每一個(gè)Task都會(huì)拷貝一份數(shù)據(jù)集,會(huì)造成內(nèi)存資源浪費(fèi)。

wKgaoma0OXiAcOyKAAaJUf5tRGs369.png


wKgZoma0OX6AREVVAAQmdQiSDB8214.png

wKgaoma0OYCAfwfEAANw482BVwc731.png

wKgaoma0OYSARaz3AALP2aNXIk4861.png


對(duì)于小程序的實(shí)時(shí)監(jiān)控能力,我們采用flink作為實(shí)時(shí)計(jì)算的框架,小程序在線上運(yùn)行時(shí),需要實(shí)時(shí)監(jiān)測(cè)到小程序的業(yè)務(wù)代碼崩潰異常、這種異常很可能會(huì)導(dǎo)致小程序白屏或者閃退,需要在探測(cè)到有異常崩潰的情況下,保證第一時(shí)間通知到商家開發(fā)者,幫助業(yè)務(wù)及時(shí)止損。

這里的難點(diǎn)在于告警的規(guī)則是支持用戶自定義的,比如配置觀測(cè)多長(zhǎng)時(shí)間窗口內(nèi)的異常數(shù)據(jù),當(dāng)達(dá)到多少的異常閾值,應(yīng)該去觸發(fā)告警,應(yīng)該判定為異常,這里是需要把告警規(guī)則配置的的主動(dòng)權(quán)交給用戶的,在這樣的背景下,

1、 我們采用的是將告警規(guī)則放到分布式的統(tǒng)一配置中心,實(shí)時(shí)監(jiān)聽節(jié)點(diǎn)規(guī)則的變化,將業(yè)務(wù)流和規(guī)則流進(jìn)行connet雙流合并;

2、 然后根據(jù)告警規(guī)則,實(shí)現(xiàn)windowAssigner生成自定義的動(dòng)態(tài)計(jì)算窗口,從而實(shí)現(xiàn)窗口動(dòng)態(tài)化;

3、 最后,采用廣播變量的broadcast機(jī)制,當(dāng)告警規(guī)則變更時(shí),可以高效地將告警配置廣播刷新到各個(gè)Task任務(wù)內(nèi)存,提高資源利用率,保證計(jì)算時(shí)效性。

七、探索OLAP領(lǐng)域的黑馬,基于ClickHouse搭建自定義數(shù)據(jù)分析引擎

痛點(diǎn)問(wèn)題:小程序內(nèi)部的數(shù)據(jù)波動(dòng)如何自由埋點(diǎn)分析?京東內(nèi)部業(yè)務(wù)直接基于子午線埋點(diǎn)上報(bào),業(yè)務(wù)團(tuán)隊(duì)內(nèi)部自行分析;外部的開發(fā)者需要依賴神策,GA等外部的分析系統(tǒng),無(wú)法將數(shù)據(jù)回流京東,且復(fù)用京東現(xiàn)有流量工具進(jìn)行精細(xì)化運(yùn)營(yíng)。

如何解決:

1.選擇合適的表存儲(chǔ)引擎:采用多副本的ReplicatedMergeTree,保證查詢性能和數(shù)據(jù)存儲(chǔ)的高可用;

2.按天分區(qū)存儲(chǔ)數(shù)據(jù):PARTITION BY:分區(qū)鍵,PARTITION BY toYYYYMMDD(EventDate),不同分區(qū)下的數(shù)據(jù)會(huì)分開存儲(chǔ),合理建立分區(qū)可以加快查詢的速度;

3.統(tǒng)一上報(bào)協(xié)議:生成全局唯一事件ID,事件ID綁定業(yè)務(wù)數(shù)據(jù);

4.動(dòng)態(tài)數(shù)據(jù)解析:基于visitParamExtract函數(shù)解析json動(dòng)態(tài)業(yè)務(wù)數(shù)據(jù);

5.查詢腳本下推:Sql引擎生成查詢Sql,下沉至ClickHouse完成查詢;

wKgZoma0OYaARitJAAhuQ4GgYEI209.png


wKgaoma0OYeAU8NfAACr83r4tQY437.gif

wKgZoma0OYmAVE3oAAMUjrR9SSg867.png


小程序內(nèi)部的數(shù)據(jù)波動(dòng)如何自由埋點(diǎn)分析?京東內(nèi)部業(yè)務(wù)是可以直接基于子午線埋點(diǎn)上報(bào),業(yè)務(wù)團(tuán)隊(duì)內(nèi)部自行分析,但是子午線這種產(chǎn)品本身不對(duì)外開放,外部的開發(fā)者如果想分析小程序自身的內(nèi)部數(shù)據(jù),需要依賴神策,GA等外部的數(shù)據(jù)分析系統(tǒng),這樣的話,小程序的數(shù)據(jù)無(wú)法回流京東,那么也就無(wú)法復(fù)用京東現(xiàn)有流量工具進(jìn)行小程序的精細(xì)化運(yùn)營(yíng)。

在這樣的背景下,我們落地了小程序的自定義分析引擎,底層采用了clickhouse這種適合做即席查詢的olap引擎,用來(lái)存儲(chǔ)小程序上報(bào)數(shù)據(jù).

為什么采用clickhouse? clickhouse是基于列式來(lái)存儲(chǔ)數(shù)據(jù),查詢性能非常高,在億級(jí)數(shù)據(jù)的體量下,可以做到秒級(jí)的響應(yīng),適合做在線的OLAP。

同時(shí),ck支持水平的拓展,適合大數(shù)據(jù)量的存儲(chǔ),支持按天進(jìn)行數(shù)據(jù)的分區(qū)存儲(chǔ),在建表時(shí),根據(jù)記錄的創(chuàng)建時(shí)間劃分partition,在查詢數(shù)據(jù)時(shí),可以只查某些partition分區(qū)的數(shù)據(jù),也可以加快查詢的效率。

包括本地表和分布式表,本地表運(yùn)行在各個(gè)具體的數(shù)據(jù)節(jié)點(diǎn),分布式表負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā)和路由。寫入數(shù)據(jù)只寫本地表,50-200M/S ,對(duì)于大量的數(shù)據(jù)更新非常實(shí)用。

在小程序自定義分析引擎中,規(guī)范了數(shù)據(jù)上報(bào)協(xié)議,首先由用戶配置需要上報(bào)的事件ID和業(yè)務(wù)指標(biāo),按照協(xié)議約定調(diào)用前端jsAPI上報(bào)業(yè)務(wù)數(shù)據(jù)。在自助查詢區(qū)域,當(dāng)用戶觸發(fā)查詢時(shí),先基于規(guī)則引擎利用自定義事件ID生成查詢規(guī)則SQL腳本,將規(guī)則下推至服務(wù)端執(zhí)行引擎,執(zhí)行引擎從CK獲取業(yè)務(wù)數(shù)據(jù),完成業(yè)務(wù)數(shù)據(jù)的一次自定義查詢。

八、巧用Elasticsearch特性,讓用戶行為分析不再困難

痛點(diǎn)問(wèn)題:需要實(shí)時(shí)分析小程序的pv、uv、新增用戶數(shù)、累計(jì)用戶數(shù)以及關(guān)注用戶數(shù)等用戶行為類指標(biāo),幫助小程序商家掌握自身小程序的用戶波動(dòng)情況。

如何解決:

1.實(shí)時(shí)性,從小程序的用戶行為埋點(diǎn)數(shù)據(jù)上報(bào)到可訪問(wèn),支持秒級(jí)響應(yīng);

2.全文檢索,基于倒排索引,支持靈活的搜索分析,支持按照小程序不同業(yè)務(wù)維度進(jìn)行聚合分析,滿足不同的業(yè)務(wù)需要;

3.易于運(yùn)維,小程序的日均DAU在300W+,可以基于天、月等維度創(chuàng)建索引,方便進(jìn)行冷熱數(shù)據(jù)分析;

wKgaoma0OYuATNqeAAq_o6pPgrQ182.png


創(chuàng)建ES模板:周期性按天創(chuàng)建ES索引:

wKgZoma0OY2AIbwEAAOv3fbnHvM969.png

wKgaoma0OY6AXfZfAAKZFIc0j1Y493.png



利用索引主鍵碰撞實(shí)現(xiàn)新增&累計(jì)用戶統(tǒng)計(jì):

語(yǔ)法:

index語(yǔ)法: PUT miniapps/_doc/1

create語(yǔ)法: PUT miniapps/_create/1

語(yǔ)義:

index自動(dòng)生成id,多次創(chuàng)建,會(huì)生成多個(gè)document;

index多次索引同一個(gè)id,會(huì)刪除重建,版本號(hào)一直++,上個(gè)版本刪除,保留最新版本;

create自動(dòng)生成id,多次創(chuàng)建,會(huì)生成多個(gè)document;

create的重復(fù)創(chuàng)建指定文檔id的內(nèi)容,第二次執(zhí)行創(chuàng)建會(huì)報(bào)錯(cuò)(主鍵碰撞),而不是版本號(hào)++;

我們是如何做小程序的實(shí)時(shí)用戶行為分析的呢?行為分析需要實(shí)時(shí)計(jì)算小程序的pv、uv、新增用戶數(shù)、累計(jì)用戶數(shù)以及關(guān)注用戶數(shù)等用戶行為類指標(biāo),幫助小程序商家掌握自身小程序的用戶波動(dòng)情況。我們將這些數(shù)據(jù)統(tǒng)一放在ES中進(jìn)行查詢,主要考慮到ES支持靈活的搜索分析,支持按照不同維度進(jìn)行聚合分析,保證了數(shù)據(jù)查詢的靈活性和實(shí)時(shí)性的需要。

在創(chuàng)建索引時(shí),不是將數(shù)據(jù)都堆放到一個(gè)索引,而是將按天去創(chuàng)建,基于索引模板,周期性地創(chuàng)建ES索引,保證索引查詢效率。

在構(gòu)建小程序的新增用戶的指標(biāo)時(shí),利用了ES索引碰撞的原理,設(shè)置操作類型operateType為create,create的語(yǔ)義是重復(fù)創(chuàng)建指定文檔id的內(nèi)容,第二次執(zhí)行創(chuàng)建會(huì)報(bào)錯(cuò)(出現(xiàn)主鍵碰撞),這樣的話,保證新增用戶的記錄在ES索引中只出現(xiàn)一次。

九、不足和展望

1、沉淀小程序行業(yè)數(shù)據(jù)解決方案

沉淀比如車企、保險(xiǎn)、3C家電等行業(yè)類數(shù)據(jù),形成統(tǒng)一的京東小程序行業(yè)數(shù)據(jù)解決方案

2、技術(shù)沉淀復(fù)用

后續(xù)可以把成型的京東小程序數(shù)據(jù)分析技術(shù)方案推廣到其他技術(shù)棧,比如RN等平臺(tái)系統(tǒng)

3、智能化建設(shè)

考慮如何基于機(jī)器學(xué)習(xí)人工智能、ChatGPT等技術(shù)手段,加強(qiáng)京東小程序數(shù)據(jù)的智能化建設(shè),如何結(jié)合機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、人工智能AI等技術(shù)手段,繼續(xù)實(shí)現(xiàn)京東小程序數(shù)據(jù)中心的智能化建設(shè)。

?預(yù)測(cè)性分析能力:

小程序的智能告警,基于時(shí)間序列預(yù)測(cè)算法,比如Facebook Prophet算法等,做一些告警預(yù)判,提升告警的智能性和準(zhǔn)確率;

?數(shù)據(jù)挖掘算法:

在小程序的預(yù)下載場(chǎng)景,可以基于協(xié)同過(guò)濾算法,做小程序偏好人群的判斷,實(shí)現(xiàn)預(yù)下載的千人千面,從而減少網(wǎng)絡(luò)帶寬,節(jié)省資源成本等;

?語(yǔ)義引擎:

如何將ChatGpt這種AI智能模型,可以分析和理解大量的數(shù)據(jù),自動(dòng)提取和歸類數(shù)據(jù),使得小程序數(shù)據(jù)運(yùn)維更加高效、準(zhǔn)確;

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    怎樣保障數(shù)據(jù)中心不間斷電源不斷電 提供可靠安全的供配電#數(shù)據(jù)中心

    數(shù)據(jù)中心配電系統(tǒng)
    安科瑞王金晶
    發(fā)布于 :2024年08月29日 14:51:36

    數(shù)據(jù)中心布線標(biāo)準(zhǔn)有什么

    布線標(biāo)準(zhǔn)為設(shè)計(jì)、構(gòu)建和維護(hù)數(shù)據(jù)中心基礎(chǔ)設(shè)施提供了指導(dǎo)方針。它們涵蓋了電纜類型、連接器、安裝實(shí)踐等,以確保一致性、可靠性和可擴(kuò)展性。這些標(biāo)準(zhǔn)由TIA、ISO和BICSI等組織制定,規(guī)范布線并影響整個(gè)數(shù)據(jù)中心的設(shè)計(jì)、建設(shè)和運(yùn)營(yíng),以
    的頭像 發(fā)表于 06-14 10:51 ?315次閱讀

    華為數(shù)據(jù)中心能源斬獲“年度最佳數(shù)據(jù)中心設(shè)施供應(yīng)商”大獎(jiǎng)

    近日,數(shù)據(jù)中心行業(yè)國(guó)際盛會(huì)2024 DCS AWARDS頒獎(jiǎng)晚宴在英國(guó)倫敦成功舉辦。
    的頭像 發(fā)表于 05-30 18:18 ?620次閱讀
    華為<b class='flag-5'>數(shù)據(jù)中心</b>能源斬獲“年度<b class='flag-5'>最佳</b><b class='flag-5'>數(shù)據(jù)中心</b>設(shè)施供應(yīng)商”大獎(jiǎng)

    管理數(shù)據(jù)中心電纜的技巧

    一個(gè)愚蠢的字符串戰(zhàn)場(chǎng)。更糟糕的是,可能不知道哪些電纜用于何處,這使得難以確保最佳設(shè)備性能并排除問(wèn)題。 為了確保它看起來(lái)不像老鼠在電纜上筑巢,請(qǐng)考慮以下數(shù)據(jù)中心布線最佳實(shí)踐: 減少電纜
    的頭像 發(fā)表于 04-12 10:21 ?252次閱讀

    #mpo極性 #數(shù)據(jù)中心mpo

    數(shù)據(jù)中心MPO
    jf_51241005
    發(fā)布于 :2024年04月07日 10:05:13

    #mpo光纖跳線 #數(shù)據(jù)中心光纖跳線

    光纖數(shù)據(jù)中心
    jf_51241005
    發(fā)布于 :2024年03月22日 10:18:31

    #光纖彎曲 #光纖衰減 #數(shù)據(jù)中心光纖

    光纖數(shù)據(jù)中心
    jf_51241005
    發(fā)布于 :2024年03月08日 09:59:50

    #MPO預(yù)端接 #數(shù)據(jù)中心機(jī)房 #機(jī)房布線

    數(shù)據(jù)中心MPO
    jf_51241005
    發(fā)布于 :2024年03月01日 11:12:47

    #永久鏈路 #信道測(cè)試 #數(shù)據(jù)中心

    數(shù)據(jù)中心
    jf_51241005
    發(fā)布于 :2024年02月23日 10:17:58

    #緊套光纜 #松套光纜 #數(shù)據(jù)中心

    數(shù)據(jù)中心光纜
    jf_51241005
    發(fā)布于 :2024年01月26日 09:44:11

    微模塊數(shù)據(jù)中心的優(yōu)勢(shì)

    微模塊數(shù)據(jù)中心是以模塊化、標(biāo)準(zhǔn)化的架構(gòu)和高效高可靠的UPS、精密空調(diào)等靈活組合于一體打造的模塊化數(shù)據(jù)中心基礎(chǔ)設(shè)施,可實(shí)現(xiàn)靈活快速部署、高效節(jié)省、智能管理等優(yōu)點(diǎn)成為企業(yè)未來(lái)數(shù)據(jù)中心建設(shè)的
    的頭像 發(fā)表于 01-19 13:53 ?490次閱讀

    #光纜水峰 #綜合布線光纜 #數(shù)據(jù)中心

    數(shù)據(jù)中心光纜
    jf_51241005
    發(fā)布于 :2024年01月15日 09:43:26

    數(shù)據(jù)中心 3D 機(jī)房數(shù)字孿生 #數(shù)據(jù)中心

    3D數(shù)據(jù)中心
    阿梨是蘋果
    發(fā)布于 :2023年12月28日 10:02:33

    #預(yù)端接光纜 #24芯光纜 #數(shù)據(jù)中心

    數(shù)據(jù)中心光纜
    jf_51241005
    發(fā)布于 :2023年12月08日 11:01:21

    大模型時(shí)代,數(shù)據(jù)中心將轉(zhuǎn)向何方?

    數(shù)據(jù)中心大模型
    腦極體
    發(fā)布于 :2023年11月22日 09:01:41