一種數(shù)據(jù)流量實(shí)時(shí)可視化的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別地涉及一種數(shù)據(jù)流量實(shí)時(shí)可視化的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)據(jù)流量分析系統(tǒng)的應(yīng)用越來越廣泛。目前,互聯(lián)網(wǎng)企業(yè)在做數(shù)據(jù)流量分析系統(tǒng)的時(shí)候,由于系統(tǒng)數(shù)據(jù)量大以及傳統(tǒng)的報(bào)表定制展示方式的限制,一般采用后臺(tái)應(yīng)用定制報(bào)表展示技術(shù)。因此,在提取和查詢數(shù)據(jù)流量時(shí),只能通過后臺(tái)應(yīng)用系統(tǒng)按照數(shù)據(jù)分析員既定的分析條件來查詢和導(dǎo)出相關(guān)數(shù)據(jù)以便用于分析。
[0003]現(xiàn)有的數(shù)據(jù)流量分析系統(tǒng),一般采用如圖1所示的系統(tǒng)框架。其主要實(shí)現(xiàn)過程為:用戶行為采集單元將采集到的頁面訪問行為、按鈕點(diǎn)擊行為、下單行為等數(shù)據(jù)導(dǎo)入歷史數(shù)據(jù)單元、由歷史數(shù)據(jù)單元使用調(diào)度系統(tǒng)配置的調(diào)度任務(wù)計(jì)算結(jié)果后,導(dǎo)入后臺(tái)報(bào)表生成系統(tǒng),生成報(bào)表后提供給后臺(tái)應(yīng)用進(jìn)行展示,可根據(jù)需要例如以excel表格的形式等進(jìn)行展不O
[0004]各類型的企業(yè)對(duì)數(shù)據(jù)流量分析系統(tǒng)的應(yīng)用要求均有不同。電子商務(wù)企業(yè)由于對(duì)數(shù)據(jù)流量的敏感性,其數(shù)據(jù)流量分析系統(tǒng)應(yīng)該具有實(shí)時(shí)、準(zhǔn)確的特點(diǎn)。然而,現(xiàn)有的數(shù)據(jù)流量分析系統(tǒng)由于展示數(shù)據(jù)是通過后臺(tái)應(yīng)用進(jìn)行的,脫離了頁面的具體位置,因此在查詢與對(duì)比數(shù)據(jù)時(shí)及其不方便;由于數(shù)據(jù)量大且高并發(fā),會(huì)引起數(shù)據(jù)集群崩潰;并且由于數(shù)據(jù)存儲(chǔ)于多個(gè)系統(tǒng),提取數(shù)據(jù)流程麻煩;而且當(dāng)天的數(shù)據(jù)會(huì)在匯總并導(dǎo)入歷史數(shù)據(jù)單元后才能提取到,嚴(yán)重影響數(shù)據(jù)的實(shí)時(shí)性,故會(huì)影響運(yùn)營(yíng)決策。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供一種數(shù)據(jù)流量實(shí)時(shí)可視化的方法及系統(tǒng),能夠解決現(xiàn)有技術(shù)方案的時(shí)效性差和數(shù)據(jù)與頁面實(shí)際位置脫離的問題,從而滿足了對(duì)系統(tǒng)數(shù)據(jù)流量的實(shí)時(shí)性和便捷查看的需求,并能根據(jù)數(shù)據(jù)流量增長(zhǎng)的需求進(jìn)行動(dòng)態(tài)擴(kuò)容。
[0006]為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)流量實(shí)時(shí)可視化的方法。
[0007]—種數(shù)據(jù)流量實(shí)時(shí)可視化的方法,包括:數(shù)據(jù)采集單元實(shí)時(shí)采集數(shù)據(jù)并將采集到的訂單信息和請(qǐng)求頁面信息以消息的形式發(fā)送至實(shí)時(shí)數(shù)據(jù)單元,其中,所述訂單信息包括商品編號(hào)、引入訂單量及引入訂單金額,所述請(qǐng)求頁面信息包括請(qǐng)求頁面地址、頁面訪問次數(shù)、訪客總量及按鈕點(diǎn)擊次數(shù);實(shí)時(shí)數(shù)據(jù)單元按照預(yù)先設(shè)定的規(guī)則對(duì)接收到的所述訂單信息和請(qǐng)求頁面信息進(jìn)行并行處理,并將流量數(shù)據(jù)發(fā)送至數(shù)據(jù)存儲(chǔ)單元;數(shù)據(jù)存儲(chǔ)單元對(duì)接收到的所述流量數(shù)據(jù)進(jìn)行保存;后臺(tái)應(yīng)用單元讀取所述數(shù)據(jù)存儲(chǔ)單元中存儲(chǔ)的流量數(shù)據(jù)并通過瀏覽器插件單元顯示在當(dāng)前頁面上。
[0008]可選地,所述消息是通過kafka消息隊(duì)列進(jìn)行發(fā)送的。
[0009]可選地,還包括:歷史數(shù)據(jù)單元通過使用調(diào)度系統(tǒng)配置的調(diào)度任務(wù)計(jì)算歷史流量數(shù)據(jù)并定時(shí)發(fā)送至數(shù)據(jù)存儲(chǔ)單元。
[0010]可選地,所述數(shù)據(jù)存儲(chǔ)單元對(duì)接收到的所述流量數(shù)據(jù)進(jìn)行保存包括:將所述實(shí)時(shí)數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)保存在分布式緩存服務(wù)器中;將所述歷史數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)保存在分布式系統(tǒng)集群中;以及對(duì)所述實(shí)時(shí)數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)和所述歷史數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)進(jìn)行匯總,并保存在關(guān)系型數(shù)據(jù)庫(kù)中;并且后臺(tái)應(yīng)用單元讀取所述數(shù)據(jù)存儲(chǔ)單元中存儲(chǔ)的流量數(shù)據(jù)包括:后臺(tái)應(yīng)用單元讀取所述數(shù)據(jù)存儲(chǔ)單元的關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)的流量數(shù)據(jù)。
[0011]可選地,所述分布式緩存服務(wù)器為Redis,且所述分布式系統(tǒng)集群為Hadoop集群。
[0012]可選地,后臺(tái)應(yīng)用單元讀取所述數(shù)據(jù)存儲(chǔ)單元中存儲(chǔ)的流量數(shù)據(jù)之前,還包括:根據(jù)預(yù)先設(shè)定的規(guī)則判斷是否進(jìn)行流量數(shù)據(jù)的顯示。
[0013]根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)流量實(shí)時(shí)可視化的系統(tǒng)。
[0014]—種數(shù)據(jù)流量實(shí)時(shí)可視化的系統(tǒng),包括:數(shù)據(jù)采集單元,用于實(shí)時(shí)采集數(shù)據(jù)并將采集到的訂單信息和請(qǐng)求頁面信息以消息的形式發(fā)送至實(shí)時(shí)數(shù)據(jù)單元,其中,所述訂單信息包括商品編號(hào)、引入訂單量及引入訂單金額,所述請(qǐng)求頁面信息包括請(qǐng)求頁面地址、頁面訪問次數(shù)、訪客總量及按鈕點(diǎn)擊次數(shù);實(shí)時(shí)數(shù)據(jù)單元,用于按照預(yù)先設(shè)定的規(guī)則對(duì)接收到的所述訂單信息和請(qǐng)求頁面信息進(jìn)行并行處理,并將流量數(shù)據(jù)發(fā)送至數(shù)據(jù)存儲(chǔ)單元;數(shù)據(jù)存儲(chǔ)單元,用于對(duì)接收到的所述流量數(shù)據(jù)進(jìn)行保存;后臺(tái)應(yīng)用單元,用于讀取所述數(shù)據(jù)存儲(chǔ)單元中存儲(chǔ)的流量數(shù)據(jù)并通過瀏覽器插件單元顯示在當(dāng)前頁面上。
[0015]可選地,所述消息是通過kafka消息隊(duì)列進(jìn)行發(fā)送的。
[0016]可選地,還包括:歷史數(shù)據(jù)單元,用于通過使用調(diào)度系統(tǒng)配置的調(diào)度任務(wù)計(jì)算歷史流量數(shù)據(jù)并定時(shí)發(fā)送至數(shù)據(jù)存儲(chǔ)單元。
[0017]可選地,所述數(shù)據(jù)存儲(chǔ)單元還用于:將所述實(shí)時(shí)數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)保存在分布式緩存服務(wù)器中;將所述歷史數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)保存在分布式系統(tǒng)集群中;以及對(duì)所述實(shí)時(shí)數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)和所述歷史數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)進(jìn)行匯總,并保存在關(guān)系型數(shù)據(jù)庫(kù)中;并且所述后臺(tái)應(yīng)用單元還用于:讀取所述數(shù)據(jù)存儲(chǔ)單元的關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)的流量數(shù)據(jù)。
[0018]可選地,所述分布式緩存服務(wù)器為Redis,且所述分布式系統(tǒng)集群為Hadoop集群。
[0019]可選地,在讀取所述數(shù)據(jù)存儲(chǔ)單元中存儲(chǔ)的流量數(shù)據(jù)之前,所述后臺(tái)應(yīng)用單元還用于:根據(jù)預(yù)先設(shè)定的規(guī)則判斷是否進(jìn)行流量數(shù)據(jù)的顯示。
[0020]根據(jù)本發(fā)明的技術(shù)方案,通過引入實(shí)時(shí)數(shù)據(jù)單元對(duì)采集的數(shù)據(jù)進(jìn)行處理并實(shí)時(shí)展示,可以提高數(shù)據(jù)流量可視化系統(tǒng)的時(shí)效性,對(duì)運(yùn)營(yíng)決策的制定提供了更準(zhǔn)確的依據(jù);數(shù)據(jù)存儲(chǔ)單元根據(jù)不同的應(yīng)用場(chǎng)景選擇不同的存儲(chǔ)方式,既保證了存儲(chǔ)效率又滿足了擴(kuò)容要求;通過引入瀏覽器插件的方式,將流量數(shù)據(jù)動(dòng)態(tài)插入到當(dāng)前頁面的相應(yīng)位置,使得網(wǎng)站運(yùn)營(yíng)人員能夠方便、快捷的關(guān)注頁面流量的數(shù)據(jù)變化,可以更好地指導(dǎo)電商運(yùn)營(yíng)。
【附圖說明】
[0021]附圖用于更好地理解本發(fā)明,不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。其中:
[0022]圖1是現(xiàn)有的數(shù)據(jù)流量分析系統(tǒng)框架示意圖;
[0023]圖2是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)流量實(shí)時(shí)可視化的方法的主要步驟示意圖;
[0024]圖3是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)流量實(shí)時(shí)可視化的系統(tǒng)框架示意圖。
【具體實(shí)施方式】
[0025]以下結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例做出說明,其中包括本發(fā)明實(shí)施例的各種細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)至IJ,可以對(duì)這里描述的實(shí)施例做出各種改變和修改,而不會(huì)背離本發(fā)明的范圍和精神。同樣,為了清楚和簡(jiǎn)明,以下的描述中省略了對(duì)公知功能和結(jié)構(gòu)的描述。
[0026]圖2是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)流量實(shí)時(shí)可視化的方法的主要步驟示意圖。如圖2所示,本發(fā)明的一種數(shù)據(jù)流量實(shí)時(shí)可視化的方法包括如下的步驟S21至步驟S24。
[0027]步驟S21:數(shù)據(jù)采集單元實(shí)時(shí)采集數(shù)據(jù)并將采集到的訂單信息和請(qǐng)求頁面信息以消息的形式發(fā)送至實(shí)時(shí)數(shù)據(jù)單元。其中,所述訂單信息包括商品編號(hào)、引入訂單量及引入訂單金額,所述請(qǐng)求頁面信息包括請(qǐng)求頁面地址、頁面訪問次數(shù)、訪客總量及按鈕點(diǎn)擊次數(shù)。
[0028]數(shù)據(jù)采集單元提供數(shù)據(jù)的基礎(chǔ)服務(wù),它是整個(gè)數(shù)據(jù)流量實(shí)時(shí)可視化系統(tǒng)的基礎(chǔ)數(shù)據(jù)來源。以電商企業(yè)為例,數(shù)據(jù)采集單元主要采集訂單信息和請(qǐng)求頁面信息等需要進(jìn)行分析的數(shù)據(jù)。對(duì)數(shù)據(jù)采集單元采集到的數(shù)據(jù),可以通過消息的形式發(fā)送至實(shí)時(shí)數(shù)據(jù)單元進(jìn)行處理,此處的消息是通過kafka消息隊(duì)列進(jìn)行發(fā)送的。通過使用kafka分布式消息隊(duì)列進(jìn)行數(shù)據(jù)發(fā)送,既可以解決海量高并發(fā)數(shù)據(jù)的傳輸問題,又可以很方便的進(jìn)行系統(tǒng)擴(kuò)容,從而保證了系統(tǒng)的整體穩(wěn)定性。
[0029]步驟S22:實(shí)時(shí)數(shù)據(jù)單元按照預(yù)先設(shè)定的規(guī)則對(duì)接收到的所述訂單信息和請(qǐng)求頁面信息進(jìn)行并行處理,并將流量數(shù)據(jù)發(fā)送至數(shù)據(jù)存儲(chǔ)單元。實(shí)時(shí)數(shù)據(jù)單元是本發(fā)明的一種數(shù)據(jù)流量實(shí)時(shí)可視化的系統(tǒng)的關(guān)鍵組成部分,用戶當(dāng)天的所有的請(qǐng)求數(shù)據(jù)都會(huì)首先進(jìn)入實(shí)時(shí)數(shù)據(jù)單元進(jìn)行實(shí)時(shí)處理。
[0030]實(shí)時(shí)數(shù)據(jù)單元可以根據(jù)預(yù)設(shè)的處理規(guī)則采用并行的方式同時(shí)處理多條請(qǐng)求數(shù)據(jù)。例如,以電商企業(yè)為例,可以按照數(shù)據(jù)分析員等制定的規(guī)則,對(duì)用戶請(qǐng)求的頁面信息和訂單信息等進(jìn)行分析,并統(tǒng)計(jì)頁面的訪問次數(shù)、訪客總量、按鈕點(diǎn)擊次數(shù)、商品編號(hào)、引入訂單量、引入訂單金額等需要使用的數(shù)據(jù)。實(shí)時(shí)數(shù)據(jù)單元在對(duì)實(shí)時(shí)流量數(shù)據(jù)進(jìn)行處理時(shí)使用分布式計(jì)算框架Storm,對(duì)流量數(shù)據(jù)進(jìn)行按Hash即興隨機(jī)分組和固定字段分組等策略,支持大流量數(shù)據(jù)的分布式計(jì)算服務(wù),隨時(shí)可以增加計(jì)算節(jié)點(diǎn)。之后,將所有請(qǐng)求數(shù)據(jù)及其處理結(jié)果發(fā)送至數(shù)據(jù)存儲(chǔ)單元以進(jìn)行保存。
[0031]本發(fā)明的實(shí)施例中還可以包括一個(gè)歷史數(shù)據(jù)單元。歷史數(shù)據(jù)單元主要提供非當(dāng)天的數(shù)據(jù)流量統(tǒng)計(jì)服務(wù),通過使用調(diào)度系統(tǒng)配置的調(diào)度任務(wù)計(jì)算歷史流量數(shù)據(jù)并定時(shí)發(fā)送至數(shù)據(jù)存儲(chǔ)單元。當(dāng)天的所有請(qǐng)求數(shù)據(jù)會(huì)在一天結(jié)束時(shí)定期導(dǎo)入歷史數(shù)據(jù)單元,以進(jìn)行歷史數(shù)據(jù)流量的統(tǒng)計(jì)。
[0032]步驟S23:數(shù)據(jù)存儲(chǔ)單元對(duì)接收到的所述流量數(shù)據(jù)進(jìn)行保存。數(shù)據(jù)存儲(chǔ)單元用于保存經(jīng)實(shí)時(shí)數(shù)據(jù)單元和歷史數(shù)據(jù)單元處理后的底層的流量統(tǒng)計(jì)數(shù)據(jù),并對(duì)底層的流量統(tǒng)計(jì)數(shù)據(jù)進(jìn)行匯總整合,以方便查詢顯示。本發(fā)明實(shí)施例中,數(shù)據(jù)存儲(chǔ)單元在進(jìn)行數(shù)據(jù)的保存時(shí),根據(jù)不同使用場(chǎng)景選擇不同的存儲(chǔ)方式,主要有如下3種:
[0033]1、將實(shí)時(shí)數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)保存在分布式緩存服務(wù)器中。由于實(shí)時(shí)數(shù)據(jù)單元發(fā)送的數(shù)據(jù)具有數(shù)據(jù)流量大,并發(fā)請(qǐng)求量大等特點(diǎn),故在進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí)使用高性能的分布式緩存服務(wù)器,例如可選用Key-Value數(shù)據(jù)庫(kù)Redis等。同時(shí),對(duì)Redis中經(jīng)過計(jì)算框架Storm過濾、匯總后的數(shù)據(jù)進(jìn)行保存時(shí),關(guān)鍵字Key可以使用一致性哈希Hash算法進(jìn)行計(jì)算并分布在不同的服務(wù)器上,以便支持服務(wù)器數(shù)量的動(dòng)態(tài)擴(kuò)容;
[0034]2、將歷史數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)保存在分布式系統(tǒng)集群中。由于歷史數(shù)據(jù)單元數(shù)據(jù)量巨大,需要進(jìn)行分布式存儲(chǔ)和計(jì)算,故使用成熟的分布式系統(tǒng)集群進(jìn)行數(shù)據(jù)存儲(chǔ),例如可以選用Hadoop集群和Hive架構(gòu),集群的規(guī)模根據(jù)數(shù)據(jù)量的增長(zhǎng)還可以動(dòng)態(tài)擴(kuò)容而不會(huì)影響線上業(yè)務(wù),同時(shí),還可以很方便的進(jìn)行數(shù)據(jù)迀移、擴(kuò)展和分布式計(jì)算等;
[0035]3、將實(shí)時(shí)數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)和歷史數(shù)據(jù)單元發(fā)送的流量數(shù)據(jù)進(jìn)行匯總后保存在關(guān)系型數(shù)據(jù)庫(kù)中。例如,數(shù)據(jù)存儲(chǔ)單元通過將相同商品編號(hào)的訂單量及訂單金額進(jìn)行相加或?qū)⑾嗤撁娴脑L問次數(shù)統(tǒng)計(jì)計(jì)算等