馬哈魚帶你發(fā)現(xiàn)SQL中的數(shù)據(jù)血緣
一、馬哈魚數(shù)據(jù)血緣分析器( SQLFlow )是什么
在大型數(shù)據(jù)倉庫和數(shù)據(jù)湖中,完整的數(shù)據(jù)血緣關(guān)系可以用來進(jìn)行數(shù)據(jù)溯源、表和字段變更的影響分析、數(shù)據(jù)合規(guī)性的證明、數(shù)據(jù)質(zhì)量的檢查等。
那么到底什么是數(shù)據(jù)的血緣關(guān)系 (data lineage) 呢?
維基百科上的定義是:數(shù)據(jù)從哪里來,往哪里去,中間發(fā)生了哪些變化。
馬哈魚數(shù)據(jù)血緣分析器通過分析 SQL 腳本,給出完整的數(shù)據(jù)血緣關(guān)系。馬哈魚能夠處理多達(dá) 20 多種數(shù)據(jù)庫的 SQL 語句,復(fù)雜的存儲過程、動態(tài) SQL 語句也不在話下。擁有自主研發(fā)的通用 SQL 解析器的強(qiáng)大 SQL 處理能力,馬哈魚是你分析 SQL 數(shù)據(jù)血緣的首選。
二、馬哈魚數(shù)據(jù)血緣分析器是怎樣工作的
本視頻介紹如何利用馬哈魚數(shù)據(jù)血緣分析器來快速發(fā)現(xiàn) create view SQL 語句中各個(gè)表和字段的血緣關(guān)系,并用可視化的方式展現(xiàn)出來。
三、馬上體驗(yàn)一下
我特地為咱們【MySQL技術(shù)】公眾號的讀者們,爭取了價(jià)值600元的兩個(gè)月高級用戶帳號,體驗(yàn)該工具的功能。發(fā)送【MySQL技術(shù)+馬哈魚體驗(yàn)帳戶】 到 [email protected] 便可獲取。
有興趣的小伙伴可以體驗(yàn)下完整功能哦,下面接著來介紹。
四、產(chǎn)品版本
1.馬哈魚數(shù)據(jù)血緣分析器
馬哈魚數(shù)據(jù)血緣分析器是一個(gè) SaaS 服務(wù)。通過瀏覽器直接使用,無需安裝任何軟件。
通過瀏覽器訪問馬哈魚數(shù)據(jù)血緣分析器。
在瀏覽器中上傳SQL文本或文件。
點(diǎn)擊分析按鈕后,查看數(shù)據(jù)血緣關(guān)系的可視化結(jié)果。
在瀏覽器中,以交互形式,查看特定表或視圖的完整血緣關(guān)系圖。
用 grabit 工具或 API,提交需要處理的 SQL 文件,然后在瀏覽器中查看結(jié)果,或在自己的代碼中對返回的結(jié)果做進(jìn)一步處理。
2.私有化部署版本
支持企業(yè)私有化部署,可部署在隔離內(nèi)網(wǎng)環(huán)境。僅供企業(yè)內(nèi)部人員使用,保證數(shù)據(jù)的安全。提供完整的 API。
支持軟件OEM。軟件Logo定制,去除馬哈魚Logo,定制品牌Logo,突出品牌信息。
詳情請見安裝手冊。
3.企業(yè)版
馬哈魚數(shù)據(jù)血緣分析器企業(yè)版,包含私有化部署版本和 Java 類庫,可以方便的把 data lineage 功能集成到你的項(xiàng)目中, 支持多達(dá)20幾種主流數(shù)據(jù)庫復(fù)雜的 SQL 腳本,包含存儲過程。 單擊這里下載可運(yùn)行的 Java 程序及類庫。
五、馬哈魚數(shù)據(jù)血緣分析器的組成
Backend, 后臺由一系列 Java 程序組成。負(fù)責(zé) SQL 的解析、數(shù)據(jù)血緣分析、可視化元素的布局、身份認(rèn)證等。
Frontend, 前端由一系列 javascript、html 代碼組成。負(fù)責(zé) SQL 的遞交、數(shù)據(jù)血緣關(guān)系的可視化展示。
Grabit 工具, 一個(gè) Java 程序。負(fù)責(zé)從數(shù)據(jù)庫、版本控制系統(tǒng)、文件系統(tǒng)中收集 SQL 腳本,遞交給后臺進(jìn)行數(shù)據(jù)血緣分析。
Restful API,一套完整的 API。讓用戶可以通過 Java、C#、Python、PHP 等編程語言與后臺進(jìn)行交互,完成數(shù)據(jù)血緣分析。

