COSCUP 2024

滴血認親,該怎麼解析你的 Query Statement ?
2024-08-03, 11:45–12:15 (Asia/Taipei), TR410

資料當道的現在,維護資料血緣是發揮資料價值的必要手段之一,常見的做法是基於語法解析器(parser)來解析query statement,取得其中的metadata。比如開源套件SQLGlot就是實作解析器以取得對應的metadata。然而,解析器往往只支援標準 query statement ,講者以自身經驗分享過去案例,將語法解析以資料庫執行計畫(query plan)取代,不僅減少外部工具的依賴,也徹底解決方言 (dialect) 的支援問題, 還可以結合開源工具OpenLineage將組織內資料血緣視覺化,進一步做到資料治理。


在這個資料日趨重要的時代背景下,梳理資料的生命週期、確保資料之間的關係,才能充分發揮資料的價值,而其中資料血緣就扮演了極為重要的角色,清楚的資料血緣搭配良好的視覺化工具,可以清楚地呈現出一段複雜 query statement 將哪些 table 做為輸入,又輸出了哪些 table。

為了達到維護資料血緣的目的,一般而言會直覺的使用社群中支援特定方言(dialect)解析器(parser), SQLGlot 就是一個不錯的選擇。然而,由於不同方言的差異性極大,解析器的實作也十分複雜,當特定的方言支援度不足時,往往只能被動等待解析器逐漸完善。講者提供了另一種思路,比起重新實作另一個解析器,我們其實已經有一個最強大且支援度完善的解析器 — 資料庫本身,講者將以 TSQL 及 MySQL 為例,分享如何透過執行時期的 query plan 取得資料血緣,並和既有做法比較。

除此之外,講者會介紹何謂 OpenLineage、如何用 OpenLineage 達到視覺化的目標,以及組織內在引進資料血緣後,資料治理上具體有哪些本質上的改變。

希望透過這場演講,能讓聽眾理解資料血緣的重要性、學會如何維護資料血緣,並應用於日常工作中。

大綱
- 為什麼會需要資料血緣?3min
- 滴血認親怎麼做?3 min
- 慘了,Parser 不支援啦!6min
- 把血滴進 DB 吧 6 min
- 血緣的視覺化 3 min
- 資料治理 3min
- Q&A 6min

來自國境之南的小小工程師,目前在永豐金打雜,對 Compiler、DB、Network 和各種語言都一點點涉略,頭快禿了QQ