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