死磕了老半天,終於讀懂了資料編織(Data Fabric)
Gartner釋出的2022年重要戰略技術趨勢,Data Fabric(資料編織)赫然在列,這個概念現在挺火的,國內國外甚至有了相關產品,但資料編織這個概念並不是那麼好理解。
假如要跟老闆解釋這個新概念,我是完全沒信心的,雖然Gartner也做了解釋,但過於抽象,各種概念亂飛,什麼主動後設資料,活動後設資料,知識圖譜等等,各個廠家也是你方唱罷我登場,都在基於自己的產品能力詮釋著對資料編織的理解,讓更多的人看得雲裡霧裡。
我們首先看看業界是如何定義資料編織的,然後給出我的通俗易懂版本。
1)Gartner
Gartner將Data Fabric定義為包含資料和連線的整合層,透過對現有的、可發現和可推斷的後設資料資產進行持續分析,來支援資料系統跨平臺的設計、部署和使用,從而實現靈活的的資料交付,其能力架構如下:
2)Forrester
Forrester提出了Big Data Fabric的概念,Big Data Fabric的最佳之處在於它能夠透過利用動態整合、分散式和多雲架構、圖形引擎、分散式和持久記憶體等方面的能力來快速交付應用,其專注於自動化流程整合、轉換、準備、管理、安全、治理和編排,以快速啟用分析和洞察力,實現業務成功。其能力架構如下:
3)IBM
IBM認為Data Fabric的核心是一個資料管理平臺,透過包括發現、治理、管理和編排在內的、全面的整合資料管理功能 ,實現“在正確的時間,從任意位置,將正確的資料與正確的人連線起來,從而全面釋放資料價值,加速企業的數字化轉型”的目標。Cloud Pak for Data 是IBM開發的具有資料管理、監管和分析功能的Data Fabric平臺,如下圖。
4)Talend
Talend認為Data Fabric是結合了AI能力的自動化資料整合平臺。Talend的Data Fabric平臺是由其資料整合平臺發展而來,囊括了諸如大資料、機器學習、資料治理和 資料API等產品,將資料整合、資料治理以及資料運營統一在一個平臺中,該平臺架構示意圖如下所示:
5)Denodo
Denodo在Data Fabric的能力定義上,更多的是追從了Forrester的能力定義,包括了資料攝取、處理和持久化、編排、資料發現、資料管理和智慧以及資料訪問等6類能力,不再贅述,但需要指出的是,其在資料發現能力上特別強調了資料虛擬化的能力,認為其是資料發現的關鍵能力。另外也強調了資料訪問能力的重要性,直接將資料提供給資料分析工程師或者基於系統、工具或者視覺化方式提供。denodo平臺具體的能力架構圖如下:
以上亂花漸欲迷人眼的定義和產品一定會把大多數人帶進溝裡,下面,我就來談談自己對於資料編織的本質理解,費曼說,只有能通俗易懂的向別人解釋清楚概念,才說明你真懂了,希望我的解釋能讓你滿意,否則,就是我的問題。
1、資料編織的背景
(1)資料是企業數字化轉型不可或缺的元素,隨著數字化的持續推進,資料來源以及資料量不斷增加,資料和應用孤島的數量在過去幾年中激增。
(2)業務資料格式由原來的結構化資料為主,逐步改變為由混合、多樣和不斷變化的資料主導(結構化、半結構化、非結構化等),業務對於實時或事件驅動的資料共享等需求不斷增長。
(3)企業上雲成為一大趨勢,混合資料環境下企業該如何跨平臺、跨環境,以實時的速度收集、訪問、管理、共享資料,從不斷變化、高度關聯、卻又四處分散的資料中獲得可執行洞見面臨巨大的挑戰。
(4)企業資料的管理和運營投入度不夠,缺少體系化的資料領域建設,從而產生了大量的暗資料。
面對上述資料管理難題,企業必須使用一種新型的資料結構來應對企業資料資產日益加劇的多樣化、分散式、規模、複雜性等問題。在這樣的背景下,一種新興的資料管理和處理方法——資料編織(Data Fabric)誕生了。
Gartner認為資料編織是一種跨平臺的資料整合方式,它不僅可以整合所有業務使用者的資訊,還具有靈活且彈性的特點,使得人們可以隨時隨地使用任何資料,Gartner稱,資料編織預計可縮短30%的整合設計時間、30%的部署時間和70%的維護時間。
2、資料編織的定義
資料編織是一種資料架構思想(而非一組特定的工具),其透過提供一種統一的方法來管理異構資料工具鏈,其能夠將可信資料從所有相關資料來源、以靈活且業務可理解的方式交付給所有相關資料消費者,從而提供比傳統資料管理更多的價值。
資料編織這個名字取得挺貼切的,我們可以望文生義的去理解資料編織這個定義,如下圖所示,把資料編織想象成一張虛擬的網,網上的每個節點就是一個 IT系統或者資料來源。人的大腦裡有成萬上億個神經元,他們連線在一起,以非常快的速度處理和傳遞資訊。現代醫學還無法解釋這些資訊是如何傳遞的,只能說是以一種虛擬的方式來連線。這裡資料編織也一樣,這張網並不能理解為一種點對點的連線,而是一種虛擬的連線,可以使資料在網上迅速流動並統一對外提供服務。
有人會問資料編織跟資料整合有什麼區別,這是個好問題,資料整合是融合異構儲存集合的資料並構造統一資料檢視的過程,包括了資料合併、資料轉換、資料清洗等,其專注於複製、移動資料,如ETL加工、資料同步等。
資料編織是一種架構思想,跟資料整合本來是無法直接比較的,但由於資料虛擬化是實現資料編織架構中的關鍵技術之一,因此可以比較下資料虛擬化和資料整合的區別,資料虛擬化可以在不移動資料的情況下從源頭訪問資料,透過更快、更準確的查詢幫助縮短實現業務價值的時間,具體包括跨平臺敏捷整合、統一語義、低程式碼建立資料API(支援SQL、REST、OData和GraphQL等技術)、智慧快取加速等功能,資料虛擬化跟資料整合還是有本質區別的,假如沒有虛擬化能力,資料是很難編織起來的,當然,資料編織遠遠超越了資料虛擬化的範疇,這個後面會解釋。
可能還有人會問資料編織跟資料湖有什麼區別,其實資料湖只是資料編織的異構資料來源之一(資料來源可以是資料倉儲、資料湖,也可以是業務資料庫等其他資料儲存),資料編織將應用程式與資料湖(或者資料倉儲等)進行連線,透過統一的資料管理框架支援在分散式的環境中進行資料消費。
3、資料編織的實現
要達到資料編織的目的,需要具備以下五個能力:
-
第一、資料編織可以連線各種資料來源。
資料來源的型別可以是資料庫、資料倉儲、資料湖、BI、應用系統或者文件等等,這些資源可能存在於企業內部,例如企業的ERP系統、CRM系統或人力資源系統 。還可以連線到非結構化資料來源,例如,支援 PDF 和螢幕截圖等檔案提交系統,支援物聯網感測器的接入,資料編織還可以從公共可用資料(如社交媒體)等外部系統中提取資料。
-
第二、資料編織需要有靈活的資料目錄。
首先資料編織最好能自動的識別和獲取後設資料,比如資料庫中的schema。
其次,能夠基於ML/AI能力對資料的語義進行分析,打上資料的標籤,從而加深對資料的業務理解,比如針對文件進行語主題分析給出分類,又比如針對關鍵欄位的資料進行分析給出列舉的說明,再比如透過欄位的上下文智慧判斷敏感級別。
最後,基於後設資料構建知識圖譜,即將碎片化的後設資料有機的組織起來(比如建立關係和物件), 讓資料目錄更加容易被人和機器理解和處理,併為搜尋、挖掘、分析等提供便利,為後續AI的實現提供知識庫的基礎。
下圖是知識圖譜的一個示例,你可以認為節點“數學家”是資料湖A的某個文件的主題,然後“數學家”和“圖靈”是資料湖B的某個文件的主題,透過知識圖譜就可以把A和B的相關文件連線起來,透過知識圖譜讓我們對於資料之間的關係有了更清晰直觀的認識。
-
第三、基於知識圖譜實現設計和分析智慧
知識圖譜有兩大作用。
第一,可以快速的進行資料整合設計,比如實現源端連線配置、源端表和欄位等資訊的快速檢索和自動填充,使其更加直觀和易於解釋。
第二、可以進行資料的智慧推薦,比如基於資料的歷史使用情況進行推薦,也就是把正確的資料,在正確的時間裡,給到正確的人。
知識圖譜在商業推薦領域應用的已經比較廣泛,把它移植到資料連線領域就成了新鮮玩意,我們以前的資料整合設計主要是“人找資料”,而資料編織設計的核心是“資料找人”,以前對這句話不太能理解,現在終於明白它在講什麼。
-
第四、實現資料的動態整合和自動編排
有了前面的基礎,資料的動態整合就成了可能,動態資料整合技術包括本體技術和網格技術。
網格技術原理比較簡單,就是能夠支撐各種資料來源之間的資料交換、共享和協同計算,能夠進行跨資料來源的資料整合,比如用一個SQL直接跨資料來源進行資料融合計算,現在有人在提NOETL,估計就是指這個吧。
本體技術比較複雜,這裡舉一個例子[1]就明白了:
以車管所資料為例,透過車管所的資料可以建立一種人-車-罰單的本體模型,人與車之間為擁有關係;人與罰單之間透過“闖紅燈”事件相連線,而罰單本身則以文件的形式展現。完成本體模型後,就實現了基於後設資料的知識圖譜,如下圖所示:
接下來,就需要將真實的資料對映到本體模型上。同時,要在欄位級別上對多源異構資料進行歸一化。還以車管資料為例,具體過程如下圖所示,可以看出,透過本體對映將車管所3張表的資料對映到了 7個本體上(2個實體、3個關係、1個事件和1個文件),並將車主名稱和姓名進行了統一,將日期的不同表示方式進行了歸一化。
透過以上建模過程,在應用側就建立了一個多源資料的統一的邏輯檢視,即從分析人員的角度對所有資料構建成了一個圖模型,分析人員無需關注底層資料來源差異和儲存細節,只需關注如何在此圖模型上進行整合設計即可,任何資料要整合進來,先進行以上過程,在後設資料層面進行拉通、融合。
這個整合具有動態的特點,核心邏輯就在於採用後設資料與儲存分離查詢的方案,來賦予知識圖譜“動態”特性,比如當表欄位發生變更時,直接更改與後設資料的對映關係就可以了,在應用端不需要重新匯入資料。
動態資料整合相容各種資料整合方式,包括但不限於 ETL、流式傳輸、複製、訊息傳遞和資料虛擬化或資料微服務等。同時,支援透過 API 支援與內部和外部利益相關者共享資料。
由於資料整合的工作量非常大,因此資料自動化編排變得非常重要,因為資料編排可以簡化和最佳化資料整合的流程,能夠自動執行工作流的不同步驟,比如將資料採集、清洗及轉換任務進行串接和自動執行,現在大多數ETL軟體都具備視覺化的編排能力。
-
第五、面向消費者提供自助能力
資料編織面向所有型別的資料使用者,提供資料和服務,包括:資料科學家、資料分析師、資料整合專家、資料工程師等,既能夠面向專業的IT 使用者的複雜整合需求處理,也可以支援業務人員的自助式資料準備和分析。
說完了以上內容,相信你馬上能看懂Gartner放出的下面這張資料編排英文架構圖,但當我第一次看到時,可是有點雲裡霧裡,因為充斥了太多的概念和關係,無論是資料目錄、知識圖譜、啟用後設資料、主動後設資料,AI/ML、動態資料整合還是自動資料編排等等。
應該來講,資料編織有很多不錯的設計思想,讀懂了以後,你會發現這些思想既陌生又熟悉,陌生是因為新的名詞,熟悉是裡面其實沒有什麼新東西,比如我們正在做的一鍵入湖,就是一種基於後設資料來進行自動化整合設計的實踐,這就是一種資料編織,可惜我們不會造詞。Gartner編排了很多概念在一起讓大家覺得這是一個新體系,當然這的確也是一種組合創新。
但說實話,資料編織離我們大多數公司還是有點遠。
比如資料編織希望解決分散式資料來源出現導致的資料孤島問題,但實際上大多數公司沒有那麼多的分散式資料來源,資料孤島問題主要還是企業的管理問題,利用資料編織去解決資料孤島問題,是純粹的技術思維,很難解決當前大多數公司的實際資料孤島問題,大家還是先老老實實去做資料治理吧。
又比如說資料編織的基礎是後設資料,但後設資料的缺失恰恰是現在大多企業最大的痛點,這極大限制了資料編織的價值,一鍵入湖其實我們10年前就想做了,但為什麼現在才能做出來,因為那個時候源端不願意提供全量後設資料或者提供不出來或者提供的質量太差,這是由企業的基礎資料管理水平決定的,而缺失了後設資料的資料編織就成了空中樓閣。
資料編織有點像當年的資料中臺,炒作了資料中臺這個概念後讓資料倉儲有了更好的演進,但資料編織估計更難一點,因為很難讓老闆理解。
如果老闆問我這個概念,也許我會這麼解釋資料編織,即“基於知識圖譜的分散式資料智慧整合、編排和自助資料服務”,然後逐個解釋清楚知識圖譜、分散式、整合、編排、智慧及自助等概念,這裡故意不提後設資料,大家都懂的,但我其實還是沒啥信心的。
參考文獻
[1] 百分點認知智慧實驗室 基於動態知識圖譜的大規模資料整合技術 202005
來自 “ 與資料同行 ”, 原文作者:傅一平;原文連結:https://mp.weixin.qq.com/s/OhczWJg2H2j76E35YaUdeA,如有侵權,請聯絡管理員刪除。
相關文章
- 資料編織 (Data Fabric) vs 資料網格 (Data Mesh)
- 什麼是資料編織"Data Fabric "?
- 談談資料編織(Data Fabric)和資料網格(Data Mesh)的關係
- 死磕hyperledger fabric原始碼|Order節點概述原始碼
- 死磕 java集合之終結篇Java
- 死磕 java同步系列之AQS終篇(面試)JavaAQS面試
- Data Fabric:資料管理的未來已來
- 終於懂了,為什麼說雲資料庫時代已來資料庫
- 死磕 java原子類之終結篇(面試題)Java面試題
- 資料網格與Data Fabric的區別 - thenewstack
- 死磕Java——ReentrantLockJavaReentrantLock
- 【死磕Sharding-jdbc】—基於 SSM 整合shardingJDBCSSM
- “終於懂了” 系列:Android元件化,全面掌握!Android元件化
- 死磕阻塞佇列佇列
- 騰訊死磕SLG!
- 死磕 Elasticsearch 方法論Elasticsearch
- 什麼?還在用delete刪除資料《死磕MySQL系列 九》deleteMySql
- 終於懂了TCP和UDP協議區別TCPUDP協議
- 終於搞懂了 Nacos、OpenFeign、Ribbon 等元件協調工作的原理,太強了!元件
- 死磕Java——volatile的理解Java
- 死磕The Swift Programming Language——學Swift
- 面試:為了進阿里,死磕了ThreadLocal記憶體洩露原因面試阿里thread記憶體洩露
- 我終於弄懂了Python的裝飾器(二)Python
- 我終於弄懂了Python的裝飾器(一)Python
- 我終於弄懂了Python的裝飾器(三)Python
- 【死磕 Java 基礎】— 我同事一個 select 分頁語句查出來了 3000W 條資料Java
- 使用Data Lake Analytics讀/寫RDS資料
- 【死磕JVM】五年 整整五年了 該知道JVM載入機制了!JVM
- 終於有人把工業資料採集講明白了
- 終於有人把能把資料採集給講明白了
- 終於有產品資料管理(PDM)最新功能了
- 死磕synchronized底層實現synchronized
- 換個方式來講區塊鏈,終於看懂了!區塊鏈
- 好訊息:終於可以將Discord伺服器組織到資料夾中伺服器
- 重重封鎖,讓你一條資料都拿不到《死磕MySQL系列 十三》MySql
- 死磕以太坊原始碼分析之EVM固定長度資料型別表示原始碼資料型別
- MPP大資料系統架構,終於有人講明白了大資料架構
- 大資料基礎架構Hadoop,終於有人講明白了大資料架構Hadoop