分散式及高可用後設資料採集原理

EAWorld發表於2020-04-06

引言:

後設資料採集是後設資料產品的核心部分,如何提升採集效率是需要仔細斟酌的事情,既要保持穩定性也要保持跟上主流技術的發展趨勢。後設資料產品從最初集中式WEB應用系統到現在流行的分散式、微服務這種系統架構,原有後設資料採集效率已不能滿足應用的需求了。

目錄:

1.後設資料採集原理

2.分散式採集策略

3.分散式採集策略的應用

1.後設資料採集原理
我們要想採集後設資料首先得明白,什麼是後設資料,後設資料都存在哪裡,為什麼採集後設資料?
後設資料MetaData通俗的解釋是用來描述資料的資料,實際來看,除了業務邏輯直接讀寫處理的那些業務資料,所有其它用來維持整個系統運轉所需的資訊/資料都可以叫作後設資料。比如資料庫的Schema、Table、Column資訊,任務的血緣關係,使用者和指令碼/任務的許可權對映關係資訊等等。
以大資料平臺為例,後設資料貫穿大資料平臺資料流動的全過程,主要包括資料來源後設資料、資料加工處理過程後設資料、資料主題庫專題庫後設資料、服務層後設資料、應用層後設資料等。
資料治理關鍵就是收集資訊,很明顯,沒有資料就無從分析,也就無法有效的對平臺的資料鏈路進行管理和改進。所以後設資料管理平臺很重要的一個功能就是資訊的收集,至於收集哪些資訊,取決於業務的需求和我們需要解決的目標問題。
如何採集後設資料?
後設資料採集是指獲取資料生命週期中的後設資料,對後設資料進行組織,然後將後設資料寫入資料庫中的過程。
分散式及高可用後設資料採集原理

不同來源的後設資料獲取獲取方式也不大相同,在採集方式上有使用包括資料庫直連、介面、日誌檔案等技術手段,對結構化資料的資料字典、非結構化資料的後設資料資訊、業務指標、程式碼、資料加工過程等後設資料資訊進行自動化和手動採集,後設資料採集完成後,被組織成符合CWM模型的結構,儲存在關係型資料庫中。

分散式及高可用後設資料採集原理
2.分散式採集架構
現在人們對後設資料管理工具採集的後設資料時效性越來越高,我們後設資料管理工具會管理很多來源的後設資料,配置很多采集任務定時去採集,如何高效的完成採集任務,影響著後設資料管理工具儲存的後設資料時效性。我們原先採集任務策略是單一採集程式序列執行採集任務,這樣的策略採集效率是很低的,為了提高採集效率,我們就採用多個採集程式併發執行採集任務。
常見的後設資料管理工具架構是傳統的集中式WEB應用架構,所有的功能模組都集中在一個應用程式中。
分散式及高可用後設資料採集原理
3.分散式採集架構的應用

我們在某一證券公司做資料治理時,發現該客戶的網路架構比較複雜,它的網路架構大概分為三層業務系統層、資料採集層和資料儲存層。
業務系統分佈業務系統層的不同地域,比如A業務系統在北京,B業務系統在上海,C業務系統在廣州等。我們要想訪問個各個業務系統的資料庫只能透過資料採集層的代理IP去訪問,不同地域的業務系統代理的IP地址網段也是不同的,資料採集層各個網段之間不能連通,資料儲存層是可以和資料採集層的所有網段直接連通的。
分散式及高可用後設資料採集原理
我們現在後設資料的架構是分為應用程式和採集服務兩部分,應用程式和採集程式是一對一的關係,針對這種網路情況,我們要對後設資料產品的架構做調整。
分散式及高可用後設資料採集原理
一、將後設資料的應用程式與採集服務改為一對多模式,這樣我們得需要一個採集服務管理模組,可以對採集服務的資訊(IP,埠)進行維護(增刪改),採集的目標資料來源與採集程式服務進行對映,一個目標資料來源可以配置主備採集服務,主採集服務發生故障後,可以透過備採集服務繼續採集工作。
採集服務管理模組要考慮易操作性和適用性,如:檢視採集服務執行情況、設定預設採集服務等等。
二、後設資料採集任務調整為並行執行,現在採集後設資料步驟為獲取後設資料>入臨時表>與正式表比對,更新後設資料ID,得到後設資料的變更資訊>將後設資料和變更資訊入正式表。
採集任務調整為並行執行的主要的難點是如何取消臨時表,因為臨時表在後設資料儲存資料庫中只有一份,只有等待當前採集任務執行完畢,清空臨時表後,才能執行下一次採集任務。
臨時表的作用是:
更新後設資料ID和找出新增、修改和刪除的後設資料,採集後設資料時,都會給每一個後設資料生成隨機的UUID當作後設資料ID,與正式表作比對時,如果某一後設資料之前已經入庫,需要將該後設資料的臨時表裡的ID更新成正式表裡的ID。
取消臨時表的舉措:
1、我們選擇將後設資料編碼+後設資料型別+後設資料父級路徑這三項資料進行MD5加密生成的字串作為後設資料的ID,這樣後設資料的ID也就固定了,不需要和正式表裡做比對了。
2、透過後設資料ID去正式表裡查詢就可得出哪些後設資料是新增和刪除的。
我們將後設資料的所有屬性值進行MD5加密生成的字串作為後設資料的屬性ID,這樣通 過比對後設資料的屬性ID就可得知該後設資料是否修改了。
這樣我們就可以取消臨時表,在採集服務程式中就可以將後設資料和正式表資料作比對,得到變化的後設資料,將後設資料記錄直接寫入到資料庫中的正式表,後設資料採集任務也就可以並行執行了。
分散式及高可用後設資料採集原理
我們在資料採集層各個網段都部署採集服務,這樣就實現了高併發後設資料採集,這種分散式採集策略優點是:
1、採集後設資料效率快
2、可以並行執行採集任務
3、可以適應複雜網路環境的後設資料採集。

