要討論資料倉儲的缺點,先重新審視一下資料倉儲的資料同步流程,如上圖所示,可以看到此流程的幾個特性:
這麼做有些許好處,如:
*Schema-on-write
補充說明 Schema-on-write 的定義:
1.對寫入資料有明確規範,包含欄位資料格式、欄位限制(如:primary key)
2.資料寫入資料庫或資料倉儲前會針對資料格式作檢驗,故利於保持格式一致及進行資料治理
但這卻也帶來了一些顯而易見的問題,包含:
另外也產生了一些分析/建模相關的延伸性問題,如:
*一致性
如 DDIA 所述,一致性一詞的確被濫用,此處與上篇所提之 ACID 交易保證的一致性並無關聯;
此處指的是 資料倉儲的資料 與 源頭交易系統的資料 之間的一致性,也可以理解成 資料的新鮮度。
*非結構化資料
與結構化資料如:關聯式資料庫裡的表格相對,指的是沒有結構的資料,像是文字、圖片、影片、音訊等。
*行/列導向
傳統關聯式資料庫 ODBC/JDBC 接口是以 row-by-row 方式進行資料處理;
但AI/ML資料訓練則是以 column-by-column 方式進行資料取用(一個column就是一個feature)。
有關行式/列式儲存可延伸閱讀《資料密集型應用系統設計》- 第三章:資料儲存與檢索
系列文明日《效能跟一致性? 資料湖倉全都要!》,將闡述分析架構如何從傳統資料倉儲、資料湖一路演進到資料湖倉,過程中一步步改善舊有架構在效能、資料一致性、擴展性與成本上的困境,並說明這些轉變背後採用了哪些核心技術與設計理念。
My Linkedin: https://www.linkedin.com/in/benny0624/
My Medium: https://hndsmhsu.medium.com/