本發(fā)明涉及一種基于服務總線的數據交換方法,屬于通信技術領域。
背景技術:
隨著信息時代的迅猛發(fā)展,結構化、半結構化、非結構化數據的長期積累,信息化系統(tǒng)的多樣性造成的“數據孤島”已然成為各行業(yè)的突出問題,數據間無法互聯互通,數據庫種類不一,數據結構定義混雜,面對龐大的數據資產無法使其發(fā)揮最大作用,數據資產得不到充分利用?,F有的數據存儲方式是單節(jié)點上的串行存儲,單節(jié)點上存儲容量有限,擴展后也是串行方式讀取,磁盤I/O受限于單臺節(jié)點。
數據交換是是各類業(yè)務數據采集工具之一,能夠實現上下級業(yè)務數據之間的縱向數據交換,實現同級之間的統(tǒng)一的橫向數據交換渠道,滿足各種數據的交換要求。為了使各系統(tǒng)之間的基礎數據得以共享,迫切需要設計一種數據交換方案來信息化系統(tǒng)的“數據孤島”問題。
技術實現要素:
針對上述不足,本發(fā)明提供了一種基于服務總線的數據交換方法,其能夠有效實現數據間的互聯互通,能夠解決信息化系統(tǒng)的“數據孤島”問題。
本發(fā)明解決其技術問題采取的技術方案是:一種基于服務總線的數據交換方法,其特征是,包括以下過程:
數據流的自動調度:以數據流形式進行多數據源的自動調度;
多源異構數據間的數據互聯互通:對多源異構數據進行抽取轉換,處理后數據與源數據進行交換;
數據的輸入輸出:將多源異構數據進行有效輸入輸出。
進一步地,所述數據流的自動調度過程包括以下步驟:
S11,定義作業(yè):定義作業(yè)執(zhí)行的開始時間,作業(yè)執(zhí)行間隔時間,以及作業(yè)啟動周期;
S12,定義作業(yè)執(zhí)行程序:選擇作業(yè)執(zhí)行過程中需要調用的任務和順序,根據順序形成執(zhí)行過程;
S13,啟動作業(yè):作業(yè)啟動后,會根據預先定義的作業(yè)參數進行定時執(zhí)行;
S14,作業(yè)異常處理:當作業(yè)執(zhí)行過程中出現錯誤時,作業(yè)自動停止,并在錯誤位置重新執(zhí)行,重新執(zhí)行后如果仍有錯誤則顯示紅色標識塊提示檢查程序內容;
S15,作業(yè)執(zhí)行完成:作業(yè)執(zhí)行完成后相關數據已調用完畢,可從目標庫中或文件中進行查找使用。
進一步地,所述多源異構數據間的數據互聯互通過程包括以下步驟:
S21,定義數據源:設置數據庫的登錄用戶名和密碼,以及數據庫中文件的訪問路徑;
S22,定義數據落地:對數據庫的訪問路徑及登錄用戶名和密碼進行測試,測試數據源連接是否正常,并進行多庫抽取測試目標數據落地路徑是否暢通;
S23,數據抽?。菏褂肑DBC或程序接口方式提取數據源中的數據;
S24,數據清洗、整理:對數據進行篩選、過濾處理;
S25,數據轉換:對數據進行轉換,轉為標準的數據格式;
S26,數據加載:根據業(yè)務需要將轉換后的數據加載到數據庫中,用于數據挖掘、統(tǒng)計分析展現;
S27,數據回傳:對需要回傳的數據加載后寫回數據源,進行數據交互。
進一步地,所述的數據庫包括MySQL、SQLServer和Oracle數據庫。
進一步地,在步驟S24中,對數據進行篩選、過濾處理的過程包括空值處理、規(guī)范數據格式、拆分數據、驗證數據的正確性和數據替換。
進一步地,所述的服務總線包括:
服務請求監(jiān)聽器:用于進行服務監(jiān)聽,接受來自客戶端的數據請求;
服務定義模塊:用于為數據服務提供接入口,按照不同業(yè)務、數據請求模式將數據服務劃分為不同的數據服務;
接口控制模塊:用于按照請求業(yè)務和數據的不同調用不同的服務接口;
日志監(jiān)控模塊:用于每次請求、響應后進行操作留痕,為日后數據追查、統(tǒng)計使用;
管道管理模塊:用于為程序提供多種傳輸管道,進行處理不同服務業(yè)務請求;
服務解釋處理器:用于根據請求的具體業(yè)務情況將數據提交到不同的數據傳輸管道中;
傳輸管道:用于將數據從數據源數據庫進行數據抽取、加密、壓縮、轉換處理后保存到數據庫中。
本發(fā)明的有益效果是:本發(fā)明從多數據源以數據流形式進行自動調度,抽取轉換,經過處理的數據與源數據交換或轉發(fā)到其他目標位置,將多源異構數據進行有效的輸入輸出,通過采用能夠實現數據流自動調度和交換的服務總線,利用數據交換引擎收集并處理數據調用服務請求,通過數據接口實現數據的共享交換。使所有的業(yè)務數據互聯互通,實現數據在系統(tǒng)中進行自動流轉,可以方便參與上層的業(yè)務流程。
附圖說明
下面結合說明書附圖對本發(fā)明進行說明。
圖1為本發(fā)明的方法流程圖;
圖2為本發(fā)明所述數據流的自動調度過程的流程圖;
圖3為本發(fā)明所述服務總線的原理框圖。
具體實施方式
為能清楚說明本方案的技術特點,下面通過具體實施方式,并結合其附圖,對本發(fā)明進行詳細闡述。下文的公開提供了許多不同的實施例或例子用來實現本發(fā)明的不同結構。為了簡化本發(fā)明的公開,下文中對特定例子的部件和設置進行描述。此外,本發(fā)明可以在不同例子中重復參考數字和/或字母。這種重復是為了簡化和清楚的目的,其本身不指示所討論各種實施例和/或設置之間的關系。應當注意,在附圖中所圖示的部件不一定按比例繪制。本發(fā)明省略了對公知組件和處理技術及工藝的描述以避免不必要地限制本發(fā)明。
如圖1所示,本發(fā)明的一種基于服務總線的數據交換方法,它包括以下過程:
數據流的自動調度:以數據流形式進行多數據源的自動調度;
多源異構數據間的數據互聯互通:對多源異構數據進行抽取轉換,處理后數據與源數據進行交換;
數據的輸入輸出:將多源異構數據進行有效輸入輸出。
如圖2所示,本發(fā)明所述數據流的自動調度過程包括以下具體步驟:
S11,定義作業(yè):定義作業(yè)執(zhí)行的開始時間,作業(yè)執(zhí)行間隔時間,以及作業(yè)啟動周期;
S12,定義作業(yè)執(zhí)行程序:選擇作業(yè)執(zhí)行過程中需要調用的任務(Task)和順序,根據順序形成執(zhí)行過程;
S13,啟動作業(yè):作業(yè)啟動后,會根據預先定義的作業(yè)參數進行定時執(zhí)行;
S14,作業(yè)異常處理:當作業(yè)執(zhí)行過程中出現錯誤時,作業(yè)自動停止,并在錯誤位置重新執(zhí)行,重新執(zhí)行后如果仍有錯誤則顯示紅色標識塊提示檢查程序內容;
S15,作業(yè)執(zhí)行完成:作業(yè)執(zhí)行完成后相關數據已調用完畢,可從目標庫(HBase或Hive)中或文件中進行查找使用。
本發(fā)明所述多源異構數據間的數據互聯互通過程包括以下步驟:
S21,定義數據源:設置數據庫的登錄用戶名和密碼,以及數據庫中文件的訪問路徑;
S22,定義數據落地:對數據庫的訪問路徑及登錄用戶名和密碼進行測試,測試數據源連接是否正常,并進行多庫抽取測試目標數據落地路徑是否暢通;
S23,數據抽取:使用JDBC或程序接口方式提取數據源中的數據;
S24,數據清洗、整理:對數據進行篩選、過濾處理,對數據進行篩選、過濾處理的過程包括空值處理、規(guī)范數據格式、拆分數據、驗證數據的正確性和數據替換;
S25,數據轉換:對數據進行轉換,轉為標準的數據格式;
S26,數據加載:根據業(yè)務需要將轉換后的數據加載到數據庫中,用于數據挖掘、統(tǒng)計分析展現;
S27,數據回傳:對需要回傳的數據加載后寫回數據源,進行數據交互。
進一步地,所述的數據庫MySQL、SQLServer和Oracle數據庫。在具體應用過程中,不同的數據源可以采用不同的數據庫。
如圖3所示,本發(fā)明所述的服務總線包括:
服務請求監(jiān)聽器:用于進行服務監(jiān)聽,接受來自客戶端的數據請求;
服務定義模塊:用于為數據服務提供接入口,按照不同業(yè)務、數據請求模式將數據服務劃分為不同的數據服務;
接口控制模塊:用于按照請求業(yè)務和數據的不同調用不同的服務接口;
日志監(jiān)控模塊:用于每次請求、響應后進行操作留痕,為日后數據追查、統(tǒng)計使用;
管道管理模塊:用于為程序提供多種傳輸管道,進行處理不同服務業(yè)務請求;
服務解釋處理器:用于根據請求的具體業(yè)務情況將數據提交到不同的數據傳輸管道中;
傳輸管道:用于將數據從數據源數據庫進行數據抽取、加密、壓縮、轉換處理后保存到數據庫中。
下面介紹本發(fā)明的具體應用過程,采用本發(fā)明的服務總線進行數據交換的操作過程如下:
步驟一:建立Hbase表結構或Hive數據倉庫,(根據業(yè)務所需,要求實時查詢的采用Hbase,允許時間范圍內統(tǒng)計預測結果的采用Hive,本系統(tǒng)Hbase與Hive同時安裝),設置數據抽取后進入Hbase或Hive。如果采用Hive數據倉庫形式進行存儲,定義Hive中數據表結構,用SQL語句的語法形式對Hive中的文件內容進行讀取。若采用HBase形式存儲數據,HBase是Hadoop的分布式數據庫,HBase數據文件存儲在HDFS中,對HBase的操作遵循語法規(guī)則增刪查改即可。Hive數據倉庫方式適用于離線計算,HBase適用于實時查詢,亦可用于離線計算。
步驟二:定義數據源的地址、端口,通過連接測試確保數據庫(或文件)網絡訪問正常。
步驟三:查詢Hbase或Hive中的數據截止點,有效防止數據重復抽取,除平臺第一次抽取全量數據外,以后使用過程中都為增量數據抽取。
步驟四:定義作業(yè)名稱,選取抽取時間,定時定量抽取,按照作業(yè)順序進行統(tǒng)一調度管理,讓作業(yè)邏輯清晰可維護。
步驟五:針對實際業(yè)務建立數據模型,定義數據結構,厘清數據間的關系和脈絡,定期對數據質量進行跟蹤和改進,組織數據抽取、清洗、轉換方式,在數據清洗整合過程中,對不完整的數據、錯誤的數據、重復的數據進行檢查過濾,按照數據的規(guī)范要求對相關業(yè)務數據進行位數及其他關鍵數據項非空校驗檢查。數據模型是通過算法(如:數學、統(tǒng)計學、概率學、經濟學等)推導出新的公式,尋找影響數據間因素的相關性,通過加載大量數據進行算法驗證,檢驗公式的正確性與準確性,公式的準確率越高,模型越精確,將該模型公式轉換成模型算法,通過java代碼以程序編碼形式實現最終展現在界面上。
步驟六:點擊“執(zhí)行作業(yè)”,程序根據預先定義的規(guī)則與邏輯逐步執(zhí)行,作業(yè)在啟動執(zhí)行中、執(zhí)行成功、執(zhí)行失敗等狀態(tài)以顏色標識。
步驟七:當多個作業(yè)執(zhí)行時,采取排隊方式,程序可自行調度,所有調度信息存儲成元數據,調度程序讀取元數據信息安排作業(yè)調度順序和作業(yè)狀態(tài)監(jiān)管。
步驟八:當作業(yè)正常執(zhí)行完成后,到Hbase或Hive中查找相關內容即可,數據已按照既定方式進入Hadoop分布式集群中進行存儲,供數據分析使用。
由于使用了Hadoop和Sqoop的API接口功能,不需要在多源數據服務器上部署,只需在Hadoop集群中搭建基礎組件,因此在性能和效率方面都有明顯優(yōu)勢。在數據自動調用處理過程中,底層通過Hadoop的MapReduce執(zhí)行,當業(yè)務過程中進行全過程監(jiān)管。
以上所述只是本發(fā)明的優(yōu)選實施方式,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也被視為本發(fā)明的保護范圍。