瞭解了資料合約的定義以後,有很多人的反應是“感覺很簡單,為什麼沒有/不直接執行呢?“。在軟體工程領域裡將API資料結構協議化與嚴格執行已經是行之有年的事了,而各種描述工具、語言也都是存在了十多年了(例:Google開發的ProtoBuf是在2008年首次發布)。近年來,分佈性的微服務(Micro Service)系統架構也更加提高了API協議的重要性。
其實,從資料團隊的角度來看,推行資料合約的主要難處不只是技術上的,也包含了很多組織文化與程序上的問題。而在剛開始設計、架構資料項目的時候,由於資料合約的主要組成部分在短期內相對固定(格式、結構、語義),因此大部分資料團隊都沒有一開始就採用的動力。如果有考慮到這點的話,通常也只是被歸到技術債(tech debt)而已。
所以,在考慮實踐資料合約的時候,需要同時考慮到如何技術上實踐資料合約定義與執行,但更重要的是如何在組織內推行資料合約的目標與程序。
用dbt實踐contrat的案例:主要是使用了dbt constraint
、contract
、version
等功能來實踐簡單的contract框架
Open Data Contract Standards:PayPal在內部推行資料網格是開發出來的資料合約標準,後來以Apache 2.0開源提供一般開發者使用。