詳解資料服務共享釋出

EAWorld發表於2020-04-06

詳解資料服務共享釋出

轉載本文需註明出處:微信公眾號EAWorld,違者必究。

引言:

隨著雲端計算、大資料、物聯網等技術興起,資料朝著多樣性、高體量、高速度方向發展,如何將海量資料安全、穩定、高效地資料共享出去成為各企業關注的重點。本次微課堂通過普元在資料服務共享平臺研發過程中的實踐,和大家分享資料服務共享釋出的相關經驗。  

目錄:

1.資料服務共享釋出核心場景

2.資料服務共享釋出技術架構

3.資料服務共享釋出關鍵設計

4.資料服務共享釋出安全考慮

5.結束語

1.資料服務共享釋出核心場景

按功能劃分核心場景


詳解資料服務共享釋出

核心場景主要包括四個環節:資源目錄生成、資料服務釋出、資料服務消費、資料服務監控。

  • 資源目錄生成:提供資料資源目錄與服務資源目錄兩種檢視,資料資源目錄通過自動化採集方式生成,對各種資料來源(資料庫、檔案、大資料)的後設資料資訊進行展示;通過資料服務釋出快速生成服務資源目錄。

  • 資料服務釋出:基於資料資源目錄可將共享區資料快速釋出成實時服務(RESTful)和批量服務(File)。

  • 資料服務消費:定義了從服務瀏覽、申請、審批、資料使用的詳細流程,消費方通過訂閱或者拉取的方式使用資料。

  • 資料服務監控:對資料服務全生命週期管理與監控,對故障進行實時告警。

按角色進行功能場景劃分
詳解資料服務共享釋出
圍繞核心場景定義了四類角色:資料管理員、資料開發人員、資料消費方、運維人員。

  • 資料管理員:負責資料資源目錄、服務目錄的維護,參與資料服務的審批及授權。

  • 資料開發人員:負責資料資源服務化前的轉換、脫敏、核檢,負責實時和批量服務的開發。

  • 資料消費方:資料資源的使用方,通過資源目錄查詢相應的資料服務,向資料管理員提交資料服務申請使用資料。

  • 運維人員:負責資料整體共享交換過程中資料資源的監控、統計分析及故障處理。

圍繞核心場景,我們總結了四個典型應用場景:

場景一:讓用資料的所有人知道可以提供什麼樣的資料

詳解資料服務共享釋出

通過資源目錄提供技術後設資料、業務後設資料、服務後設資料檢視,使資源更容易發現,提供分割槽、分節點的體系化資源目錄管理,保護資料安全,快速查詢資料。通過自動化採集與解析手段獲取後設資料資訊,建立技術、業務、服務後設資料的註冊輸入,標明資料方位。

場景二:提供介面、檔案、資料庫三種服務型別對外進行共享
詳解資料服務共享釋出
基於資料服務目錄以介面、檔案、資料庫三種提供給資料使用方,資料消費方可通過申請的方式主動拉取資料,也可通過訂閱的方式自動獲取所需資料。

場景三:自助式資料問題追蹤
詳解資料服務共享釋出
消費方申請資料時通過血緣分析及級影響分析能夠及時發現資源在使用過程中的質量問題 ,確認是否是自己想要的資料,驗證開發正確性。
場景四 :從全域性瞭解企業資料服務應用情況
詳解資料服務共享釋出

通過資料服務監控自動形成資料監控鏈路,提供資料服務共享的全貌地圖,幫助企業瞭解資料共享交換的全貌及系統間資料關係,從全域性瞭解企業的資料服務應用情況。

2.資料服務共享釋出技術架構
支撐流水線式的資料服務共享釋出核心架構
詳解資料服務共享釋出

上圖核心架構中定義了資料從資料來源開始經過資料準備(清洗、轉換、質量核檢)後進入共享區,對共享區資料進行服務化後提供給消費方使用的處理流程及機制,支撐流水線式的資料服務共享釋出。
根據資料生命週期的不同環節,架構設計上定義了三個資料區域(資料來源、資料前置區、資料共享區),可根據實際情況對三個區域進行自定義或取捨。

功能架構

詳解資料服務共享釋出

在功能架構上主要包括四大支撐引擎+四大功能模組。
四大支撐引擎:

  • 實時服務引擎:實時服務釋出及訪問功能,以RESTful方式提供;

  • 批量服務引擎:批量服務釋出及訪問功能,以File方式提供;

  • 排程引擎:提供對批量服務的排程功能;

  • 日誌引擎:採集日誌進行指標分析。

四大功能模組:

  • 資源目錄:資料消費方和資料開發人員使用檢視;

  • 資料服務釋出:實現對實時服務和批量服務的釋出管理;

  • 資料使用及安全:定義資料申請使用流程及資料安全管理;

  • 資料服務監控:對資料服務生命週期進行全鏈路監控。

