我們知道當今的數據管理正在完全改變。幾十年來,企業依賴存儲信息的數據倉庫。它們結構化、受管制,並且能快速提取信息,雖然昂貴且僵化。相比之下,數據湖更高效,無論結構如何都能存儲大量數據。然而,數據湖倉架構的出現結合了數據湖和數據倉庫的優點。湖倉模型保留了數據湖提供的靈活性,同時整合了數據倉庫的可靠性、治理和性能。
用於大規模數據分析的最顯著的開源表格格式是Apache Iceberg。Iceberg處於這一轉變的最前沿,增強了湖倉架構中數據的價值。此外,Iceberg為數據湖面臨的許多問題提供了解決方案,包括模式演進、ACID事務、數據一致性和查詢性能。
本博客文章是探索Apache Iceberg及其在現代數據架構中角色的三部曲系列的第一部分。在這篇文章中,重點將放在以下主題上:
- 從數據倉庫演變到數據湖
- 與傳統方法相關的挑戰
- Apache Iceberg如何應對這些限制
系列中接下來的文章將更深入地探討Iceberg的架構,並探索Iceberg表格中的查詢工作原理。
簡要概述:數據湖從數據倉庫的演變
多年來,企業一直依賴數據倉庫,這成為了分析的中央基礎。數據倉庫作為一個集中式存儲庫,旨在從各種來源捕獲結構化數據,以高效生成報告和洞察。如今,數據倉庫促進了快速查詢性能和強大的治理機制,使其成為可靠且結構良好的系統。
然而,隨著數據量的增加,組織遇到了新的問題。
- 因高計算和存儲費用而導致的存儲成本上升
- 嚴格的模式強制執行,使得半結構化或非結構化數據的整合變得具有挑戰性
- 對AI和機器學習工作負載的支持有限
作為解決方案,企業開始利用數據湖。這使企業能夠在廉價的存儲中保留原始數據、結構化數據和非結構化數據,例如Amazon S3、Azure數據湖存儲、Google Cloud存儲和Hadoop分佈式文件系統。
數據湖的好處包括以下幾個因素:
- 在特定雲環境中降低存儲成本
- 使用新型數據格式,如非結構化、半結構化,甚至結構化數據
- 增強AI和機器學習應用的使用
即使有這些優勢,數據湖仍然帶來了新的問題,例如:
- 缺乏治理和架構導致資料集不一致。
- 索引和完整表掃描的低效利用使查詢性能變慢。
- 缺乏ACID事務使多用戶環境中確保數據完整性變得困難。
數據湖倉的出現
數據湖倉將數據湖的所有可伸縮性和經濟優勢與數據倉的生產力、可靠性和事務功能結合在一起。這是一種現代設計範式。
數據湖倉的主要優勢包括:
- 以更低價格同時容納存儲和處理功能
- 通過ACID事務實現有效的數據控制
- 修改架構而不影響現有查詢 – 架構演進
- 通過時間旅行功能檢索表的先前版本
這些功能的引入導致了現代表格格式的發展,例如Delta Lake、Apache Hudi和Apache Iceberg。這些結構使數據湖能夠像數據倉一樣運行,同時還可以保持靈活和非結構化,這是由於引入了結構化元數據層。在這些表格格式中,Apache Iceberg已成為一個領先的選擇,為希望過渡到數據湖倉架構的組織提供了堅固的解決方案。
Apache Iceberg:數據湖倉的改變者
什麼是表格格式?
使用表格格式提供了一種有效管理存儲在數據湖中的大量信息集的方法。它封裝了一些功能,包括:
- 將數據結構化為表格,以便進行有效管理和查詢。
- 高效地刪除和更新數據,以及更改模式。
- 通過更改元數據來提高查詢響應時間的性能。
與Hive等其他傳統表格格式一樣,之前依賴於基於目錄的存儲,這意味著表格是從某些文件目錄的內容構建的。然而,這種方法創建了性能瓶頸,因為查詢引擎必須在執行查詢之前過濾整個目錄。
從Hive發展到Iceberg
Hive表格格式旨在解決早期結構化數據湖的問題。其目的是讓用戶通過Apache Hive和Presto中使用的SQL查詢將數據集組織成表格。然而,Hive格式存在顯著的缺點:
- 由於缺乏ACID事務而導致來自不同來源的同時寫入所產生的不一致性。
- 由於元數據的管理效率低下而執行的昂貴的法律文件列表操作。
- 由於手動優化分區挑戰而導致的查詢速度慢。
Apache Iceberg如何解決這些挑戰
Apache Iceberg 是一種現代化的表格格式,消除了 Hive 所帶來的問題,同時提供 ACID 交易、架構演進以及對數據湖查詢的快速性能。
Apache Iceberg 的重要好處包括:
- ACID 交易保證可靠的數據更新和一致性。
- 能夠穿越時間並查詢歷史數據快照。
- 架構演進允許添加、重命名或刪除列而不會破壞現有查詢。
- 分區演進自動優化分區策略。
- 減少不必要的文件掃描,因為高效的元數據管理使得查詢執行更快。
最後的評論
隨著 Apache Iceberg 的出現,數據管理發生了劇變。它允許企業轉型為數據湖屋方法,以一種具有成本效益和高度可擴展的方式管理其信息,而不犧牲性能。顯然,隨著 Apache Iceberg 的發明,分析方式已經被改變,其使用率不斷上升。請關注本系列的最後一篇文章。在接下來的兩篇博客中,重點將轉向:
- 第二部分:Apache Iceberg 的架構,包括數據、元數據和目錄層。
- 第三部分:Iceberg 中查詢的機制,包括讀取和寫入、時間旅行和查詢優化方法。
Source:
https://dzone.com/articles/the-future-of-data-lakehouses-apache-iceberg