前言
大家好,我是艦長。
上一篇文章我們看遍了各家的 Data Observability 定義,本文要繼續認識在 Data Observability,我們會觀測哪些東西。
這裡就直接採用 Monte Carlo 這家公司提出的五大支柱。

第一支柱:新鮮度(Freshness)
新鮮度,即是「你的資料是不是足夠『即時』?」
其實過去 Data 圈在談「資料品質」時,也會關注這個重要項目。
還記得我們前面幾篇文章說過的故事,Data User 發現今天查詢的業績報表數字怪怪的。業務主管記得明明上週有一筆大單,但查看業績報表數字就是對不上。最後向 Data Team 反應才發現是上游的資料管線停擺了一天,
新鮮度關注資料的時效性。你的資料應該要在「預期的時間」內被更新,並且要更新至 Data user 需要的那個時間區段內的 Data。
用比喻來說,就是訂閱的概念。好比訂報紙、固定發刊的電子報、週刊、雜誌⋯⋯
每週四12:00固定會發刊的付費電子報,結果已經週四13:00 了,你還是沒收到。或者你準時收到了,但內容居然跟上週一樣。
這就是新鮮度想要觀測的。
第二支柱:資料量(Volume)
資料量,這個字面意思應該不用解釋吧。
這也是一般在談資料品質、資料驗證時大家都會想到的項目。
你上游說每次都會提供 10 萬筆資料,那我就來驗收是不是有10萬筆,結果一驗怎麼只有 99999筆。
又或者是,最近半年內每個月的訂單資料大約都是 1萬筆上下,怎麼忽然11月暴增為 5 萬?這是不是有異常?
資料量 Volume 觀測的就是你資料的「量」是不是吻合你的預期。
第三支柱:品質(Quality)
Quality 品質,這一項就有點意思了,因為單看 Quality 這個字,似乎是直接把過去資料圈一直在談的 Data Quality 整個放進來當成一個觀測項目。
因此也有另外一個說法,是改用 Distribution 分佈這個字,更精準表達我們要觀測的是資料的值(內容)是否都落在合理的範圍。
舉例來說,你這一批資料是關於台灣的便利商店,結果在經緯度這一欄卻出現了非洲的位置,顯然資料必有問題;又或者這批資料關於人事,其中一個欄位是人員的年齡,但卻出現了四位數字的資料,這資料也必然有問題。
我個人是比較喜歡分佈這個說法,一來可以避免跟其他的 Data Quality 混用,導致議題混淆。另外分佈,更能表現出統計學的意味,我們是用一種科學的方式在評估資料是否吻合我們的期待。
第四支柱:結構(Schema)
資料結構,這也是一個過往以來不論是軟體圈或 Data 圈都會關注的項目。
「欸,明明說好資料會有 10 個欄位,怎麼少了一個?」
「欸,明明說好這個欄位是整數,怎麼取出來有小數點?」
資料結構就像是資料的基本規格,也可以說是一份約定。
所以資料結構如果有任何異動時,都必須要讓上下游知道,不然可能會發生上游資料寫不進來,下游拿到不如預期的資料。
這就好比前端去呼叫後端的API,你們說好會回傳 user_id,結果怎麼傳來的是 uuid。
也好比大賣場貨架A明明一直都擺台灣豬肉,忽然改成進口豬肉,但沒有通知員工更改貨架上的商品標籤,於是消費者一拿怎麼都不是台灣豬。
第五支柱:血緣(Lineage)
最後一個支柱就真的比較偏 Data 圈會在意的內容,那就是資料血緣。
血緣,我個人覺得是非常吻合 Observability 這個字的一項內容。怎麼說呢?好比 Observability 剛出來時,大家都說 Observability 幫助我們串起了監控與除錯所需要的所有資訊(Metrics、Logs、Traces)。而對於 Data 而言 Lineage 就有這種串起所有資訊的味道。
Lineage 關心的是,資料從哪來?又會往哪裡去?它的上下游關係。
常見的比喻是「食品產銷履歷」或是「產品原物料追蹤」。簡單來說就是當你今天拿到一個有問題的食物或產品,你向廠商反應,而廠商有辦法快速的追蹤出該食品或產品包含哪些原物料,這些原物料來自哪些上游供應商,又是由哪些工廠經手處理,最後做出產品提供給下游消費者。
也就是說資料血緣,為我們提供了一個全局視野,我們就更容易找到是那個上游的資料來源提供了有問題的資料,也方便判斷會是哪個資料管線處理過程出了問題。
所以我才說,這是一個很 Observability 的支柱。因為它能幫助我們串聯不同階段的資訊,用更全面的視野去關注 Data 的變化。
小結
本文簡單聊完了 Data Observability 的五大支柱,但其實這五項都不是新東西,而是 Data 圈一直都有在關注的事情。
這也呼應我前幾篇文章提到的,過去以來 Data 圈早就在想方設法想要解決 Data 品質的問題,例如在資料圈內,資料治理的重要指南 DAMA-DMBOK(Data Management Body of Knowledge),就已經有提過跟這五大支柱相同的內容了。
例如在 DAMA-DMBOK 2 的第 13 章 Data Quality Management,就有列出許多常見的 Data Quality Dimensions,其中就有 Timeliness 可以對應五大支柱的 Freshness 確保資料都有及時到位;Completeness 可以對應五大支柱的 Volume 確保該有的資料都有到位。
第 13 章也有提到 Data Profiling(常見譯為資料剖析),可以對應五大支柱的 Distribution。透過 Data Profiling 去檢查 Data 內的空值、最大值、最小值、長度、值的分佈狀況⋯⋯等
第 12 章 Metadata Management 則可以對應五大支柱的 Schema,Data Schema 是 Data 重要的 metadata 必須做好管理與追蹤。
最後在第 8 章和第 12 章,也都有提到 Data Lineage 的相關內容。
(筆者不是資料治理的專家,只是手邊剛好有一本 DAMA-DMBOK2 簡中版,所以翻閱了一下內容。)
我認為 Data Observability 就跟其他 Buzzword 一樣,同樣也是因為時代變遷,現在有了新技術、新工具的狀況下,人們在反思過去資料品質的失敗經驗,進而找出該如何改善的新可能性。
所以如果再問一次,什麼是 Data Observability ?
我會說它是在因應企業資料治理的需求之下,實現資料品質監控的現代化技術手段,讓我們對「保持資料的健康(品質)」這件複雜的事,能有一個具備全面性的掌握。
系列文連結
此系列文持續撰寫中,陸續更新連結。
