張運濤 鞏華倫 徐召陽
摘要:隨著信息化的不斷發(fā)展,各行各業(yè)已開發(fā)了眾多計算機信息系統(tǒng)積累了大量的基礎數(shù)據(jù)。然而,由于系統(tǒng)建設時期,開發(fā)部門、所使用設備、技術發(fā)展階段和能力水平的不同,造成了數(shù)據(jù)存儲分散和過量的數(shù)據(jù)冗余和數(shù)據(jù)不一致性的問題,使得對數(shù)據(jù)資源難以高效的利用,管理層無法快速從海量數(shù)據(jù)中獲得有效的決策數(shù)據(jù)支持。因此如何有效的數(shù)據(jù)收集,數(shù)據(jù)存儲,數(shù)據(jù)抽取,整合不同來源的基礎數(shù)據(jù)是當前我們需要解決的主要問題。
關鍵詞:海量數(shù)據(jù);決策;spark;數(shù)據(jù)抽取
背景
隨著數(shù)據(jù)量的不斷增加各企業(yè)對如何實現(xiàn)海量數(shù)據(jù)的收集存儲抽取整合為一體系統(tǒng)需求比較強烈,因為海量的數(shù)據(jù)只有合理有效的被利用才能發(fā)揮出數(shù)據(jù)本身的最大價值,為了能夠準確快速高效的為企業(yè)管理者提供決策支撐,解決數(shù)據(jù)源分散、數(shù)據(jù)冗雜等特點,并對海量數(shù)據(jù)集整合,實現(xiàn)數(shù)據(jù)實時可視化查詢和關聯(lián)查詢,解決實際需求,解決數(shù)據(jù)整合的繁瑣,加快企業(yè)業(yè)務效率。
系統(tǒng)架構設計
基于spark的數(shù)據(jù)抽取整合決策分析系統(tǒng)一個基于數(shù)據(jù)處理系統(tǒng),主要是面對數(shù)據(jù)源異構,缺乏規(guī)范的處理方法和經驗的數(shù)據(jù)集成系統(tǒng),可以通過本系統(tǒng)可以達到將不同數(shù)據(jù)源數(shù)據(jù)庫中多個相似的數(shù)據(jù)表整合為一個數(shù)據(jù)表的過程,可以將雜亂的海量數(shù)據(jù)進行抽取統(tǒng)一化整理,提高數(shù)據(jù)整合的效率。通過本系統(tǒng)可以查看整合后數(shù)據(jù)的來源保證數(shù)據(jù)的可靠性;此外自動聚類算法實現(xiàn)數(shù)據(jù)表和數(shù)據(jù)表之間關系的分析,在我們查詢表的數(shù)據(jù)同時是可以查看到哪些表是相關聯(lián)的。
本系統(tǒng)主要的功能分為以下幾個:
(1)數(shù)據(jù)收集:收集不同系統(tǒng),平臺,時期產生的多源異構數(shù)據(jù)。系統(tǒng)需要實現(xiàn)對數(shù)據(jù)表的管理包括創(chuàng)建刪除修改基本操作,字段整合,數(shù)據(jù)遷移。根據(jù)系統(tǒng)對數(shù)據(jù)處理的時效性可將數(shù)據(jù)據(jù)歸集分成離線和實時兩種。對于離線的數(shù)據(jù)集,采用DataX工具來進行異構數(shù)據(jù)源的同步。而對實時數(shù)據(jù)的處理,采用的是Kafka來進行實時數(shù)據(jù)的對接。Kafka每秒可以處理幾十萬條消息,它的延遲最低只有幾毫秒,每個topic可以分多個partition,consumer group 對partition進行consume操作。Kafka集群支持熱擴展,可以收集各種服務的日志。其作為中間件不僅可以對消息起到緩存作用,并可以對實時計算提供源源不斷的數(shù)據(jù)。對無論何種方式收集來的數(shù)據(jù),我們都需要驗證數(shù)據(jù)的合法性,準確性,防止數(shù)據(jù)傳輸收集過程中被篡改。在我們對數(shù)據(jù)集進行存儲時,要加上元數(shù)據(jù)的標識,包括數(shù)據(jù)的來源,數(shù)據(jù)的安全級別以及其他必要的屬性,以便后期的數(shù)據(jù)檢索和管理。
(2)數(shù)據(jù)處理:對于收集到的原生數(shù)據(jù)不可避免的會存在數(shù)據(jù)格式無法滿足數(shù)據(jù)處理要求的情況,需要對這些數(shù)據(jù)集進行處理轉化為所需的較為規(guī)整的數(shù)據(jù)。主要包含數(shù)據(jù)的標準化,清洗與整合操作。對于離線數(shù)據(jù)主要是定時批量去統(tǒng)計數(shù)據(jù)。而對與實時數(shù)據(jù)的處理采用的是Spark Streaming,其本身具有低延遲高性能 容錯性等特點可以較好的滿足數(shù)據(jù)實時處理要求。
(3)數(shù)據(jù)的存儲和安全:大數(shù)據(jù)一重要問題是保證數(shù)據(jù)的存儲和安全,本系統(tǒng)根據(jù)業(yè)務應用的需求,構建了一套具有高可擴展性,數(shù)據(jù)處理能力的多元異構數(shù)據(jù)存儲中心,包含海量分布式文件系統(tǒng),非關系型數(shù)據(jù)。本系統(tǒng)以數(shù)據(jù)為中心數(shù)據(jù)安全則是重中之重,可以從訪問控制,數(shù)據(jù)保護,網(wǎng)絡安全,和事件監(jiān)控四個方面保護數(shù)據(jù)安全。
業(yè)務流程分析設計
主要的業(yè)務流程為開始創(chuàng)建數(shù)據(jù)表,即基礎表信息的創(chuàng)建;然后為數(shù)據(jù)表添加映射,該映射為原始數(shù)據(jù)表與整合數(shù)據(jù)表之間的映射,映射的目的是進行整合數(shù)據(jù)表的準備工作;然后將字段按照映射進行整合,將整合后的數(shù)據(jù)表按照字段基礎屬性創(chuàng)建實體表,并將原先的數(shù)據(jù)按照整合字段與字段之間的映射關系遷移到所創(chuàng)建的實體整合表中;其次對所遷移的數(shù)據(jù)進行一致性檢測,檢測并去除格式不符或一致的數(shù)據(jù),然后將數(shù)據(jù)標準輸出,以下是主要的業(yè)務流程圖2-1。
Spark計算框架
Spark是專為大規(guī)模數(shù)據(jù)處理而設計的并行框架,擁有Hadoop Mapreduce所具有的優(yōu)點,但不同的是,其中間結果可以保存在內存中,從而減少了讀寫HDFS文件的次數(shù),因此會具有較快的處理速度。Spark提供了量的的庫,開發(fā)者可以在一個應用程序中無縫組合使用這些庫,具有更通用性。對于本系統(tǒng)來說,主要使用的是Spark Streaming,核心思想是將Stream數(shù)據(jù)分成小的時間片段,以類似batch批處理的方式來處理這小部分數(shù)據(jù),實現(xiàn)實時的計算處理。
平臺系統(tǒng)架構
本系統(tǒng)利用 Kafka 和 Spark Streaming 框架設計的分布式流數(shù)據(jù)處理平臺的系統(tǒng)架構如圖所示,包括數(shù)據(jù)接收部分、Kafka 消息訂閱系統(tǒng)、數(shù)據(jù)處理程序、以及數(shù)據(jù)存儲部分。通過對數(shù)據(jù)整合系統(tǒng)的設計與開發(fā),對數(shù)據(jù)整合知識認識更深入,以及數(shù)據(jù)整合系統(tǒng)在今后企業(yè)管理中的必要性,數(shù)據(jù)整合也需要不斷去深入挖掘數(shù)據(jù)進行對數(shù)據(jù)的利用。分析數(shù)據(jù)間的關聯(lián)、內容等特性。對于數(shù)據(jù)的安全和完整性,所有的企業(yè)都是尤為重視的,面對大的數(shù)據(jù)量和多種類的數(shù)據(jù)類型,要完善對數(shù)據(jù)的維護,使數(shù)據(jù)更具有安全性和權威性。
參考文獻
[1]Janis Kampars.An Approach to Parallelization of Remote Data Integration Tasks[D].Riga Technical University: Janis Kampars; Janis Grabis,2011.
[2]滑玉.JSP程序設計[M].人民郵電出版社:范立鋒,喬世權,程文彬,2009.
[3]何麗,龔旺.jQuery在AJAX技術框架中頁面加載的應用[J].計算機時代,2011,(8): 25-26
[4]Wenlan Chen.Enterprise Information Management System Based on J2EE and MVC Mode[M].Springer Berlin Heidelberg:2014-06-15.
[5]韓德志,陳旭光,雷雨馨,等.基于 Spark Streaming 的實時數(shù)據(jù)分析系統(tǒng)及其應用.計算機應用,2017,37(5):1263–1269.
[6]龔瓊宇.科學數(shù)據(jù)整合技術應用研究[C].中國疾病預防控制中心:龔瓊宇,2009.
[7]李藝.大數(shù)據(jù)挖掘:系統(tǒng)方法與實例分析[M].機械工業(yè)出版社:周英,卓金武,卞月青,2016.