郭 丹, 樊 紅
?
基于ETL-KETTLE的貴州卷煙營銷大數(shù)據(jù)分析及可視化①
郭 丹, 樊 紅
(武漢大學測繪遙感信息工程國家重點實驗室, 武漢 430079)
為了實現(xiàn)對貴州卷煙銷售大數(shù)據(jù)的分析及可視化, 基于開源數(shù)據(jù)分析工具KETTLE構(gòu)建了ETL過程模型, 對現(xiàn)有的卷煙銷售基礎大數(shù)據(jù)進行抽取、轉(zhuǎn)換、加載, 形成分析型數(shù)據(jù), 快速高效地實現(xiàn)了數(shù)據(jù)集成. 經(jīng)過ETL處理的集成數(shù)據(jù), 為卷煙銷售大數(shù)據(jù)可視化系統(tǒng)及進一步的數(shù)據(jù)挖掘、決策支持提供了數(shù)據(jù)基礎. 同時, 采用GIS平臺構(gòu)建和可視化技術, 設計并實現(xiàn)了卷煙銷售大數(shù)據(jù)可視化分析系統(tǒng), 為企業(yè)的數(shù)據(jù)分析和決策支持提供了數(shù)據(jù)展示及分析平臺.
ETL; KETTLE; 數(shù)據(jù)集成; GIS; 可視化
卷煙作為一種特殊消費品, 國家實施嚴格的計劃管理. 但是隨著市場化變革的深入, 煙草行業(yè)要更加注意發(fā)揮市場需求對卷煙營銷的拉動作用, 需要解決市場需求持續(xù)變化與計劃供應之間的矛盾, 逐步實現(xiàn), 在總量控制的前提下, “市場”要什么“計劃”就給什么, “市場”要多少“計劃”就給多少, “市場”什么時候要“計劃”就什么時候給, “計劃”與“市場”要緊密銜接、高度融合.
煙草產(chǎn)業(yè)是貴州“五張名片”和“八大支柱產(chǎn)業(yè)”之一, 在經(jīng)濟社會發(fā)展中占有重要的地位, 是貴州省財稅增長、農(nóng)民增收的重要來源, 是廣大貧困地區(qū)脫貧致富的重要依托產(chǎn)業(yè). 近年來, 貴州煙草企業(yè)信息化建設取得了顯著成績, 伴隨現(xiàn)代營銷體系的逐步優(yōu)化升級, 尤其是最近幾年網(wǎng)上訂貨、網(wǎng)上營銷和現(xiàn)代零售終端建設, 煙草營銷逐步進入大數(shù)據(jù)時代. 雖然分布廣泛的營銷網(wǎng)絡每天都會產(chǎn)生大量的數(shù)據(jù), 但目前煙草商業(yè)企業(yè)并沒有形成一套系統(tǒng)的、科學的數(shù)據(jù)處理方式和數(shù)據(jù)決策模式[1-3]. 為此, 貴州煙草要不斷提升信息化能力積極響應“互聯(lián)網(wǎng)+”、大數(shù)據(jù)、云計算、可視化等現(xiàn)代技術和管理手段, 全面謀劃貴州省煙草商業(yè)信息化各項工作, 推進煙草產(chǎn)業(yè)與信息化深度融合. 這樣的信息化將有助于解決煙草行業(yè)面臨的“市場”與“計劃”之間的突出矛盾.
數(shù)據(jù)抽取(extraction)、轉(zhuǎn)換(transformation)、加載(loading)(ETL)是多源異構(gòu)數(shù)據(jù)集成的有效方法. 目前, 越來越多的廠商致力于ETL工具的研發(fā), 如IBM的Datastage、甲骨文的OWB(Oracle Warehouse Builder)和ODI(Oracle Data Integrator)、KETTLE等. 其中, KETTLE使用較為廣泛[4]. 本文利用數(shù)據(jù)分析工具KETTLE構(gòu)建了高效多源異構(gòu)數(shù)據(jù)ETL解決方案, 對貴州現(xiàn)有的卷煙營銷基礎大數(shù)據(jù)進行抽取、轉(zhuǎn)換、加載, 形成分析型數(shù)據(jù), 快速高效地實現(xiàn)了數(shù)據(jù)集成, 為卷煙銷售大數(shù)據(jù)可視化系統(tǒng)及數(shù)據(jù)挖掘提供了優(yōu)化的數(shù)據(jù)源. 同時, 采用GIS平臺可視化技術, 設計并實現(xiàn)了卷煙銷售大數(shù)據(jù)可視化分析系統(tǒng), 優(yōu)化后的數(shù)據(jù)進行可視化、分析和挖掘, 為企業(yè)提供決策支持.
1.1 ETL過程模型
ETL用來描述將數(shù)據(jù)從來源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程, 使這些數(shù)據(jù)成為BI(商業(yè)智能)系統(tǒng)需要的高質(zhì)量的數(shù)據(jù), 是構(gòu)建數(shù)據(jù)倉庫、大數(shù)據(jù)分析、商業(yè)智能的重要一環(huán)[5-7].
ETL包含了三方面: 一是數(shù)據(jù)抽取, 將數(shù)據(jù)從各種原始的基礎數(shù)據(jù)中讀取出來, 這是所有工作的前提; 二是數(shù)據(jù)轉(zhuǎn)換, 按照預先設計好的規(guī)則將抽取得數(shù)據(jù)進行轉(zhuǎn)換, 使本來異構(gòu)的數(shù)據(jù)格式能統(tǒng)一起來; 三是數(shù)據(jù)裝載, 將轉(zhuǎn)換完的數(shù)據(jù)按計劃增量或全部導入到數(shù)據(jù)倉庫中[9,10].
1.2 KETTLE
KETTLE 是“Kettle E.T.T.L. Environment”只取首字母的縮寫, 是一款國外開源的ETL工具, 純java編寫, 可以在Window、Linux、Unix上運行, 綠色無需安裝, 數(shù)據(jù)抽取高效穩(wěn)定. KETTLE支持文本文件、數(shù)據(jù)表、各種商業(yè)或免費的數(shù)據(jù)庫引擎等多種輸入輸出格, KETTLE實現(xiàn)對數(shù)據(jù)的抽取、轉(zhuǎn)換以及加載的核心是作業(yè)(job)以及轉(zhuǎn)換(transformation). ETL活動是一個四元組A=(ID, I, O, S), ID是活動標示符, I是輸入模式的集合, O是輸出模式的集合, S是一個或多個擴展的關系代數(shù)表達式, 表示每個輸出模式的語義[9-14]. 圖1是KETTLE ETL的概念模型.
圖1 KETTLE ETL概念模型圖
基于KETTLE的ETL工作流程圖如圖2所示. KETTLE主要包含Spoon、Kitchen、Pan三個主要組件. Spoon是一個圖形化的界面, 是創(chuàng)建Job和Transformation的數(shù)據(jù)集成環(huán)境, 制定整個ETL的解決方案; Kitchen用于調(diào)用作業(yè)(Job)流程; Pan調(diào)用轉(zhuǎn)換(Transformation)流程. 通過KETTLE中設計的作業(yè)和轉(zhuǎn)換, 有兩種方式存儲: 資源庫和文件, 通過加載作業(yè)與轉(zhuǎn)換流程文件, 可以方便地實現(xiàn)對作業(yè)、轉(zhuǎn)換流程的優(yōu)化與重新定制, 提升ETL處理效率, 改善數(shù)據(jù)質(zhì)量[9-14].
2.1 基本數(shù)據(jù)的獲取
貴州各地區(qū)銷售的卷煙細分品牌共有345個, 來自全國20個省、自治區(qū)、直轄市和國外, 國外品牌共有30個, 國內(nèi)品牌315個. 貴州各地區(qū)銷售的國內(nèi)卷煙品牌主要分布于長江流域, 共239個卷煙品牌來自云、貴、川、鄂、湘、皖、蘇、滬共8個長江流經(jīng)的省、市、自治區(qū). 煙草品牌來源復雜, 區(qū)域銷售情況參差不齊, 實現(xiàn)市場引導和計劃營銷勢在必行.
煙草企業(yè)各業(yè)務層面的信息系統(tǒng)在支撐企業(yè)運營管理的同時, 積累了大量的基礎數(shù)據(jù). 伴隨現(xiàn)代營銷體系的逐步優(yōu)化升級, 尤其是最近幾年網(wǎng)上訂貨、網(wǎng)上營銷和現(xiàn)代零售終端建設, 煙草營銷逐步進入大數(shù)據(jù)時代. 在本文中, 我們的實驗數(shù)據(jù)來自貴州省某煙草銷售公司的品牌數(shù)據(jù)、客戶零售門店相關數(shù)據(jù)、訂單數(shù)據(jù)、消費者信息數(shù)據(jù)、以及各個零售戶的庫存及銷售數(shù)據(jù)等. 表1給出了經(jīng)過整理以及去重表簡化之后的原始數(shù)據(jù)表的字段. 從表中我們可以看出, 因為基礎數(shù)據(jù)來自不同的系統(tǒng), 數(shù)據(jù)結(jié)構(gòu)差異很大, 字段中英文都有, 數(shù)據(jù)冗余度大. 煙草營銷數(shù)據(jù)進入大數(shù)據(jù)時代, 海量的數(shù)據(jù), 如果沒有好的數(shù)據(jù)表結(jié)構(gòu), 后為后期的數(shù)據(jù)管理、數(shù)據(jù)分析以及數(shù)據(jù)挖掘造成困擾.
圖2 KETTLE 工作流程圖
表1 原始數(shù)據(jù)表字段
分析煙草營銷數(shù)據(jù)的特點, 按照“準確定位, 有機對接, 突出品牌, 全面提升”的工商協(xié)同營銷總體要求和“精確信息, 精確投放, 精細管理”的精確營銷工作要求, 在原有的數(shù)據(jù)表結(jié)構(gòu)的基礎上, 本系統(tǒng)設計數(shù)據(jù)庫表結(jié)構(gòu)如圖3所示.
圖3 系統(tǒng)數(shù)據(jù)庫表結(jié)構(gòu)
經(jīng)過對基礎數(shù)據(jù)的分析, 初步設計了產(chǎn)品信息表、訂單信息表、零售戶信息表、零售戶庫存信息表、零售戶銷售信息表以及消費者信息表等存儲經(jīng)過ETL轉(zhuǎn)換后的數(shù)據(jù). 其中產(chǎn)品信息表記錄卷煙的品牌商品信息, 每個卷煙品牌是一條記錄, 有獨立的編碼, 是卷煙銷售數(shù)據(jù)庫的基礎表; 訂單信息表用來記錄每個零售店的訂單信息, 單個零售戶的每個卷煙品牌的訂單形成一條記錄, 可以和產(chǎn)品信息表和零售戶信息表關聯(lián), 獲取品牌和零售戶的信息; 零售戶信息表用來記錄零售門店的信息, 每個零售戶是一條記錄, 有獨立的編碼, 是卷煙銷售數(shù)據(jù)庫的基礎表; 零售戶庫存信息表用來記錄各個零售用戶的卷煙庫存信息, 每個品牌某個時間節(jié)點的掃碼庫存形成一條記錄; 零售戶銷售信息表用來記錄各個零售門戶的卷煙銷售信息, 每個品牌某個時間掃碼的銷售形成一個記錄; 消費者信息表用來記錄登記的消費者的基本信息, 一個消費者形成一條記錄, 是基礎表, 可以和品牌信息表關聯(lián), 得到消費者的個人偏好.
2.2 基礎數(shù)據(jù)的ETL-KETTLE的實現(xiàn)
針對貴州卷煙營銷大數(shù)據(jù)抽取分析的應用需求, 需要將積累的基礎數(shù)據(jù)按照新的數(shù)據(jù)設計導入新庫中, 此過程可能涉及到表結(jié)構(gòu)不一致、大數(shù)據(jù)量(千萬級, 甚至上億)、數(shù)據(jù)冗余等情況, 處理過程包對異構(gòu)數(shù)據(jù)的抽取、清洗等工作. 本文中利用開源的ETL工具KETTLE實現(xiàn)了數(shù)據(jù)的ETL過程, 部分復雜工作通過Java、JavaScript擴展KETTLE工具實現(xiàn).
(1) 作業(yè)流程
根據(jù)設計的表結(jié)構(gòu), 本文確定了產(chǎn)品維度、零售門店維度、訂單維度、銷售事實、庫存維度、消費者維度六個ETL處理流程, 實現(xiàn)對整個卷煙銷售數(shù)據(jù)集成的控制. 數(shù)據(jù)處理ETL處理流程圖如圖4所示. 按照流程, 經(jīng)過產(chǎn)品維度作業(yè)流程處理后形成產(chǎn)品信息表, 經(jīng)過零售門店維度作業(yè)流程處理后形成零售門店信息表, 經(jīng)過訂單維度作業(yè)流程處理后形成訂單信息表, 經(jīng)過銷售事實作業(yè)流程處理后形成銷售信息表, 經(jīng)過庫存維度處理后形成庫存信息表, 經(jīng)過消費者維度處理后形成消費者信息表.
圖4 數(shù)據(jù)處理ETL作業(yè)流程圖
各個維度與事實作業(yè)的二級作業(yè)流程圖如圖5所示. 由于該ETL流程會被重復使用, 數(shù)據(jù)流經(jīng)每個二級作業(yè)流程時, 首先檢查數(shù)據(jù)庫服務器中相應流程的表單是否存在, 如果存在, 執(zhí)行更新原表數(shù)據(jù)的轉(zhuǎn)換流程, 如果不存在, 需要在服務器端的數(shù)據(jù)庫中創(chuàng)建新的表格, 執(zhí)行插入數(shù)據(jù)的轉(zhuǎn)換流程.
圖5 各個維度的二級作業(yè)流程圖
(2) 轉(zhuǎn)換流程
作業(yè)流程是對整個ETL處理的總體規(guī)劃, 協(xié)調(diào)執(zhí)行過程和相關依賴性的ETL活動. 作業(yè)流程中對基礎數(shù)據(jù)和目標數(shù)據(jù)的映射關系的實施是通過轉(zhuǎn)換流程實現(xiàn)的, 經(jīng)過排序、去重復數(shù)據(jù)、字段選擇、平滑去噪等轉(zhuǎn)換操作, 最后實現(xiàn)加載到相應的維度或事實信息表中. 以訂單維度作業(yè)流程為例, 相應的插入數(shù)據(jù)轉(zhuǎn)換流程如圖6所示. 經(jīng)過訂單維度作業(yè)流程需要去除無用重復的冗余字段, 選擇有效和對后期數(shù)據(jù)分析有意義的字段, 對其中格式不統(tǒng)一的字段進行轉(zhuǎn)換(這個維度中主要是對日期字段轉(zhuǎn)換為年/月/日的格式), 同時與基礎數(shù)據(jù)中的零售戶信息進行零售戶編碼的檢校, 與產(chǎn)品維度表中的品牌編碼及品牌名稱進行檢校, 校驗通過形成有效數(shù)據(jù)插入新的數(shù)據(jù)庫訂單表中, 供后期分析處理使用.
本文結(jié)合GIS空間數(shù)據(jù)可視化管理及分析技術, 開發(fā)了貴州省某煙草公司卷煙銷售數(shù)據(jù)的GIS分析平臺, 可以對前面經(jīng)由數(shù)據(jù)分析工具KETTLE進行ETL處理后的銷售、采購和庫存等為多種維度數(shù)據(jù)進行初步的的分析挖掘和分析成果可視化展示,為提高卷煙銷售水平提供了決策支持依據(jù).
3.1 可視化系統(tǒng)構(gòu)建需求分析
卷煙營銷信息具有數(shù)據(jù)量大、結(jié)構(gòu)復雜、種類繁多、內(nèi)容豐富等諸多特點, 利用KETTLE對貴州省某煙草銷售公司積累下來的大量基礎數(shù)據(jù)進行ETL處理后, 形成了新的集成的可用于分析的集成的數(shù)據(jù)集. 同時, 地理空間區(qū)域?qū)煵莸匿N售有著不可忽視的影響. 本文根據(jù)各省、市、縣卷煙銷售公司和煙廠的歷史銷售數(shù)據(jù), 結(jié)合GIS空間數(shù)據(jù)可視化管理及分析技術, 建立了煙草銷售分析GIS系統(tǒng), 實現(xiàn)卷煙購銷存分析、品牌分析、市場分析、貢獻度分析和趨勢分析等數(shù)據(jù)分析工作.
圖6 訂單維度插入轉(zhuǎn)換流程圖
3.2 平臺設計
根據(jù)需求, 平臺共分為數(shù)據(jù)管理、報表分析、R數(shù)據(jù)分析以及GIS數(shù)據(jù)可視化四個功能模塊. 其中數(shù)據(jù)管理模塊對卷煙營銷數(shù)據(jù)進行增、刪、改、查等基本操作; 報表分析模塊, 針對不同的數(shù)據(jù), 形成報表分析, 包括有品牌占比圖、各季度品牌重要性對比圖、銷售走勢圖等, 提供決策支持; R數(shù)據(jù)分析, 基于R統(tǒng)計計算和制圖的功能, 提供查詢與預測分析; GIS可視化模塊, 結(jié)合了GIS可視化分析的功能, 地圖與卷煙銷售數(shù)據(jù)的結(jié)合, 實現(xiàn)了數(shù)據(jù)上圖可視化顯示, 分地區(qū)數(shù)據(jù)分析, 生成卷煙銷售數(shù)據(jù)專題圖.
3.3 平臺實現(xiàn)
本文采用了基于Java語言的J2EE框架開發(fā), 采用了Struts + Hibernate + Spring的輕量級框架開發(fā)了B/S系統(tǒng). 圖7給出了報表分析中的分季度各品牌煙草重要性對比圖, 圖8是GIS可視化中分區(qū)域統(tǒng)計煙草銷售分布餅狀圖.
圖7 分季度各品牌煙草重要性對比圖
本文針對貴州省某煙草公司卷煙銷售營銷數(shù)據(jù)分析和挖掘研究中數(shù)據(jù)處理和平臺開發(fā)的需求, 基于ETL-KETTLE的數(shù)據(jù)集成的過程及其關鍵技術, 制定了針對其現(xiàn)場業(yè)務數(shù)據(jù)優(yōu)化處理的ETL模型, 對數(shù)據(jù)進行了抽取、轉(zhuǎn)換、加載, 形成了分析型數(shù)據(jù), 完成了數(shù)據(jù)的初步抽取和集成實驗. ETL-KETTLE能夠高效地完成批量數(shù)據(jù)的遷移工作, 為后續(xù)的數(shù)據(jù)集成分析、數(shù)據(jù)挖掘提供了可靠的數(shù)據(jù)支撐.
在ETL-KETTLE處理后的集成數(shù)據(jù)的基礎上, 結(jié)合GIS空間數(shù)據(jù)可視化分析的技術, 本文設計并實現(xiàn)了卷煙銷售大數(shù)據(jù)可視化及分析平臺, 對卷煙品牌、銷售、采購和庫存等多種維度數(shù)據(jù)分空間區(qū)域進行了初步的統(tǒng)計分析挖掘和分析成果可視化展示, 從而為制定更優(yōu)化的企業(yè)卷煙營銷購銷存策略, 提高卷煙營銷的整體水平提供決策支持依據(jù).
圖8 基于GIS的煙草銷售餅狀圖
1 姚丹丹.基于數(shù)據(jù)挖掘的紅塔集團數(shù)據(jù)庫營銷系統(tǒng)的研究與實現(xiàn)[碩士學位論文].杭州:浙江理工大學,2013.
2 高山等.基于大數(shù)據(jù)思維的卷煙零售店微商圈分析研究. 電子技術與軟件工程, 2015,2:209–212.
3 聶佳,等.巴蜀中醫(yī)藥古籍醫(yī)案數(shù)據(jù)挖掘系統(tǒng)構(gòu)建及應用. 中國中醫(yī)藥圖書情報雜志,2015,4:13–15.
4 武劍.數(shù)據(jù)集成平臺中ETL的研究與設計[學位論文].北京: 華北電力大學,2007.
5 陳榮鑫,付永鋼,陳維斌.基于Pentaho的商業(yè)智能系統(tǒng).計算機工程與設計,2008,9:2407–2409.
6 余海釗.基于Pentaho的水泥企業(yè)商業(yè)智能信息系統(tǒng)研究與開發(fā)[碩士學位論文].長沙:中南大學,2010.
7 韓冰.基于商業(yè)智能的高校輔導員決策支持系統(tǒng)研究與應用[碩士學位論文].長春:東北師范大學,2013.
8 盧達.警用信息智能分析系統(tǒng)的研發(fā)與應用[碩士學位論文].北京:華北電力大學,2013.
9 尹曉楠,鄒曉濤,張冬.基于kettle的北京市水務普查數(shù)據(jù)的提取與轉(zhuǎn)換.中國水利,2013,21:57–59,42.
10 崔有文,周金海.基于KETTLE的數(shù)據(jù)集成研究.計算機技術與發(fā)展,2015,4:153–157.
11 Van DJ, Bouman R. Pentaho Solutions: Business Intelligence and DataWarehousing with Pentaho and MySQL. John Wiley & Sons Inc., 2009.
12 鐘華,馮文瀾,譚紅星,黃濤.面向數(shù)據(jù)集成的ETL系統(tǒng)設計與實現(xiàn).計算機科學,2004,31:87–90.
13 劉充.基于KETTLE的高校多源異構(gòu)數(shù)據(jù)集成研究及實踐.電子設計工程,2015,23:23–26.
14 崔友洋,崔有文.基于ETL–Kettle的中藥飲片企業(yè)商業(yè)智能研究.產(chǎn)業(yè)與科技論壇,2014,22:47–50.
Analysis and Visualization of Cigarette Sales Data Based on ETL-KETTLE
GUO Dan, FAN Hong
(State Key Laboratory of Information Engineering in Surveying, Mapping and Remote Sensing, Wuhan University, Wuhan 430079, China)
In this paper, based on the KETTLE which is an open source data analysis tool, an ETL process model is constructed to extract, transform and load the existing basic big data of the cigarette sales. Through the ETL model, the basic data is converted to analytical data, and the data integration can be implemented quickly and efficiently. In this paper, based on the integrated data, combining with the platform construction and visualization of GIS, the visualization and analysis system of the cigarette sales data is designed and implemented to provide data display and analysis platform for the enterprise data analysis and policy support.
ETL; KETTLE; data integration; GIS; visualization
國家自然科學基金(41471323);中國煙草公司貴州省公司科學研究與技術開發(fā)項目(合同號201407)
2016-04-12;收到修改稿時間:2016-06-21
[10.15888/j.cnki.csa.005592]