一種基于數(shù)據(jù)加工中心的數(shù)據(jù)流式處理方法
描述[0001]本發(fā)明涉及大數(shù)據(jù)處理描述,,特別是一種基于數(shù)據(jù)加工中心的數(shù)據(jù)流式處理方法,。背景[0002]無論用海量數(shù)據(jù)還是大數(shù)據(jù)來表征這個時代,數(shù)據(jù)規(guī)模龐大,、增長迅速,、類型繁 多,、結構各異已成為無法回避的現(xiàn)實問題,。如何把繁雜的大數(shù)據(jù)變成我們能應付的、有效的 “小”數(shù)據(jù),,即針對特定問題而構建一個千凈,、完備的數(shù)據(jù)集,這一過程變得尤為重要,。[0003]大數(shù)據(jù)治理和分析是在大數(shù)據(jù)處理過程中非常棘手的問題,,如何做到處理的及時 性、靈活性和準確性尤為重要,。目前在互聯(lián)網(wǎng)行業(yè)中通常采用犧牲靈活型和準確性(甚至允 許丟失部分數(shù)據(jù))的方式來換取數(shù)據(jù)處理的及時性,,但是在某些行業(yè)中,數(shù)據(jù)處理的準確性 是非常重要的,,同時又要確保其及時性和穩(wěn)定性,。針對這種需求就生出的內(nèi)存池,共享內(nèi)存 以及管道等技術拼裝出數(shù)據(jù)加工中心,,數(shù)據(jù)處理規(guī)則可以在數(shù)據(jù)加工中心中靈活配置,,數(shù) 據(jù)流在加工中心“流”過后,加工中心就會根據(jù)配置業(yè)務規(guī)則提供相應的組件對數(shù)據(jù)進行實 時處理,,經(jīng)過加工中心處理后的數(shù)據(jù)可以通過統(tǒng)一源管理對外提供數(shù)據(jù),。[0004]傳統(tǒng)的數(shù)據(jù)處理中心,數(shù)據(jù)處理步驟過程中數(shù)據(jù)落地,,數(shù)據(jù)處理如排序,,剔重,過 濾等等功能固化,,增加特性化數(shù)據(jù)處理難,,功能可擴展性差,數(shù)據(jù)處理流向無法靈活控制,。 目前許多的大數(shù)據(jù)應用平臺不能夠靈活的配置各種數(shù)據(jù)源之間的互通,,只能單一的從一種 數(shù)據(jù)源同步到另外一種數(shù)據(jù)源。同時大多數(shù)的大數(shù)據(jù)應用平臺不能夠支持流式處理,,即在 一個數(shù)據(jù)加工治理流程中需要多次的對數(shù)據(jù)進行讀寫,,這樣不僅使得機器的10負載過高, 而且整個數(shù)據(jù)加工和治理的速度將大打折扣,,在很多時候都不能滿足數(shù)據(jù)的及時性要求,。 也有一些大數(shù)據(jù)應用平臺不能夠支持很多種數(shù)據(jù)的加工方法,也不能夠靈活的配置加工方 法,,只能夠單一的滿足一些業(yè)務要求,。[0005]阿里大數(shù)據(jù)應用平臺是阿里公司旗下產(chǎn)品的數(shù)據(jù)管理與分析平臺,其靈活的配置 任意數(shù)據(jù)源互通,,具備統(tǒng)一的數(shù)據(jù)交換協(xié)議,,可插件化開發(fā)數(shù)據(jù)處理功能,,具有功能全面的 流式計算集群。該應用平臺處理來自云梯和飛天以及HBase和OceanBase等系統(tǒng)數(shù)據(jù),,但 是就該平臺而言目前在系統(tǒng)處理中應用相對獨立,,沒有將數(shù)據(jù)流串聯(lián)起來。[0006]相關術語:ETL: ETL是Extract-Transform-Load的縮寫,,中文名稱為數(shù)據(jù)提取,、轉換和加載。是 構建數(shù)據(jù)倉庫的重要一環(huán),,用戶從數(shù)據(jù)源抽取出所需的數(shù)據(jù),,經(jīng)過數(shù)據(jù)清洗,最終按照預 先定義好的數(shù)據(jù)倉庫模型,,將數(shù)據(jù)加載到數(shù)據(jù)倉庫中去。[0007]流式處理:流式處理利用管道模式使海量數(shù)據(jù)在生產(chǎn)線中流動,,加工組件實現(xiàn)對 數(shù)據(jù)清洗,,轉化,拆分,,入庫等操作,。[0008]數(shù)據(jù)加工中心:一套完備的數(shù)據(jù)處理中心,可以對海量數(shù)據(jù)排重,維度替換,,加密去隱私化,,數(shù)據(jù)分類,聚類等等,。內(nèi)容[0009]本發(fā)明要解決的技術問題為:通過利用大數(shù)據(jù)平臺采用數(shù)據(jù)流式處理,,提高大數(shù) 據(jù)處理速度,擴大可支持的數(shù)據(jù)加工方法種類范圍,,同時在大數(shù)據(jù)處理過程中能夠靈活的 配置各種數(shù)據(jù)源之間的互通,。[0010]本發(fā)明采取的技術手段具體為:一種基于數(shù)據(jù)加工中心的數(shù)據(jù)流式處理方法,所 述數(shù)據(jù)加工中心中預定義有包括數(shù)據(jù)校驗,、排序,、聚合和分組的加工方法步驟,以及兩個不 同加工方法步驟之間的連接關系,;數(shù)據(jù)加工中心還設置有用于連接數(shù)據(jù)源的數(shù)據(jù)源接入端 口,、用于連接用戶界面的數(shù)據(jù)加工方法及流程定義接入端口、目標數(shù)據(jù)輸出端口以及用于 連接流程監(jiān)控單元的加工流程監(jiān)控接口,;基于上述數(shù)據(jù)加工中心的數(shù)據(jù)流式處理方法包括以下步驟:1)數(shù)據(jù)獲?。和ㄟ^數(shù)據(jù)源接入端口獲取數(shù)據(jù)源;數(shù)據(jù)源接入端口連接的數(shù)據(jù)源類型包 括傳統(tǒng) oracle,、db2,、mysql 數(shù)據(jù)庫,,MPP 數(shù)據(jù)庫 Greenplum、teradata,,以及 hdfs,、HBASE、 HIVE數(shù)據(jù)庫,;2)流式處理配置:為已獲取的數(shù)據(jù)配置“管道”節(jié)點,,利用共享內(nèi)存存儲已獲取到的數(shù) 據(jù);3)數(shù)據(jù)加工方法配置:根據(jù)用戶通過數(shù)據(jù)加工方法及流程定義接入端口配置的數(shù)據(jù)加 工方法及數(shù)據(jù)加工流程,,選擇和配置相應的加工方法及多個加工方法的流程排序,;為已保 存在共享內(nèi)存中的數(shù)據(jù)配置“轉換計算”節(jié)點,各“轉換計算”節(jié)點分別對應一種加工方法,; 同時在相鄰“轉換計算”節(jié)點之間配置“管道”節(jié)點,,使得數(shù)據(jù)通過管道在依次連接的轉換 計算節(jié)點之間流轉同時被處理;4)目標數(shù)據(jù)源的獲得:將步驟3)中最后一個轉換計算節(jié)點輸出的數(shù)據(jù)通過目標數(shù)據(jù) 輸出端口輸出至目標數(shù)據(jù)源中,。[〇〇11] 步驟1)中,,本發(fā)明支持多種數(shù)據(jù)源的數(shù)據(jù)獲取。數(shù)據(jù)獲取,,即在加工配置系統(tǒng)中 配置“抽取”節(jié)點,,如數(shù)據(jù)源為DB2,則配置“DB2抽取”,同時配置抽取的詳細規(guī)則,,如抽取的 表名規(guī)則等,。本發(fā)明對數(shù)據(jù)源中數(shù)據(jù)的獲取為現(xiàn)有技術。步驟2)利用共享內(nèi)存對數(shù)據(jù)進 行存儲,,可使得數(shù)據(jù)從數(shù)據(jù)源如DB2中抽取出來后不會落地,。經(jīng)過步驟3)后,數(shù)據(jù)即已根 據(jù)用戶定義的加工方法進行加工,,并得到了相應的目標數(shù)據(jù)源,,此時如果還要將數(shù)據(jù)同步 到其他的數(shù)據(jù)源中,可以配置“裝載”節(jié)點,,如要將加工完成的數(shù)據(jù)同步到HDFS中,,則在步 驟4中的“管道”節(jié)點后面配置“HDFS裝載”節(jié)點,來完成數(shù)據(jù)同步,。[0012]本發(fā)明在應用時,,用戶可通過可視化的用戶界面配置數(shù)據(jù)加工方法和定義數(shù)據(jù)加 工流程,如果缺少想要的數(shù)據(jù)加工方法,可以以插件的方式添加組件,,也就是添加加工方 法,。用戶通過對不同加工方法的組合得到想到的加工流程。數(shù)據(jù)加工中心將用戶定義的加 工方法和流程保存起來,,生成加工計劃,,并對其中的加工任務進行解析,。在進行流式處理加 工時,首先要從數(shù)據(jù)源中采集相關數(shù)據(jù),,數(shù)據(jù)源可以是不同類型的數(shù)據(jù)庫也可以是文件,,然 后根據(jù)加工任務的解析結果,對所獲取的數(shù)據(jù)源提供的數(shù)據(jù)進行逐步加工,。[0013]本發(fā)明的流式數(shù)據(jù)加工處理方法中僅存在唯一一次讀取數(shù)據(jù)源中數(shù)據(jù)的操作,,后 續(xù)便以共享內(nèi)存的方式儲存數(shù)據(jù),以便讓數(shù)據(jù)流向一個或者是多個不同的數(shù)據(jù)加工方法,。 將加工完成的數(shù)據(jù)寫入到目標數(shù)據(jù)源中,,也是整個數(shù)據(jù)加工流程中的唯一一次寫入操作。[0014]數(shù)據(jù)在加工過程中,,用戶可以通過流程監(jiān)控單元實現(xiàn)實時的監(jiān)控流程,,流程監(jiān)控單元可將獲取到的監(jiān)控信息輸出至可視化的用戶界面中,例如當前運行到了哪個加工方 法,,運行了多長時間等等,。[0015]有益效果本發(fā)明通過利用流式處理方式,采集不同源的數(shù)據(jù)到加工中心,,將任意數(shù)據(jù)源數(shù)據(jù)互 通,并對數(shù)據(jù)做各種各樣的加工或處理,,保證整個過程只讀取和寫入一次數(shù)據(jù),,提高了數(shù)據(jù) 處理的速度。且本發(fā)明可以支持非常豐富的加工方法,,包括數(shù)據(jù)校驗,,數(shù)據(jù)清洗,庫外計算,, 對結構化數(shù)據(jù)中的某些字段做空值,,長度,類型等等校驗,,對數(shù)據(jù)進行排序,,剔重,過濾等,, 對數(shù)據(jù)進行分組和聚合等,,這些方法全部都可以由用戶通過用戶界面靈活的配置或定制。 同時本發(fā)明的加工中心設置有用于連接流程監(jiān)控單元的加工流程監(jiān)控接口,,能夠很直觀的 監(jiān)控整個數(shù)據(jù)加工流程,,方便統(tǒng)一管控。附圖說明[0016]圖1所示為本發(fā)明數(shù)據(jù)流式加工系統(tǒng)原理示意圖,;圖2所示為本發(fā)明的數(shù)據(jù)處理流程示意圖,;圖3所示為本發(fā)明的數(shù)據(jù)流式處理流程示意圖,。實施[0017]以下結合附圖和具體實施例進一步說明。[0018]如圖1所示,,本發(fā)明的一種基于數(shù)據(jù)加工中心的數(shù)據(jù)流式處理方法,,所述數(shù)據(jù)加 工中心中預定義有包括數(shù)據(jù)校驗、排序,、聚合和分組的加工方法步驟,,以及兩個不同加工方 法步驟之間的連接關系;數(shù)據(jù)加工中心還設置有用于連接數(shù)據(jù)源的數(shù)據(jù)源接入端口,、用于 連接用戶界面的數(shù)據(jù)加工方法及流程定義接入端口,、目標數(shù)據(jù)輸出端口以及用于連接流程 監(jiān)控單兀的加工流程監(jiān)控接口;結合圖1至圖3,基于上述數(shù)據(jù)加工中心的數(shù)據(jù)流式處理方法包括以下步驟:1)數(shù)據(jù)獲?。和ㄟ^數(shù)據(jù)源接入端口獲取數(shù)據(jù)源,;數(shù)據(jù)源接入端口連接的數(shù)據(jù)源類型包 括傳統(tǒng) oracle、db2,、mysql 數(shù)據(jù)庫,,MPP 數(shù)據(jù)庫 Greenplum、teradata,,以及 hdfs,、HBASE、 HIVE數(shù)據(jù)庫,;2)流式處理配置:為已獲取的數(shù)據(jù)配置“管道”節(jié)點,,利用共享內(nèi)存存儲已獲取到的數(shù) 據(jù);3)數(shù)據(jù)加工方法配置:根據(jù)用戶通過數(shù)據(jù)加工方法及流程定義接入端口配置的數(shù)據(jù)加 工方法及數(shù)據(jù)加工流程,,選擇和配置相應的加工方法及多個加工方法的流程排序,;為已保 存在共享內(nèi)存中的數(shù)據(jù)配置“轉換計算”節(jié)點,各“轉換計算”節(jié)點分別對應一種加工方法,; 同時在相鄰“轉換計算”節(jié)點之間配置“管道”節(jié)點,,使得數(shù)據(jù)通過管道在依次連接的轉換 計算節(jié)點之間流轉同時被處理;4)目標數(shù)據(jù)源的獲得:將步驟3)中最后一個轉換計算節(jié)點輸出的數(shù)據(jù)通過目標數(shù)據(jù) 輸出端口輸出至目標數(shù)據(jù)源中,。[〇〇19]步驟1)中,,本發(fā)明支持多種數(shù)據(jù)源的數(shù)據(jù)獲取。數(shù)據(jù)獲取即在加工配置系統(tǒng)中配置“抽取”節(jié)點,,如數(shù)據(jù)源為DB2,則配置“DB2抽取”,,同時配置抽取的詳細規(guī)則,如抽取的表 名規(guī)則等,。本發(fā)明對數(shù)據(jù)源中數(shù)據(jù)的獲取為現(xiàn)有技術,。步驟2)利用共享內(nèi)存對數(shù)據(jù)進行存儲,可使得數(shù)據(jù)從數(shù)據(jù)源如DB2中抽取出來后不會落地。經(jīng)過步驟3)后,,數(shù)據(jù)即已根據(jù) 用戶定義的加工方法進行加工,,并得到了相應的目標數(shù)據(jù)源,此時如果還要將數(shù)據(jù)同步到 其他的數(shù)據(jù)源中,,可以配置“裝載”節(jié)點,,如要將加工完成的數(shù)據(jù)同步到HDFS中,則在步驟 4中的“管道”節(jié)點后面配置“HDFS裝載”節(jié)點,,來完成數(shù)據(jù)同步,。[0020]本發(fā)明在應用時,用戶可通過可視化的用戶界面配置數(shù)據(jù)加工方法和定義數(shù)據(jù)加 工流程,,如圖1所示實施例中的數(shù)據(jù)校驗,、排序、聚合和分組等現(xiàn)有的或自行通過現(xiàn)有軟件 技術定義數(shù)據(jù)加工方法,。如果缺少想要的數(shù)據(jù)加工方法,,可以以插件的方式添加組件,也就 是添加加工方法,。用戶通過對不同加工方法的組合得到想到的加工流程,。數(shù)據(jù)加工中心將 用戶定義的加工方法和流程保存起來,生成加工計劃,,并對其中的加工任務進行解析,。在進 行流式處理加工時,首先要從數(shù)據(jù)源中采集相關數(shù)據(jù),,數(shù)據(jù)源可以是不同類型的數(shù)據(jù)庫也 可以是文件,,然后根據(jù)加工任務的解析結果,對所獲取的數(shù)據(jù)源提供的數(shù)據(jù)進行逐步加工,。[0021]參考圖3,本發(fā)明的流式數(shù)據(jù)加工處理方法中僅存在唯一一次讀取數(shù)據(jù)源中數(shù)據(jù) 的操作,后續(xù)便以共享內(nèi)存的方式儲存數(shù)據(jù),,以便讓數(shù)據(jù)流向一個或者是多個不同的數(shù)據(jù) 加工方法,。將加工完成的數(shù)據(jù)寫入到目標數(shù)據(jù)源中,也是整個數(shù)據(jù)加工流程中的唯一一次 寫入操作,。[0022]數(shù)據(jù)在加工過程中,,用戶可以通過流程監(jiān)控單元實現(xiàn)實時的監(jiān)控流程,流程監(jiān)控 單元可將獲取到的監(jiān)控信息輸出至可視化的用戶界面中,,例如當前運行到了哪個加工方 法,,運行了多長時間等等。實施例[0023]如將本發(fā)明應用于某電信公司省級經(jīng)分系統(tǒng),,要求對GPRS流量接口數(shù)據(jù)從MPP數(shù) 據(jù)庫(GP)同步到Hadoop中,,并且對MSISDN (手機號碼)字段做隱私化處理,并且做空值校 驗,,同時對CALL_DUR(通話時長)字段做運算(將字段值加一),。[0024]對上述數(shù)據(jù)處理任務的要求,,可以在數(shù)據(jù)加工中心通過如下步驟來完成:配置數(shù)據(jù)加工流程為:表掃描6GP數(shù)據(jù)源抽取d!管道流d!轉換計算d!管道6HDFS裝載,該流程也是一個數(shù)據(jù)流,;在數(shù)據(jù)加工中心中配置數(shù)據(jù)加工方法,,即在以上流程的“轉換計算”中配置,對手機號 碼字段做隱私化和空值校驗方法,,對通話時長字段做運算,;數(shù)據(jù)加工中心按照已經(jīng)配置的加工方法和管道流向進行方法的解析和實施。[0025]上述步驟從GP數(shù)據(jù)抽取到HDFS裝載流程中配置了管道,,也是實現(xiàn)“流式處理”的 關鍵,。在整個數(shù)據(jù)流式處理的過程中,流程監(jiān)控單元可以監(jiān)控整個數(shù)據(jù)流的運行狀態(tài),。[0026]本發(fā)明通過利用流式處理方式,,采集不同源的數(shù)據(jù)到加工中心,將任意數(shù)據(jù)源數(shù) 據(jù)互通,,并對數(shù)據(jù)做各種各樣的加工或處理,,保證整個過程只讀取和寫入一次數(shù)據(jù),提高了 數(shù)據(jù)處理的速度,。且本發(fā)明可以支持非常豐富的加工方法,,包括數(shù)據(jù)校驗,數(shù)據(jù)清洗,,庫外 計算,,對結構化數(shù)據(jù)中的某些字段做空值,長度,,類型等等校驗,,對數(shù)據(jù)進行排序,剔重,,過 濾等,,對數(shù)據(jù)進行分組和聚合等,這些方法全部都可以由用戶通過用戶界面靈活的配置或 定制,。同時本發(fā)明的加工中心設置有用于連接流程監(jiān)控單元的加工流程監(jiān)控接口,,能夠很 直觀的監(jiān)控整個數(shù)據(jù)加工流程,方便統(tǒng)一管控,,簡化加工的繁雜性,,對一批海量的數(shù)據(jù)進行 清洗或分組聚合等等操作都可以交給一個數(shù)據(jù)加工中心,從數(shù)據(jù)加工中心流出的數(shù)據(jù)即是用戶想要的數(shù)據(jù),。提示:由于編輯困難導致圖片無法顯示及全文的完整,、準確性或存在缺失!本文由海天精工整理發(fā)表文章均來自網(wǎng)絡僅供學習參考,轉載請注明,!
- 相關文章
- 發(fā)表留言
-
◎歡迎參與討論,,請在這里發(fā)表您的看法、交流您的觀點,。