精選提問:

問1:請問如何提高後設資料採集的效率,減少對第三方系統的影響?

答:主要有兩個方面,1、提高採集效率,減少佔用第三方系統的時間,2、選擇在第三方系統空閒時間進行採集。

問2:透過後設資料ID去正式表裡查詢就可得出哪些後設資料是新增和刪除的。刪除的後設資料,是不是一次採集的全部資料都得在記憶體中?如果一次採集的資料,記憶體裝不下呢?另外就是,使用資料庫事務肯定是不行的了,那如果資料寫到一半,因為一些原因出異常了,這資料的一致性是怎麼考慮的?

答:採集後設資料時可以分批次抽取資料,例如採集某一資料庫,可以先採集一部分Schema,入庫之後,再採集另一部分,這樣可以解決記憶體的溢位問題。寫入資料時,一次採集會在資料庫裡建立一個臨時表(temporary table),先將資料寫入到臨時表,然後在複製臨時表資料到正式表,這樣可以保證資料的一致性。

問3:後設資料採集過程中和之後,在安全方面應該考慮哪些?

答:採集過程遵循最小許可權原則,例如採集資料庫後設資料時給使用者設定最小許可權,在使用後設資料管理工具時,給不同的使用者賦不同的檢視、修改、刪除等許可權。

問4:後設資料在金融領域實用哪些場景?

答:金融領域這塊主要是監管報送資料來源分析,保證資料來源的準確性。

問5:後設資料採集、安全傳輸、綜合應用、版本維護這些在普元的後設資料方案中如何體現的

答:後設資料採集是透過分散式採集來實現的,透過部署採集端實現不同來源後設資料的採集。傳輸過程目前是透過資料庫jdbc訪問方式實現,給使用者設定最小許可權,保證資料採集過程安全。綜合應用中提供了影響分析、資料地圖應用場景,版本管理是對後設資料版本的管理,是綜合運用的一塊內容。

問6:後設資料是描述資料的資料,後設資料的質量如何保障,對於採集到的後設資料如何提升挖掘分析能力,也就是後設資料的關聯分析都有哪些模型?

答:後設資料的質量是透過管理+技術的手段來保證的。管理方面要制定後設資料的標準,從後設資料的完整性、準確性、時效性等不同維度來制定管理的規範。技術方面要提供功能支撐。

問7:後設資料分散式採集中,後設資料的版本如何管理?後設資料儲存都有哪些資料庫,對於後設資料分散式採集和儲存,一般支援的資料庫有哪些後設資料版本管理?

答:你說版本管理應該是後設資料變更後的歷史資訊管理吧,採集時透過後設資料ID比對,刷選出新增或刪除的後設資料,比對屬性ID,篩選出修改的後設資料,把變更資訊記錄資料庫中。後設資料儲存庫常見的有MySql和Oracle。

問8:後設資料採集的核心是什麼呢?

後設資料採集的核心是擴充套件性和採集的準確性,後設資料管理涉及到不同來源和不同型別的資料,要有良好的擴充套件性,還要保證採集的準確性,如果採集準確性都不能保證,管理員就不能做出有效的決策。

問9:後設資料編碼+後設資料型別+後設資料父級路徑能詳細解釋下如何定義,為什麼這3個能確定唯一一次變動嗎?

後設資料編碼是同型別後設資料的區分標識, 後設資料型別是標識該後設資料是什麼型別,後設資料父級路徑指的後設資料所有父級後設資料ID組成的字串,還有一個後設資料屬性ID,該後設資料的所有屬性生成的ID,這四個欄位能確定後設資料是否有變更。

問10:後設資料設計時,是否需要帶有版本資訊;後設資料儲存時,採用什麼方式,便於高效索引或者比對?

1、後設資料設計時,需要有變更資訊表,專門存放後設資料的變更歷史資訊。2、後設資料儲存時,要有唯一ID和後設資料屬性ID,這樣比對是比較高效的。

問11:正式表md5值是預先就生成好了,然後在採集時直接做呼叫對比?程式計算md5的效率如何?對程式效能影響大嗎?

1、MD5值是採集時生成的,然後和後設資料儲存庫裡的MD5值比對,得出變更的後設資料。2、生成MD5值的效率很快,對採集效能影響不大。

分散式及高可用後設資料採集原理

關於作者追風,普元高階軟體工程師,參與普元Metacube7GA設計及研發;有銀行、證券等行業資料治理實施的經驗。網際網路技術愛好者,熱衷於研究各種優秀的開原始碼,致力於成為一名有腔調的工程師。

關於EAWorld:微服務,DevOps,資料治理,移動架構原創技術分享。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562043/viewspace-2677693/,如需轉載,請註明出處,否則將追究法律責任。

相關文章