開發採用的技術棧

詳解資料服務共享釋出

在資料服務共享平臺開發的中涉及到的技術棧分為五個層次:

  • 資源層:對主流關係型資料庫(Oracle、SQLServer、Mysql),大資料(HBase、Hive)、檔案等多種資料來源進行技術後設資料的自動採集和業務後設資料的管理。

  • 訪問層:基於JDBC、HTTP、RPC、SFTP等通訊協議實現與資源層的訪問互動。

  • 邏輯層:提供對資源層不同資料來源的介面卡,同時提供可重用的安全、監控、排程及日誌元件。

  • 服務提供層:基於SpringBoot+SpringCloud以微服務架構的方式對外提供服務。

  • 展示層:採用vue+iview+es6+axios+ECharts技術實現前端頁面及展示效果。

3.資料服務共享釋出關鍵設計

資料服務共享釋出設計主要從資料服務釋出、故障告警、資料質量核檢、資料服務監控四個層面去考慮。

資料服務釋出

資料服務釋出提供兩種型別的服務釋出:實時服務釋出、批量服務釋出。

  • 實時服務釋出:將DB、HBase、File資料釋出成實時服務,以RESTful方式提供。

  • 批量服務釋出:將DB、Hive資料釋出成批量服務,以檔案方式提供。

實時服務釋出-微服務架構的實時服務引擎

詳解資料服務共享釋出
實時服務引擎是基於SpringBoot框架實現的微服務架構引擎,支援分散式部署,線性擴充套件。提供擴充套件能力,封裝內部技術實現細節,提供擴充套件介面實現對特殊需求的服務釋出。
支援三種資料型別服務:

  • 資料來源服務:基於資料資源目錄將整個資料來源釋出服務;

  • 單表服務:基於資料資源目錄將選定的單表及欄位釋出成服務;

  • 結果集服務:基於資料資源目錄將選定的多張表及欄位組裝形成新的結果集,按自定義的結果集釋出成服務。

實時服務釋出-釋出邏輯

詳解資料服務共享釋出
實時服務釋出邏輯主要分為幾個步驟:

  1. 選擇所要釋出的資源;

  2. 填寫所釋出服務的基本資訊;

  3. 實時服務引擎根據預先定義的vm模板,動態生成API、controller、service、dao、Model等層的Java程式碼,編譯後釋出為RESTful服務,提供Swagger服務描述。

批量服務釋出引擎

批量服釋出引擎基於資料流的非同步處理模型,可將DB、Hive資源快速生成指定的檔案型別服務,主要提供Excel、Csv、Xml三種檔案型別。
批量服務提供三種訪問方式:

  1. sftp:將檔案推送到ftpserver,通過sftp的方式進行下載;

  2. https:通過https方式下載檔案;

  3. P2P:藉助於普元檔案傳輸工具實現點對點的可靠檔案傳輸。

故障告警
詳解資料服務共享釋出
通過事件的方式按照定義規則進行檢查,當滿足規則時進行告警,支援以站內資訊、郵件、簡訊方式進行通知。

  • 服務引擎告警:對服務引擎CPU、記憶體指標進行檢測,當達到閾值時進行告警;

  • 服務狀態告警:實時探測服務狀態,當服務停止執行及時進行告警通知;

  • 服務質量告警:針對服務的訪問異常、響應時間進行監控,當訪問出現異常或者響應時間達到配置閾值時自動進行告警。

資料質量檢核
詳解資料服務共享釋出
在資料服務共享釋出整個環節提供對資料資源質量檢核能力,在事前、事中、事後進行質量核檢,保證資料質量。支援按照自定義規則進行檢核。

  • 事前:對主外來鍵、時間戳欄位、資料型別等進行檢查;

  • 事中:對非空、重複記錄等進行核檢;

  • 事後:對及時性、一致性等進行核檢。

資料服務監控
資料服務監控主要從非同步日誌落地、日誌讀取解析指標、指標儲存及故障處理等方面去考慮。
詳解資料服務共享釋出

在執行環境中日誌引擎(SSM)與Gateway一對一部署,通過非同步分析Gateway呼叫日誌提供服務呼叫結果、服務效能、服務呼叫耗時等指標。資料服務監控詳細機制普元工程師阿良做過《普後設資料服務監控解密》的分享,在這裡不做詳細贅述。
4.資料服務共享釋出安全考慮

資料服務共享釋出安全主要從服務訪問控制、資料加密及脫敏、基於安全協議訪問三個方面進行考慮。

服務訪問控制
詳解資料服務共享釋出

