吳憲傳,吳紹榮,顏遠海
(廣州華商學院數(shù)據(jù)科學學院,廣州 511300)
隨著電子商務迅猛發(fā)展,各類電商網(wǎng)站、電商APP 不斷涌現(xiàn),電商企業(yè)對電子商務信息需求逐漸增多。怎樣提高用戶商品復購率,如何判斷用戶消費偏向等問題成為電商企業(yè)面臨的難題。電商企業(yè)產(chǎn)生海量數(shù)據(jù),企業(yè)需要對數(shù)據(jù)進行有效管理,并對數(shù)據(jù)進行分析與提取。在數(shù)據(jù)處理方面,電商企業(yè)已經(jīng)開始使用大數(shù)據(jù)技術處理數(shù)據(jù),并且大數(shù)據(jù)相關的生態(tài)技術也在持續(xù)更新中。
電商數(shù)據(jù)倉庫可以支持電商企業(yè)決策分析,制定策略。通過收集用戶行為數(shù)據(jù)和業(yè)務數(shù)據(jù)進行ETL 處理,提取有用主題信息,提高電商企業(yè)市場競爭力,推進電子商務智能化發(fā)展。在國內,大部分中小型公司并沒有自己的數(shù)據(jù)倉庫系統(tǒng),往往采用阿里云或華為云等大數(shù)據(jù)一站式解決方案。數(shù)據(jù)倉庫是致力于從紛繁復雜的數(shù)據(jù)中抽取有用的決策信息,從而幫助企業(yè)更好制定解決策略?;谏鲜鰡栴},本文提出利用大數(shù)據(jù)技術實現(xiàn)對電商數(shù)據(jù)倉庫平臺數(shù)據(jù)可視化展示,為中小型企業(yè)及管理者更好了解和掌握實時的動態(tài)數(shù)據(jù),并為更好制定方案和策略提供有效參考。
(1)HDFS。 HDFS(hadoop distributed file system)是Apache Hadoop 的核心組件之一,是一個分布式文件系統(tǒng),用于存儲和處理大規(guī)模數(shù)據(jù)集。它是為了解決大規(guī)模數(shù)據(jù)處理問題而設計的,HDFS 的設計思想是分塊存儲。同時,HDFS 還提供了數(shù)據(jù)冗余備份機制,可以在數(shù)據(jù)節(jié)點出現(xiàn)故障時自動恢復數(shù)據(jù)。HDFS 廣泛應用于大數(shù)據(jù)處理、機器學習、數(shù)據(jù)挖掘等領域,是構建大規(guī)模數(shù)據(jù)處理平臺的重要組成部分。
(2)MapReduce。MapReduce 的核心思想是“分而治之”,即將一個大而復雜的問題分解為多個小而簡單的問題,先解決多個小問題,再把多個小問題的結果組成大問題的結果。MapReduce 作為一種分布式計算框架,主要用于解決海量數(shù)據(jù)的計算問題。MapReduce 計算過程可以分為兩個階段:Map 階段和Reduce 階段[1]。其中,Map階段負責將大任務分解為多個小任務,Reduce 階段負責將多個小任務的結果合并。
(3)YARN。ApacheHadoopYARN(yetanother resource negotiator),即另一種資源協(xié)調者,是一個通用資源管理系統(tǒng)和調度平臺,基本思想是將Hadoop1.0的MR中的jobTracker拆分為兩個獨立的任務,即ResourceManager 和Application-Master。
(4)Zookeeper。Zookeeper 是一個分布式協(xié)調服務的開源框架,它主要用來解決分布式集群中應用系統(tǒng)的一致性問題,避免造成數(shù)據(jù)臟讀的問題[2]。它將所有的數(shù)據(jù)存儲在內存中,因此具有非常高的讀寫性能。
Zookeeper 的架構采用了主從模式,其中一個節(jié)點作為主節(jié)點,負責協(xié)調所有的從節(jié)點。Zookeeper還提供了一些高級功能,如事務支持、觀察者模式等。
(5)Kafka。Apache Kafka 是一種高吞吐量分布式發(fā)布訂閱消息系統(tǒng),它可以消費所有動作流數(shù)據(jù),例如實時日志、事件、消息等。Kafka 可以用于構建實時系統(tǒng),支持實時數(shù)據(jù)處理、數(shù)據(jù)流處理、日志處理和消息隊列等。
(6)Flume。Apache Flume 的核心是通過數(shù)據(jù)采集器把數(shù)據(jù)從數(shù)據(jù)源(source)收集過來,再將收集的數(shù)據(jù)通過緩沖通道(channel)匯集到指定的接收器(sink)[3]。Flume可以將日志數(shù)據(jù)從一個系統(tǒng)節(jié)點流傳輸?shù)搅硗庖粋€系統(tǒng)節(jié)點,可以實現(xiàn)數(shù)據(jù)的采集、聚合和傳輸。Flume采用了“源-匯”模型,即每個源(source)將數(shù)據(jù)發(fā)送到一個或多個匯(sink),匯將數(shù)據(jù)寫入指定的目的地。
Flume是流式日志采集工具,能夠提供從本地文件、實時日志、Kafka 等數(shù)據(jù)源上收集數(shù)據(jù)的能力。
(7)Sqoop。Sqoop 主要用于在Hadoop 和關系數(shù)據(jù)庫或大型機器之間傳輸數(shù)據(jù),其目的是讓Hadoop 開發(fā)人員可以輕松訪問和分析傳統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)。Sqoop 使用MapReduce 編程模型來實現(xiàn),能夠將數(shù)據(jù)從關系型數(shù)據(jù)庫管理系統(tǒng)導入到Hadoop 分布式文件系統(tǒng)中,或者將Hadoop 中的數(shù)據(jù)導出到關系型數(shù)據(jù)庫管理系統(tǒng)(MySQL)[4]。
(8)Hive。Apache Hive是底層封裝了Hadoop的數(shù)據(jù)倉庫處理工具,它運行在Hadoop 基礎上,定義了簡單類SQL 查詢語言HQL。它可以將HQL 語言轉換為MR 任務,在Hadoop 集群上運行,也可以通過Hadoop 執(zhí)行其他編程語言來操作和分析大數(shù)據(jù)集,如Java、Perl、Python等。Hive 的優(yōu)勢在于它可以快速輕松地處理大量數(shù)據(jù)。它也可以與其他Hadoop 組件一起使用,如Pig、HBase等,以構建大型數(shù)據(jù)分析系統(tǒng)。
電商數(shù)據(jù)倉庫系統(tǒng)主要功能包括數(shù)據(jù)采集模塊、數(shù)據(jù)倉庫模塊和數(shù)據(jù)可視化模塊,如圖1所示。
圖1 電商數(shù)據(jù)倉庫系統(tǒng)功能模塊
1.2.1 數(shù)據(jù)采集功能
數(shù)據(jù)采集是指收集數(shù)據(jù)的過程。將各種不同來源的數(shù)據(jù)收集和整理以便進行數(shù)據(jù)分析的重要步驟。
電商數(shù)據(jù)倉庫系統(tǒng)數(shù)據(jù)源主要是收集和分析所得的用戶行為數(shù)據(jù)[5]。頁面數(shù)據(jù)主要記錄一個頁面的用戶訪問情況,包括用戶點擊的時間、點擊后停留的時間、頁面的路徑等信息[6]。所有頁面表有“首頁”“分類頁”“發(fā)現(xiàn)頁”“熱門排行”“搜索頁”和“商品列表頁”等字段,所有頁面對象類型表有“商品skuId”“搜索關鍵詞”“多個商品skuId”“活動id”和“購物券id”等字段, 所有來源類型表有“商品推廠”“算法推薦商品”“查詢結果商品”和“促銷活動”等字段。
事件數(shù)據(jù)主要記錄用戶的操作行為,包括用戶操作的類型、用戶操作的對象、用戶操作對象的描述等信息。用戶操作的類型表有“favor_add”“favor_canel”“cart_add”“cart_remove”“cart_add_num”“cart_minus_num”“trade_add_address”和“get_coupon”等字段,具體見表1。用戶操作的對象表有“商品”和“購物券”等字段。
表1 用戶操作的類型
曝光數(shù)據(jù)主要記錄APP 頁面曝光的內容,包括APP 頁面曝光對象,APP 頁面曝光類型等信息。所有曝光類型表有“商品推廠”“算法推薦商品”“查詢結果商品”和“促銷活動”等字段,所有曝光對象類型表有“商品skuId”和活動“id字段”。
啟動數(shù)據(jù)記錄APP 的啟動信息。所有啟動入口類型表有“圖標”“通知”和“安裝后啟動”等字段。
錯誤數(shù)據(jù)記錄APP 使用過程中的錯誤信息,所有錯誤信息類型表“錯誤編號”和“錯誤信息”等字段。
1.2.2 數(shù)據(jù)倉庫模塊
電商數(shù)據(jù)倉庫系統(tǒng)是從大量的數(shù)據(jù)中快速獲取有效價值數(shù)據(jù)的系統(tǒng)[7]。通過收集企業(yè)各種內部信息和外部信息,對數(shù)據(jù)進行抽取、清理和有效集成,同時多角度、多層次分析,發(fā)現(xiàn)數(shù)據(jù)規(guī)律和趨勢。
電商數(shù)據(jù)倉庫系統(tǒng)主要是面對海量的數(shù)據(jù),提供復雜的分析操作,幫助企業(yè)決策人員、高級管理人員決策支持,并且能夠提供直觀易懂的查詢結果。
1.2.3 數(shù)據(jù)可視化模塊
電商數(shù)據(jù)可視化需要將數(shù)據(jù)轉化為圖形或圖像,通過建模、表面、立體、動畫等展示,對數(shù)據(jù)進行可視化解釋,讓企業(yè)決策者可以通過圖形或圖像直觀地看到數(shù)據(jù)分析的結果,更容易地理解業(yè)務變化趨勢。更快地發(fā)現(xiàn)市場需求變化,獲得更多信息,提高市場份額。
電商數(shù)據(jù)倉庫系統(tǒng)架構,采用大數(shù)據(jù)主流框架技術,尤其是用戶行為數(shù)據(jù)采用了Flume-Kafka-Flume框架,如圖2所示。
圖2 電商數(shù)據(jù)倉庫系統(tǒng)架構
數(shù)據(jù)采集模塊主要實現(xiàn)兩個需求,將用戶行為日志數(shù)據(jù)導入到HDFS和將數(shù)據(jù)庫管理系統(tǒng)中的業(yè)務數(shù)據(jù)導入到HDFS。
將用戶行為日志數(shù)據(jù)導入HDFS 采用了Flume 和Kafka 框架,設計了兩層Flume 中間加一個Kafka 集群的結構。第一層用多個Flume 采集日志文件,防止壓力過大,保持服務器的負載均衡。第二層Flume 從第一層Flume 里采集數(shù)據(jù)傳輸?shù)紿DFS 里。但是如果第一層Flume 在某一時間采集的數(shù)據(jù)量過大,將會導致第二層Flume無法及時處理數(shù)據(jù),就會因消息太多導致拒絕服務以及網(wǎng)絡擁塞。所以又在兩層Flume中間加了一個Kafka集群作為緩沖區(qū)。
將數(shù)據(jù)庫管理系統(tǒng)中的業(yè)務數(shù)據(jù)導入HDFS使用的是Sqoop 工具[8]。Sqoop 是Hadoop 生態(tài)圈的一部分,將導入導出的命令翻譯成MR程序來執(zhí)行[9],通過JDBC 與數(shù)據(jù)庫進行交互,整個過程是完全自動化的,從而實現(xiàn)高效的傳輸數(shù)據(jù)。
電商數(shù)據(jù)倉庫是針對電商企業(yè)的數(shù)據(jù)分析和決策,需要考慮數(shù)據(jù)清洗、建立維度和度量、以及保證數(shù)據(jù)的質量和安全。在清洗數(shù)據(jù)方面,需要篩選掉一些噪聲和無效數(shù)據(jù);在建立維度和度量方面,需要選擇合適的指標和數(shù)據(jù)類型;在數(shù)據(jù)質量和安全方面,需要設置權限、控制交互和確保數(shù)據(jù)的完整性和一致性。
電商數(shù)據(jù)倉庫還需要考慮具體的業(yè)務需求,提供定制的數(shù)據(jù)分析和決策支持。比如,可以針對銷售數(shù)據(jù)進行多維分析,了解產(chǎn)品的銷售情況、用戶的購買行為、銷售渠道的效果等;也可以進行數(shù)據(jù)挖掘,發(fā)掘用戶的興趣點和購物習慣,并根據(jù)這些信息進行推薦或者趨勢預測等。
本系統(tǒng)的數(shù)據(jù)倉庫分為以下幾部分:
(1)ODS(operational data store)層。
ODS 層是電商數(shù)據(jù)倉庫架構中最基礎和重要的一層[9],主要承擔將業(yè)務系統(tǒng)中的數(shù)據(jù)實時抽取、清洗和轉換,為DW(data warehouse)層提供數(shù)據(jù)源的功能。ODS 層所采用的數(shù)據(jù)模式需要和業(yè)務系統(tǒng)一致,并且不對數(shù)據(jù)作任何修改,以保證數(shù)據(jù)的一致性。此外,ODS 層還需要對數(shù)據(jù)進行實時監(jiān)控和異常處理,確保數(shù)據(jù)的正確性和及時性。
ODS 層的主要功能包括:①數(shù)據(jù)抽?。篛DS 層通過多種方式,如JDBC、API 等將數(shù)據(jù)抽取到ODS 層;②數(shù)據(jù)清洗:ODS 層需要對抽取到的數(shù)據(jù)進行清洗、格式化、數(shù)據(jù)類型轉換等處理,并篩選掉無效數(shù)據(jù)和異常數(shù)據(jù);③數(shù)據(jù)集成:ODS 層需要將來自多個業(yè)務系統(tǒng)的數(shù)據(jù)進行集成,形成一個完整的數(shù)據(jù)源;④數(shù)據(jù)傳輸:ODS 層需提供實時數(shù)據(jù)傳輸?shù)墓δ?,將業(yè)務系統(tǒng)中的數(shù)據(jù)及時傳輸?shù)綌?shù)據(jù)倉庫中,以保證數(shù)據(jù)的及時性和準確性。
ODS 層是電商數(shù)據(jù)倉庫中至關重要的一層,它不僅是數(shù)據(jù)倉庫架構中的數(shù)據(jù)源,還是實現(xiàn)數(shù)據(jù)清洗、轉換、集成和傳輸?shù)年P鍵。只有建立了高效、可靠的ODS 層,才能為企業(yè)的數(shù)據(jù)分析和決策提供穩(wěn)定可靠的數(shù)據(jù)。
(2)DWD(data warehouse detail)層。
DWD 層是數(shù)據(jù)倉庫架構中的核心層次,它負責接受和整合ODS 層的數(shù)據(jù),并根據(jù)業(yè)務分析需求進行處理和建模,構建出符合業(yè)務需求和分析要求的數(shù)據(jù)模型。
DWD 層的主要任務包括:①數(shù)據(jù)建模:DWD 層根據(jù)業(yè)務分析需求建立合適的數(shù)據(jù)模型,包括維度模型(dimensional model)和實體關系模型(entity-relation model);②數(shù)據(jù)質量控制:DWD 層可以對數(shù)據(jù)進行質量控制,包括數(shù)據(jù)清洗、數(shù)據(jù)去重、數(shù)據(jù)過濾等,保證數(shù)據(jù)的準確性和一致性;③數(shù)據(jù)存儲:DWD 層將整理后的數(shù)據(jù)存儲在數(shù)據(jù)倉庫中,為后續(xù)的多維分析和數(shù)據(jù)挖掘提供支持。
DWD 層是電商數(shù)據(jù)倉庫中數(shù)據(jù)處理的重要部分,負責管理事實表和維度表,提供數(shù)據(jù)的邏輯處理和建模,確保數(shù)據(jù)的質量和可用性,為后續(xù)的分析和決策提供高質量的數(shù)據(jù)。
(3)DWS(data warehouse summary)層。
DWS 層是數(shù)據(jù)倉庫架構中分析和決策的數(shù)據(jù)來源。DWS層通過對DWD 層中整合、清洗后的數(shù)據(jù)進行加工、計算和匯總,得出更高層次的聚合數(shù)據(jù),以支持更廣泛的業(yè)務分析和決策。
DWS 層的主要任務包括:①數(shù)據(jù)匯總:DWS 層需要生成更高層次的報表和指標,以支持經(jīng)理層級和高層管理層級的決策需求;②數(shù)據(jù)加工:DWS 層根據(jù)特定的業(yè)務需求,對數(shù)據(jù)進行加工、計算和轉換,得到更加精準和實用的指標和分析結果;③數(shù)據(jù)建模:DWS 層根據(jù)具體的決策需求建立決策支持模型,為決策提供清晰、準確的圖像和指南。
DWS 層的數(shù)據(jù)模型和數(shù)據(jù)加工方式需要根據(jù)具體的業(yè)務需求和分析目標進行設計和調整。它承擔著向上級管理層提供決策支持的重要功能,因此需要在保持數(shù)據(jù)準確性和一致性的基礎上,更加注重數(shù)據(jù)的實用性和可解釋性。
(4)DWT(data warehouse transform)層。
DWT 層通常是指匯總歷史數(shù)據(jù)的層次,它不同于DWS 層,不是用于決策支持,而是用于歷史數(shù)據(jù)的存儲和管理。DWT 層中的數(shù)據(jù)是基于DWS 層的數(shù)據(jù)計算出來的,通常是每天或每周的數(shù)據(jù)匯總,或者是對某個時間段內的數(shù)據(jù)進行匯總。
DWT 層的主要功能包括:①數(shù)據(jù)匯總:DWT 層負責對DWS 層的數(shù)據(jù)進行時間段的匯總和聚合,形成歷史數(shù)據(jù)的總體框架和趨勢;②數(shù)據(jù)質量校準:DWT 層需要對匯總后的數(shù)據(jù)進行質量控制,確保數(shù)據(jù)的正確性和一致性;③數(shù)據(jù)管理:DWT層需要對歷史數(shù)據(jù)進行管理,包括數(shù)據(jù)的備份、恢復、遷移、清理等。
DWT 層主要用于歷史數(shù)據(jù)的存儲和管理,通常不直接用于業(yè)務分析和決策。與DWS 層不同,它強調數(shù)據(jù)的歷史性和可追溯性,為企業(yè)提供可靠的歷史數(shù)據(jù)支持,因此也是數(shù)據(jù)倉庫架構中的重要組成部分。
(5)ADS(analytic data store)層。
ADS 層是電商數(shù)據(jù)倉庫的數(shù)據(jù)展示層,是電商數(shù)據(jù)倉庫系統(tǒng)中的一個重要組成部分,旨在為業(yè)務分析和智能決策提供高性能、高可靠、高可擴展的數(shù)據(jù)查詢服務,幫助電商企業(yè)快速發(fā)現(xiàn)業(yè)務趨勢和問題。
在ADS 層中,數(shù)據(jù)會被預處理和加工,生成適合各種數(shù)據(jù)分析需求的數(shù)據(jù)模型。通俗地說,ADS 層就是我們平時所說的BI 系統(tǒng),提供了各種分析指標和圖形化界面,便于業(yè)務人員進行數(shù)據(jù)分析和決策。ADS 層是電商數(shù)據(jù)倉庫的核心部分之一,是企業(yè)業(yè)務決策的重要依據(jù)。通過ADS 的分析,企業(yè)可以及時發(fā)現(xiàn)問題和機遇,制定更好的業(yè)務策略和決策。
Apache Superset 工具能夠對接許多數(shù)據(jù)源,如Hive、MySQL等,并且操作簡單。同時Superset擁有較多圖標、圖形,支持使用儀表盤工具,擁有可簡易操作的UI界面。所以可以使用Superset對數(shù)據(jù)倉庫進行可視化展示。
大數(shù)據(jù)生態(tài)組件安裝在服務器上,需要考慮的因素有:①需要消耗內存的組件安裝在不同的服務器上,避免造成服務器內存溢出或內存不足;②需要多次傳輸數(shù)據(jù)的多個組件安裝在同一臺服務器上,提高數(shù)據(jù)傳輸?shù)乃俣?,例如Flume-Kafka-Flume、Zookeeper 等。本系統(tǒng)的大數(shù)據(jù)生態(tài)組件和服務器規(guī)劃見表2。
表2 大數(shù)據(jù)生態(tài)組件服務器規(guī)劃
如圖3 所示,數(shù)據(jù)存儲在HDFS 上需要搭建一個Hadoop 集群。實現(xiàn)采集模塊的日志數(shù)據(jù)采集需要搭建兩層Flume、一個Zookeeper 集群、一個Kafka 集群。實現(xiàn)業(yè)務數(shù)據(jù)采集需要部署Sqoop框架。
圖3 數(shù)據(jù)采集模塊架構
3.1.1 Hadoop集群實現(xiàn)
Hadoop 中的HDFS 起到海量數(shù)據(jù)的高效存儲,而YARN 是本系統(tǒng)需要的資源調度框架。如圖4 所示的Java 進程均說明Hadoop 集群成功啟動。
圖4 Hadoop成功啟動后的所有進程
成功啟動集群之后,可以分別查看HDFS的Web 頁面、SecondaryNameNode 的Web 頁面、YARN 的Web 頁面,具體如圖5、圖6、圖7 所示。
圖5 HDFS的Web頁面
圖6 SecondaryNameNode 的Web頁面
圖7 YARN的Web頁面
3.1.2 Zookeeper集群實現(xiàn)
部署完成之后啟動Zookeeper集群。如圖8所示的Java進程均說明Zookeeper集群成功啟動。
圖8 Zookeeper成功啟動后的所有進程
3.1.3 Kafka集群實現(xiàn)
部署完成之后啟動Kafka 集群。如圖9 所示的Java進程均說明Kafka集群成功啟動。
圖9 Kafka成功啟動后的所有進程
3.1.4 采集層Flume實現(xiàn)
部署完成之后啟動采集層Flume。如圖10所示的Java進程均說明采集層Flume成功啟動。
圖10 采集層Flume成功啟動后的所有進程
3.1.5 消費層Flume實現(xiàn)
部署完成之后啟動消費層Flume。如圖11所示的Java進程均說明消費層Flume成功啟動。
圖11 消費層Flume成功啟動后的所有進程
3.2.1 ODS層數(shù)據(jù)倉庫實現(xiàn)
ODS 層主要用于存放原始的數(shù)據(jù),保證數(shù)據(jù)的可靠性。OSD 層電商數(shù)據(jù)表結構關系如圖12所示。
圖12 電商數(shù)據(jù)表結構關系
在Hive 中先創(chuàng)建數(shù)據(jù)庫gmall,然后以日志表為例創(chuàng)建表,代碼如下:
drop table if exists ods_log;
CREATE EXTERNAL TABLE ods_log(‘line’string)
PARTITIONED BY(‘dt’string)
STORED AS
INPUTFORMAT
‘com.hadoop.mapred.DeprecatedLzoTextInput
Format’
OUTPUTFORMAT
‘org.apache.hadoop.hive.ql.io.HiveIgnoreKeyText
OutputFormat’
LOCATION‘/warehouse/gmall/ods/ods_log’;
最后創(chuàng)建1 張表存放日志數(shù)據(jù)和23 張表存放業(yè)務數(shù)據(jù)。ODS層數(shù)據(jù)表如圖13所示。
圖13 ODS層數(shù)據(jù)表
3.2.2 DWD層數(shù)據(jù)倉庫實現(xiàn)
DWD層主要是對ODS層的24張表進行維度建模解析,提高查詢的速度。電商數(shù)據(jù)表維度建模如圖14所示。
圖14 電商數(shù)據(jù)表維度建模
對ODS 層的數(shù)據(jù)表進行維度建模后,生成DWD層新的維度表和事實表,如圖15所示。
圖15 DWD層數(shù)據(jù)表
3.2.3 DWS層數(shù)據(jù)倉庫實現(xiàn)
DWS層將DWD 層數(shù)據(jù)分為會員主題、活動主題、商品主題、地區(qū)主題、設備主題等五個大主題,如圖16 所示。每個主題擁有每個主題的寬表。
圖16 DWS層數(shù)據(jù)表
3.2.4 DWT層數(shù)據(jù)倉庫實現(xiàn)
DWT 層需要對DWS 層的主題數(shù)據(jù)表進行進一步匯總,因此建立DWT 層數(shù)據(jù)表表示某一段時間的度量,如圖17所示。
圖17 DWT層數(shù)據(jù)表
3.2.5 ADS層數(shù)據(jù)倉庫實現(xiàn)
ADS 層主要是統(tǒng)計各種數(shù)據(jù),為生成可視化報表提供數(shù)據(jù)支撐,如圖18所示。
圖18 ADS層數(shù)據(jù)表
使用Superset進行UI可視化展示。當Superset安裝成功并啟功后,進入http://hadoop101:8787顯示登錄界面,正確輸入用戶名和密碼即可登錄系統(tǒng)。
電商數(shù)據(jù)倉庫部署完成后,執(zhí)行編寫好的腳本,生產(chǎn)日志模擬數(shù)據(jù)。然后通過HDFS 的Web 端頁面查看日志數(shù)據(jù)是否被采集到磁盤。同樣生成業(yè)務模擬數(shù)據(jù),然后通過Sqoop 導入MySQL 里的模擬數(shù)據(jù)到HDFS。如圖19 所示,說明日志數(shù)據(jù)和業(yè)務導入到了HDFS。數(shù)據(jù)采集模塊運行測試成功。
圖19 用戶行為日志數(shù)據(jù)和業(yè)務數(shù)據(jù)成功導入HDFS
電商數(shù)據(jù)倉庫部署完成后,執(zhí)行編寫好的腳本,在HDFS下查看各層次數(shù)據(jù)生成狀況,如圖20所示,說明數(shù)據(jù)倉庫各層次數(shù)據(jù)生成成功,數(shù)據(jù)倉庫運行測試成功。
圖20 數(shù)據(jù)倉庫各個層次導入結果
將ADS 層的數(shù)據(jù)表,在MySQL 里創(chuàng)建相應的表,這里使用adsarea_topic 和ads_user_topic這兩張表為樣例。再編寫腳本使用Sqoop框架把這兩張表的數(shù)據(jù)從HDFS 導入到MySQL 對應的表里。通過Superset 進行可視化展示,如圖21所示,通過分析ads_area_topic 來對各地區(qū)訂單進行可視化展示。
圖21 各地區(qū)訂單數(shù)
通過分析ads_area_topic 并對全國各省份訂單進行可視化展示。通過分析ads_user_topic 并對用戶日活動趨勢進行可視化展示。如圖22 所示,通過Superset儀表盤工具,將各個圖進行整合,方便分析數(shù)據(jù),最后進行可視化大屏展示。
圖22 BI可視化大屏展示
數(shù)據(jù)倉庫的建立和使用,可以幫助企業(yè)更加深入地了解其業(yè)務狀況、優(yōu)化運營流程、提高決策效率和精準度。為此,本文通過分析電商行業(yè)的數(shù)據(jù)特點和業(yè)務需求,提出了基于大數(shù)據(jù)技術的電商數(shù)據(jù)倉庫可視化設計方案,運用數(shù)據(jù)倉庫建模、ETL 流程、數(shù)據(jù)存儲和數(shù)據(jù)分析等技術,實現(xiàn)了對電商數(shù)據(jù)的全方位分析,并利用Hadoop 生態(tài)系統(tǒng)和Hive 等工具,可以處理龐大的數(shù)據(jù),提供更為全面和準確的數(shù)據(jù)支持,幫助企業(yè)在市場競爭中取得優(yōu)勢,對于電商企業(yè)的決策和管理具有重要意義。
此外,電商數(shù)倉在實際應用中還有一些場景和效果,例如銷售預測、用戶行為分析、流量分析等,為后續(xù)進一步研究提出了方向。