Data Mesh(資料網格)- 現代化資料架構趨勢
近幾年非常新穎的資料架構由 Zhamak Dehgahani 在 ThoughWorks 所提倡,最初他的文章 How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh 提到了,從現在中心化的資料架構,如何到分散式的 Data Mesh 架構,以及未來企業的資料架構的典範轉移。
從集中化到分散化
企業從過去資料集中化於資料倉儲,到近期大數據與 AI, ML 運算逐漸以資料湖為中心做開發。在企業的大數據平台中,為了要找到所有應用的使用最大公因數,希望能夠透過單一的集中平台解決所有問題,最後單一個大數據平台變得越來越難以維護,因為不同的資料來源、應用、與身份的人必須想辦法塞進同一個大平台中。
如何把快速增長的內外部異質資料整合;具有階層性的人員與身份權控,依照不同的資料輪廓給予不同顆粒度的權控;多元的應用工具輸出優化並且符合資料安全規範。
Data Mesh 四大支柱
在 Zhamak Dehgahani 文章 Data Mesh Principles and Logical Architecture文章中提到了四個最重要的支柱,支撐 Data Mesh 概念去實踐。
Data Mesh 四大支柱:
- 領域資料所有權 (Domain ownership)
- 資料即產品 (Data as a product)
- 自助式資料平台 (Self-serve data platform)
- 聯合式運算治理 (Federated computational governance)
這四個支柱中,第一個『資料領域所有權 (Domain ownership)』是所有『資料即產品』、『自助式平台』、『聯合式運算治理』中最重要的基底,概念上領域資料所有權是一個虛擬的資料區域 (Data Domain) 劃分資料權限,讓資料擁有者能夠去產生營運取向與分析取向的資料集。
『資料領域所有權 (Domain ownership)』是最重要的基礎。
在企業中,採用不同的儲存運算技術是企業的常態,不同的資料有最適合使用情境。透過一個聯合式運算治理的框架,把資料的異質性與散落在各地的資料透過一致資料調用層讓異質資料得以同質化,讓資料不論在資料湖、資料倉儲、或資料集與來源存在於孤島中得以弭平。
在 Data Mesh 的架構下,透過這樣的資料架構能夠把資料多元性規模化,讓資料擁有者能夠治理並且協作他們的資料集,就算是在異質的資料來源基礎上也能夠實踐。這些資料集在後續的應用能夠針對指定的使用情境與人員,在權限指定與撤回在複雜的階層授權架構之下。在資料集方面,在資料擁有者下可以分享、治理透過開放的 API 介面讓 Metadata 與授權管理能夠互換,這代表資料調用層是能夠兼容各式架構、 Metadata 與權控,讓資料能夠各自的擴張或視為一個整體做最佳化取用;所幸現在我們有許多 Massive Parallel Processing 的引擎能夠協助我們達成以上的設計目標。
領域資料所有權 (Domain ownership)
在領域資料上的所有權,最大的挑戰就是資料權控 (Access Control),在單一個的資料倉儲上資料可以很容易的集中化管理,但是要建置資料權控橫跨資料倉儲、資料湖以及散落在各地的資料集通常都是分散的。
在這個情況下, Data Mesh 的資料權控需要達成統一且和諧的資料授權在分散式與集中式的資料儲存架構;理想上,每個領域驅動的資料集,都應該看似由上游的資料擁有者所授予的欄位當作是資料源頭,在不需要了解原始的資料來源也能使用有權限下的數據。
在領域資料上的所有權,最大的挑戰就是資料權控 (Access Control)。
資料即產品 (Data as a product)
Data Mesh 中的資料產品化概念,希望透由賦予資料本身更多語意上的定義,與敘述讓資料能夠在組織內部更有效的流通與應用,讓在資料使用單位,在資料的流通上更為一致且貼近應用場景。這個最大的挑戰是資料指標需要是互相流通、一致的標準與定義、並且針對特定的使用場景提供最適合的格式、接口等。
資料指標需要是互相流通、一致的標準與定義。
自助式資料平台 (Self-serve data platform)
使用單位使用資料的時候,透過自助式資料平台。能夠讓取得資料的需求方在使用應用工具獲取資料的同時針對其意圖以及內容做最佳化,針對資料是應用使用在資料分析、營運報表或是嵌入式應用,去做輸出與呈現。
讓應用工具獲取資料的同時針對其意圖以及內容做最佳化。
聯合式運算治理 (Federated computational governance)
聯合式運算治理代表最高層的視野,在所有不同資料集、來源的串接與統一的治理平台。透過這個治理層的資料取用框架下,來自資料需求者的不同樣貌與要求在一致的架構下共同治理,讓資料在橫跨異質分散的資料集的情況下能夠協作並且規模化。
一致的架構下共同治理,讓異質分散的資料集能夠協作並且規模化。
總結以上,在實踐新型的資料架構 Data Mesh,最大的挑戰是如何搭建一個安全且有效率的資料調用層,包含最佳化資料從異質資料來源的獲取路徑、統一的治理資料權控、以及針對不同的應用與意圖做最佳化的資料取用。
解決資料源異質性、人員身份的統一治理、以及不同應用最佳化調用,這三者為實踐資料網格 (Data Mesh) 的關鍵。