消費方系統通過SpringCloud Gateway訪問資料服務,依次通過token授權、IP白名單、訪問頻度、訪問流量多重攔截器進行控制,保證服務訪問安全。

資料加密及脫敏

詳解資料服務共享釋出
資料服務引擎端提供安全元件,保證資料訪問安全,主要從以下幾個方面進行控制:
  • 資料加密:提供MD5、DES、AES、RSA等多種數加密方式;

  • 資料脫敏:根據脫敏規則對欄位任意資料進行脫敏,如常規替換、加密替換等;

  • 行列級許可權:對消費方系統提供行級、列級資料許可權控制。

基於安全協議進行資料傳輸

詳解資料服務共享釋出

在資料訪問的過程中基於HTTPS、SFTP安全協議進行傳輸,防止資料在傳輸過程中不被竊取、篡改,確保資料的完整性。

5.結束語

資料服務共享釋出是企業資料資源“縱向貫通”、“橫向互聯”的共享通道,從資料準備、資料質量、資料釋出、資料共享、資料安全等多個環節去詳細考慮,它將向著服務自助化、智慧化的方向發展,幫助企業更加有效、可靠的管理和使用資料。

精選提問:

問1:列級許可權怎麼控制的?是基於介面配置欄位控制,還是基於 SQL 解析器動態改寫SQL?

答:列級許可權控制是通過動態改寫SQL的方式控制。

問2:資料加密中的對等加密和非對等加密,哪個加密的安全性要高些?

答:非對稱加密安全性高。

問3:資料共享系統長什麼樣的,適用於哪些場景,哪些企業?

答:普元有自己的資料服務共享平臺,具體的可以從官網(www.primeton.com)檢視。適用於政府、金融、保險等有資料交換、共享及使用的場景的各行業領域。

問4:資料共享安全管控中如何對非結構化的資料資源進行安全控制,如影像地圖等,如何進行按地理區域來控制訪問的許可權及安全?

答:資料共享安全管控中對影像地圖類非結構化的資料資源很難從內容上去做控制,可以配置地理區域標識與服務的對應關係、地理區域IP與服務對關係,從服務訪問的角度來控制。

問5:即使用了https,資料是不是還有被修改的可能,目前能做到資料不被修改嗎?

答:https中將伺服器端公鑰證照同客戶端繫結,由客戶端在互動過程中去驗證證照的合法性,可以避免中間人攻擊,防止抓包和篡改,需要客戶端有驗證的邏輯。

問6:在資料中臺和業務中臺是否也需要這個?前期如何規劃?

答:資料服務共享釋出可以做為資料中臺和業務中臺的一部分,關注將已有資料資產釋出成資料服務。前期可從資料標準、資料質量、資料治理的角度去規劃。

問7:資料服務共享,核心是資料質量可靠,請問資料質量核檢能否保證資料質量,有無辦法對資料質量的真實性、完整性、時效性進行有效的管控。行業及普元是否有相關的解決辦法?

答:普元有專門的資料質量產品,在金融、政企行業有關的解決方案。

問8:請問如何對資料服務從計量的角度進行監控,滿足監控資料共享程度的熱度、使用的頻率和按資料的訪問流量計價等?

答:可以藉助於SparkStreaming、Flink等流式處理框架對資料服務的交易日誌進行相關指標的計算。

問9:為什麼資料服務共享中,是否有報表共享服務?

答:可以將報表以介面服務或者檔案的方式提供給資料使用方。

問10:場景三中的血緣分析及級影響分析,能否具體舉例說明下?

答:血緣分析是基於當前資源向上追溯分析影響,影響分析基於當前資源分析對下游產生哪些資源產生影響。比如:當表某個欄位發生變更時,可以通過血緣分析與影響分析檢視對上游和下游所牽扯到的哪些系統有影響。

問11:金鑰怎麼管理?

答:祕鑰需要考慮從整個生命週期進行管理,進行定期備份與儲存,建議從網上檢視下相關資料。

問12:請問,資料標準這塊怎麼理解,具體包括哪些內容?

答:普元有自己的資料標準產品,資料標準包括基礎標準和分析類標準,基礎標準包括資料內容格式、資料型別及資料含義;分析類標準含有指標的計算口徑、緯度和定義等。

詳解資料服務共享釋出

關於作者不凡,普元軟體產品部架構師,十餘年IT從業經驗,致力於資料服務共享、資料整合、服務治理、資料治理相關產品的架構與研發,具備較為領先的產品研發思路和豐富的實施落地經驗,帶領和參與了普元DSP、DI、ESB、MetaCube產品的研發,同時參與政府、保險、電力、公安、通訊等多個領域資料專案的前期諮詢及實施工作。

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

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

相關文章