六、馬哈魚數(shù)據(jù)血緣分析器的局限
馬哈魚數(shù)據(jù)血緣分析器僅僅通過分析 SQL 腳本,包含存儲過程(proceudre, function, trigger)來獲取數(shù)據(jù)庫中 的數(shù)據(jù)血緣關(guān)系。但在 ETL 數(shù)據(jù)轉(zhuǎn)換過程中,會用到很多其它技術(shù)和工具,由此產(chǎn)生的數(shù)據(jù)血緣關(guān)系目前 馬哈魚數(shù)據(jù)血緣分析器無法探知。
七、進(jìn)一步了解馬哈魚數(shù)據(jù)血緣分析器
支持多達(dá)21個(gè)主流數(shù)據(jù)庫: bigquery, couchbase, dax, db2, greenplum, hana, hive, impala, informix, mdx, mysql, netezza, odbc, openedge, oracle, postgresql, redshift, snowflake, sparksql, sqlserver, sybase, teradata, vertica
馬哈魚數(shù)據(jù)血緣分析器的客戶
Architecture document
八、數(shù)據(jù)血緣關(guān)系
這里用數(shù)據(jù)庫中常用的表和視圖來對數(shù)據(jù)血緣關(guān)系做一個(gè)說明,實(shí)際的情況會比這個(gè)復(fù)雜。
數(shù)據(jù)庫中視圖 (View) 的數(shù)據(jù)來自表 (Table) 或其他視圖,視圖中字段 (Column) 的數(shù)據(jù)可能來自多個(gè)表中多個(gè)字段的聚集 (aggregation)。表中的數(shù)據(jù)可能通過ETL從外部系統(tǒng)中導(dǎo)入。這種從數(shù)據(jù)的源頭經(jīng)過各個(gè)處理環(huán)節(jié),到達(dá)數(shù)據(jù)終點(diǎn)的數(shù)據(jù)鏈路關(guān)系稱為數(shù)據(jù)血緣關(guān)系 (data lineage)。
舉例來說,領(lǐng)導(dǎo)可能會問財(cái)務(wù)報(bào)表中的統(tǒng)計(jì)結(jié)果,它是有哪些子系統(tǒng)(采購、生產(chǎn)、銷售等)提供的數(shù)據(jù)匯總而成的?開發(fā)人員會關(guān)心當(dāng)某個(gè)子系統(tǒng)(例如 銷售子系統(tǒng))的數(shù)據(jù)結(jié)構(gòu)發(fā)生變化時(shí),可能會影響哪些其它子系統(tǒng),財(cái)務(wù)報(bào)表子系統(tǒng)也是否需要進(jìn)行改動?
馬哈魚數(shù)據(jù)血緣分析器會幫助你回答這些問題,以可視化的圖形方式把 數(shù)據(jù)血緣關(guān)系呈現(xiàn)在你面前,讓你對組織的IT系統(tǒng)中的數(shù)據(jù)流動一目了然。

再次推薦各位體驗(yàn)下這款工具,筆者特意爭取到了價(jià)值600元的兩個(gè)月高級用戶帳號,可以體驗(yàn)該工具的功能。發(fā)送【MySQL技術(shù)+馬哈魚體驗(yàn)帳戶】 到 [email protected] 便可獲取。有興趣的小伙伴不妨試試看,有任何問題也可通過此郵箱與作者溝通。
