羅巍 劉功總
摘? 要:大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)是大數(shù)據(jù)應(yīng)用的基石。該文闡述了基于大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)的基本概念。對(duì)大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)的研究和工程應(yīng)用現(xiàn)狀進(jìn)行了介紹,總結(jié)了大數(shù)據(jù)數(shù)倉(cāng)庫(kù)的理論基礎(chǔ)和技術(shù)體系,并對(duì)大數(shù)據(jù)倉(cāng)庫(kù)的基本模塊以及大數(shù)據(jù)倉(cāng)庫(kù)多領(lǐng)域的應(yīng)用價(jià)值進(jìn)行了論述。
關(guān)鍵詞:大數(shù)據(jù);數(shù)據(jù)倉(cāng)庫(kù);理論基礎(chǔ);技術(shù)體系;應(yīng)用領(lǐng)域
中圖分類(lèi)號(hào):TP311? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A
1 大數(shù)據(jù)的發(fā)展背景
隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、人工智能等計(jì)算機(jī)技術(shù)的發(fā)展,大數(shù)據(jù)成為國(guó)內(nèi)外的熱點(diǎn)之一,同時(shí)大數(shù)據(jù)技術(shù)的發(fā)展如火如荼。
大數(shù)據(jù)的發(fā)展正在推動(dòng)科技領(lǐng)域的發(fā)展進(jìn)程,大數(shù)據(jù)不僅應(yīng)用在電商、社交等互聯(lián)網(wǎng)領(lǐng)域,也應(yīng)用在教育、金融等和我們生活相關(guān)的領(lǐng)域。在人工智能的研發(fā)領(lǐng)域,大數(shù)據(jù)也起到了重要的作用,尤其是在機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理等方面,大數(shù)據(jù)正在成為智能化社會(huì)的基礎(chǔ)。
2 數(shù)據(jù)倉(cāng)庫(kù)
2.1 數(shù)據(jù)倉(cāng)庫(kù)的介紹
數(shù)據(jù)倉(cāng)庫(kù)創(chuàng)始人W.H.Inmon定義了數(shù)據(jù)倉(cāng)庫(kù),“數(shù)據(jù)倉(cāng)庫(kù)是面向主題的、集成的、不可更新的,并隨時(shí)間不斷變化的數(shù)據(jù)集合,用以支持管理部門(mén)的決策分析過(guò)程”。
2.1 數(shù)據(jù)倉(cāng)庫(kù)的功能
數(shù)據(jù)倉(cāng)庫(kù)通常是為了支持公司高層管理部門(mén)和運(yùn)營(yíng)分析部門(mén)進(jìn)行決策而設(shè)立的。通常是構(gòu)造一個(gè)適合部門(mén)或應(yīng)用場(chǎng)景需求的數(shù)據(jù)倉(cāng)庫(kù),稱(chēng)為數(shù)據(jù)集市。根據(jù)不同的要求,創(chuàng)建數(shù)據(jù)集市,可以更好地為決策分析服務(wù)[1]。
2.3 數(shù)據(jù)倉(cāng)庫(kù)的架構(gòu)
隨著數(shù)據(jù)倉(cāng)庫(kù)相關(guān)技術(shù)棧的發(fā)展,數(shù)據(jù)倉(cāng)庫(kù)的基本架構(gòu)已經(jīng)形成,基本的數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)包括了數(shù)據(jù)源、數(shù)據(jù)存儲(chǔ)與計(jì)算、OLAP服務(wù)器與前端工具與應(yīng)用。
數(shù)據(jù)源:由多個(gè)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)匯總而來(lái)。
數(shù)據(jù)存儲(chǔ)與計(jì)算:負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行清洗和加工,并構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的基本元數(shù)據(jù)系統(tǒng)。
OLAP服務(wù)器:對(duì)多維數(shù)據(jù)模型的分析需求的數(shù)據(jù)進(jìn)行了再次重組,支持用戶多種角度和多種層次的分析[2]。
前端工具與應(yīng)用:主要有數(shù)據(jù)倉(cāng)庫(kù)的查詢、分析、報(bào)表工具以及基于數(shù)據(jù)倉(cāng)庫(kù)開(kāi)發(fā)的各種應(yīng)用,主流的有Tableau、Power BI、MicroStrategy、QlikView、FineBI等。
3 大數(shù)據(jù)的數(shù)據(jù)倉(cāng)庫(kù)
3.1 大數(shù)據(jù)的數(shù)據(jù)倉(cāng)庫(kù)介紹
對(duì)于大數(shù)據(jù)來(lái)說(shuō),數(shù)據(jù)倉(cāng)庫(kù)承載著整個(gè)企業(yè)的全業(yè)務(wù)的數(shù)據(jù)。早期數(shù)倉(cāng)在關(guān)系型數(shù)據(jù)如Oracle,MySQL上。到大數(shù)據(jù)時(shí)代,基于Hadoop生態(tài)的大數(shù)據(jù)架構(gòu),數(shù)倉(cāng)基本上都是基于hive的數(shù)倉(cāng)。
3.2 大數(shù)據(jù)的數(shù)據(jù)倉(cāng)庫(kù)與傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的比較
傳統(tǒng)數(shù)倉(cāng)主要根據(jù)SQL Server,MySQL等關(guān)系型數(shù)據(jù)庫(kù)的范式設(shè)計(jì)原則設(shè)計(jì),當(dāng)前基于傳統(tǒng)數(shù)據(jù)庫(kù)搭建的數(shù)據(jù)倉(cāng)庫(kù)已經(jīng)很少了。
離線數(shù)倉(cāng)架構(gòu)是在大數(shù)據(jù)領(lǐng)域應(yīng)運(yùn)而生的。主要是基于Hadoop生態(tài)組件的大數(shù)據(jù)技術(shù),架構(gòu)方案中以hive為主。
實(shí)時(shí)數(shù)倉(cāng)是近幾年提出的一種數(shù)倉(cāng)架構(gòu),與離線數(shù)倉(cāng)方案有相似之處,不同之處在于數(shù)據(jù)是實(shí)時(shí)的。
3.3 大數(shù)據(jù)數(shù)倉(cāng)邏輯分層
大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)從數(shù)據(jù)源到采集與多層清洗加工,形成以數(shù)據(jù)資產(chǎn)為核心的數(shù)據(jù)倉(cāng)庫(kù),在這一過(guò)程中,形成了一套規(guī)范的數(shù)據(jù)邏輯分層。數(shù)據(jù)邏輯分層包括ODS層、DWD層、DWS層和ADS層。
ODS層:全稱(chēng)Operation Data Store,用于存放原始數(shù)據(jù)信息,和數(shù)據(jù)源保持一致。
DWD層:全稱(chēng)Data Warehouse Detail,數(shù)據(jù)倉(cāng)庫(kù)明細(xì)層,包括行為數(shù)據(jù)和日志數(shù)據(jù)信息子表和一些寬表,主要完成數(shù)據(jù)的清洗、轉(zhuǎn)換等工作。
DWS層:全稱(chēng)Data Warehouse Summary,數(shù)據(jù)倉(cāng)庫(kù)匯總層,是最直接體系數(shù)據(jù)資產(chǎn)的層,一般是用來(lái)匯總數(shù)據(jù)的,現(xiàn)在已經(jīng)逐步弱化,主要完成挖掘、數(shù)據(jù)分析等工作。
ADS層:全稱(chēng)Application Data Store,數(shù)據(jù)應(yīng)用層,高度匯總數(shù)據(jù),主要用于報(bào)表展示。
3.4 大數(shù)據(jù)數(shù)倉(cāng)應(yīng)用場(chǎng)景
隨著國(guó)內(nèi)外互聯(lián)網(wǎng)的發(fā)展,5G信息化到來(lái),大數(shù)據(jù)數(shù)倉(cāng)應(yīng)用如同雨后春筍,各個(gè)行業(yè)、各個(gè)企業(yè)都開(kāi)始采用大數(shù)據(jù)數(shù)倉(cāng)技術(shù)服務(wù)于自己的業(yè)務(wù)。
3.4.1 理解用戶需求
企業(yè)通過(guò)搜集多方面的數(shù)據(jù),建立數(shù)據(jù)模型并進(jìn)行預(yù)測(cè)。例如,通過(guò)大數(shù)據(jù)倉(cāng)庫(kù)的應(yīng)用,沃爾瑪可以更加精準(zhǔn)地預(yù)測(cè)哪個(gè)產(chǎn)品會(huì)熱賣(mài)[3]。
3.4.2 智能設(shè)備
基于大數(shù)據(jù)數(shù)倉(cāng)進(jìn)行數(shù)據(jù)挖掘分析,形成“設(shè)備畫(huà)像”,通過(guò)全方位的數(shù)據(jù)可使設(shè)備更智能。例如,國(guó)內(nèi)的百度基于大數(shù)據(jù)倉(cāng)庫(kù)研發(fā)的自動(dòng)駕駛技術(shù)。
3.4.3 智慧城市
用戶出行數(shù)據(jù)、天氣數(shù)據(jù)、交通信息數(shù)據(jù)和社交網(wǎng)絡(luò)數(shù)據(jù)等,這些數(shù)據(jù)形成了大量的數(shù)據(jù)資產(chǎn),基于這些數(shù)據(jù)形成的大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù),組成了“城市大腦”,可以智慧化的協(xié)調(diào)城市基本生活。
3.4.4 智能金融
金融數(shù)據(jù)具有數(shù)據(jù)量大、數(shù)據(jù)安全性高的特點(diǎn),對(duì)金融交易系統(tǒng)提出了較高的要求。金融系統(tǒng)以大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)為基礎(chǔ)進(jìn)行數(shù)據(jù)挖掘與數(shù)據(jù)分析,以此來(lái)快速實(shí)現(xiàn)金融數(shù)據(jù)分析以及識(shí)別欺詐行為。
4 大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)的構(gòu)建
4.1 數(shù)據(jù)采集存儲(chǔ)同步
4.1.1 數(shù)據(jù)采集
設(shè)計(jì)數(shù)據(jù)埋點(diǎn),例如SDK埋點(diǎn)、JS埋點(diǎn)、后端服務(wù)埋點(diǎn)等,基于數(shù)據(jù)采集組件,例如Flume、Fluentd等數(shù)據(jù)采集組件,實(shí)現(xiàn)數(shù)據(jù)采集,數(shù)據(jù)流轉(zhuǎn)到大數(shù)據(jù)消息組件中,通常是Kafka組件,再基于大數(shù)據(jù)批處理或者流處理Spark、Flink進(jìn)行數(shù)據(jù)的清洗加工。
4.1.2 數(shù)據(jù)存儲(chǔ)
隨著App、微信小程序等應(yīng)用越來(lái)越多,用戶產(chǎn)生的行為、系統(tǒng)產(chǎn)生的日志數(shù)據(jù)越來(lái)越多,已有的關(guān)系型數(shù)據(jù)庫(kù)很難滿足需求,基于Hadoop的分布式存儲(chǔ)系統(tǒng)HDFS是數(shù)據(jù)倉(cāng)庫(kù)/數(shù)據(jù)平臺(tái)最佳、最好、最經(jīng)濟(jì)、最實(shí)用的數(shù)據(jù)存儲(chǔ)方案[4]。數(shù)據(jù)采集和存儲(chǔ)完成后,需要進(jìn)行數(shù)據(jù)計(jì)算加工。在離線計(jì)算方面,Spark負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行加工清洗,并存儲(chǔ)到分布式文件存儲(chǔ)系統(tǒng)HDFS上,與hive表進(jìn)行關(guān)聯(lián),可方便進(jìn)行SQL查詢。而在實(shí)時(shí)計(jì)算方面,Spark Streaming、Flink都是不錯(cuò)的選擇。
4.1.3 數(shù)據(jù)同步
不同的數(shù)據(jù)庫(kù)、數(shù)據(jù)存儲(chǔ)系統(tǒng)、分布式文件系統(tǒng)之間要進(jìn)行數(shù)據(jù)同步,是大數(shù)據(jù)經(jīng)常面臨的問(wèn)題。例如將基于Hadoop的分布式文件系統(tǒng)HDFS上的數(shù)據(jù)同步到MySQL數(shù)據(jù)庫(kù)中,可以通過(guò)Sqoop進(jìn)行數(shù)據(jù)遷移同步。當(dāng)前阿里開(kāi)源的DataX也是一個(gè)很好的數(shù)據(jù)遷移解決工具。
4.2 模型基礎(chǔ)
4.2.1 維度
數(shù)據(jù)倉(cāng)庫(kù)中所說(shuō)的維度就是在進(jìn)行維度建模時(shí)最基礎(chǔ)的單元項(xiàng),將度量定義成事實(shí),將環(huán)境定義成維度。
4.2.2 事實(shí)
數(shù)據(jù)倉(cāng)庫(kù)中所說(shuō)事實(shí)指的是度量,事實(shí)表是大數(shù)據(jù)倉(cāng)庫(kù)維度建模中最核心的內(nèi)容,緊緊圍繞著用戶基本信息、用戶行為信息等業(yè)務(wù)過(guò)程來(lái)進(jìn)行具體設(shè)計(jì)的。
4.2.3 數(shù)據(jù)域
大數(shù)據(jù)倉(cāng)庫(kù)中所說(shuō)的數(shù)據(jù)域是指將各種用戶信息、用戶行為等具體的業(yè)務(wù)過(guò)程維度進(jìn)行抽象的集合。大數(shù)據(jù)倉(cāng)庫(kù)劃分?jǐn)?shù)據(jù)域的過(guò)程中,要充分考慮其是一個(gè)獨(dú)立的業(yè)務(wù)事件。
4.2.4 鉆取
大數(shù)據(jù)倉(cāng)庫(kù)中所說(shuō)的鉆取是變換分析的粒度,改變維度進(jìn)行具體數(shù)據(jù)場(chǎng)景分析。大數(shù)據(jù)倉(cāng)庫(kù)中所說(shuō)的鉆取可以分為向上鉆?。╮oll up)和向下鉆?。╠rill down)。向上鉆取是一系列的細(xì)節(jié)數(shù)據(jù)通過(guò)聚合得到的匯總數(shù)據(jù)。向下鉆取是從聚合的匯總數(shù)據(jù)解析到的細(xì)節(jié)數(shù)據(jù)[5]。
4.3 數(shù)據(jù)建模
常用的數(shù)據(jù)模型有星型模型、雪花模型、星座模型。
4.3.1 星型模型
星型模式(Star Schema)的維度建模是由一個(gè)事實(shí)表和一組維表組成的,維表圍繞核心呈星型分布,比較常用。
4.3.2 雪花模型
雪花模式(Snowflake Schema),它的維表按照業(yè)務(wù)規(guī)則可連接很多個(gè)相關(guān)的子維表。雪花模型就相當(dāng)于將星型模型中的大維表,按一定規(guī)則進(jìn)行拆分。但是這種模式會(huì)導(dǎo)致開(kāi)發(fā)難度增大。
4.3.3 星座模型
星座模型(Fact Constellation Schema),就是數(shù)據(jù)場(chǎng)景下的事實(shí)表不只一個(gè),而維表是多個(gè)事實(shí)表共用的,這樣就形成了星座模型。
4.4 元數(shù)據(jù)管理
元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù),元數(shù)據(jù)是大數(shù)據(jù)倉(cāng)庫(kù)的底層基本支撐,元數(shù)據(jù)貫穿數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)的入庫(kù)、數(shù)據(jù)的計(jì)算、數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的轉(zhuǎn)化和數(shù)據(jù)的遷移流程。合理的元數(shù)據(jù)管理,可以使大數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)計(jì)算更加透明化。元數(shù)據(jù)可分為技術(shù)元數(shù)據(jù)、業(yè)務(wù)元數(shù)據(jù)2類(lèi)。
4.4.1 技術(shù)元數(shù)據(jù)
大數(shù)據(jù)倉(cāng)庫(kù)的技術(shù)元數(shù)據(jù)顧名思義就是指技術(shù)流程細(xì)節(jié)、規(guī)則等的基本描述。常見(jiàn)的技術(shù)元數(shù)據(jù)包括分布式計(jì)算系統(tǒng)運(yùn)行元數(shù)據(jù)、調(diào)度任務(wù)中的調(diào)度信息、數(shù)據(jù)質(zhì)量跟運(yùn)維相關(guān)的元數(shù)據(jù)。
4.4.2 業(yè)務(wù)元數(shù)據(jù)
大數(shù)據(jù)倉(cāng)庫(kù)的業(yè)務(wù)元數(shù)據(jù)指從業(yè)務(wù)場(chǎng)景出發(fā)來(lái)描述業(yè)務(wù)的基本信息[6],包括業(yè)務(wù)名稱(chēng)、業(yè)務(wù)流程和基本業(yè)務(wù)術(shù)語(yǔ)等信息。
5 結(jié)語(yǔ)
綜上所述,數(shù)據(jù)倉(cāng)庫(kù)的建設(shè)是一個(gè)綜合性技術(shù)。因此,一個(gè)完備、完善、健全,能承擔(dān)大業(yè)務(wù)場(chǎng)景的大數(shù)據(jù)倉(cāng)庫(kù)建設(shè),既要有基于大數(shù)據(jù)的可靠的技術(shù)方案與技術(shù)架構(gòu),還要對(duì)現(xiàn)有公司的業(yè)務(wù)場(chǎng)景有清晰的理解,透徹的分析。
參考文獻(xiàn)
[1]孟維一.基于數(shù)據(jù)倉(cāng)庫(kù)的保險(xiǎn)商業(yè)智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2016.
[2]王珊.數(shù)據(jù)倉(cāng)庫(kù)技術(shù)與聯(lián)機(jī)分析處理[M].北京:科學(xué)出版社,1998.
[3]李陽(yáng).淺談互聯(lián)網(wǎng)時(shí)代大數(shù)據(jù)的應(yīng)用[J].環(huán)球市場(chǎng),2018(25):394.
[4]張勇.基于大數(shù)據(jù)的存儲(chǔ)架構(gòu)的分析與實(shí)現(xiàn)[J].宿州教育學(xué)院學(xué)報(bào),2016(6):110-111.
[5]蹇浪.數(shù)據(jù)倉(cāng)庫(kù)技術(shù)在電廠數(shù)據(jù)分析和管理中的應(yīng)用[D].北京:華北電力大學(xué),2006.
[6]江疆,黃劍文,楊秋勇.基于元數(shù)據(jù)的數(shù)據(jù)資源管理機(jī)制的研究[J].國(guó)網(wǎng)技術(shù)學(xué)院學(xué)報(bào),2016,19(2):33-36.