Cloudera 客戶運行著地球上最大的一些數據湖。這些湖為關鍵任務大規模數據分析、商業智能 (BI) 和機器學習用例,包括企業數據倉庫,提供動力。近年來,創造了“數據湖倉”一詞來描述這種對數據湖中的數據進行表分析的架構模式。在匆匆奔向這個術語的過程中,許多廠商忽略了這樣一個事實,即數據架構的開放性是其持久性和長盛不衰的保證。
關于數據倉庫和數據湖
數據湖和數據倉庫將海量的各種類型數據統一到一個中心位置。但是有著截然不同的架構世界觀。數倉是為SQL 分析垂直集成的,而數據湖優先考慮 SQL 之外的分析方法的靈活性。
為了能兼得魚與熊掌——數據湖中分析的靈活性和數倉中簡單快速的 SQL,企業經常部署數據湖來補充他們的數倉,在數據提取、轉換、加載 (ETL) 或 ELT 管道的最后一步讓數據湖為數倉系統提供數據。在這樣做的過程中,他們等于接受了數據在倉庫中的鎖定。
但可以有一個更好的方法:用 Hive 元存儲,這是過去十年數據平臺一個出人意料的好產品。隨著用例的成熟,我們看到高效的交互式 BI 分析和事務語義來修改數據的需求。
數據湖倉的迭代
第一代 Hive元存儲試圖解決在數據湖上高效運行 SQL 的性能考慮。它提供了數據庫、模式和表的概念,用于描述數據湖的結構,讓 BI 工具可以有效地充分使用數據。它添加了描述數據邏輯和物理布局的元數據,支持基于成本的優化器、動態分區裁剪以及針對 SQL 分析的一些關鍵性能改進。
第二代 Hive元存儲添加了對使用 Hive ACID 的事務更新的支持。數據湖倉雖然尚未正式命名,但已開始熱鬧。事務性啟用了持續攝取和插入/更新/刪除(或合并)的用例,從而打開了數倉樣式的查詢、功能以及從其他數倉系統到數據湖的遷移。這對我們的許多客戶來說非常有價值。
Delta Lake項目采用不同的方法來解決這個問題。Delta Lake為數據湖中的數據添加了事務支持。可以進行數據策管,為數據湖帶來了運行數倉式分析的可能性。
漸漸的在某個時刻,“數據湖倉”這個詞因為這種架構模式而被造出來了。我們相信湖倉是簡潔地定義這種模式的好方法,并很快在客戶和行業中獲得了共識。
開放數據湖倉滿足互操作性需求
在過去幾年中,隨著新數據類型的誕生和新的數據處理引擎的出現,為了簡化分析,企業所期望的兩全其美真的需要分析引擎的靈活性。如果企業海量有價值的數據需要被管理,那么企業必須能夠開放的選擇不同的分析引擎,甚至是供應商。
湖倉模式在實施過程中存在一個嚴重的矛盾:雖然數據湖是開放的,但湖倉卻不是。
在能夠添加 Impala、Spark 等引擎之前,Hive元存儲一直遵循 Hive為先的演進。Delta lake是Spark為主的演進;如果客戶想要自由選擇不同的引擎而不只是表格式,他們的選擇極為有限。
客戶從一開始就要求更多。更多格式、更多引擎、更多互操作性。今天,Hive 元存儲被多個引擎和多個存儲選項使用。除了 Hive 和 Spark,還有 Presto、Impala 等等。Hive元存儲是有機地演進支持這些用例,因此集成通常很復雜且容易出錯。
為滿足互操作性需求而設計的開放數據湖倉從根本上解決了這一架構問題。它會讓那些全押在一個平臺上的人感到不安,但社區驅動的創新能幫助解決現實世界的問題,以務實的方式幫助使用同類最佳工具,并克服供應商的鎖定。
開放湖倉Apache Iceberg的誕生
Apache Iceberg 從一開始構建時,其目標就是在多個分析引擎在云原生規模上輕松實現互操作。這項創新的誕生之地 Netflix 需要將 100 PB 規模的 S3 數據湖構建到數倉中,這可能是最佳示例了。云原生表格式由其創建者開源到 Apache Iceberg 中。
Apache Iceberg 真正的超級力量是它的社區。在過去三年中,Apache Iceberg 社區有機地蓬勃發展,增加了一系列令人贊嘆的優異集成:
· 數據處理和 SQL 引擎 Hive、Impala、Spark、PrestoDB、Trino、Flink
· 多種文件格式:Parquet、AVRO、ORC
· 社區中的大型采用者:Apple、LinkedIn、Adobe、Netflix、Expedia 等
· AWS Athena、Cloudera、EMR、Snowflake、騰訊、阿里巴巴、Dremio、Starburst 的托管服務
使這個多樣化的社區蓬勃發展的原因是數千家公司的集體需求,以確保數據湖可以演變為包含數據倉庫,同時保持跨引擎的分析靈活性和開放性。這使得開放式湖倉成為可能:為未來提供無限的分析靈活性。
Cloudera擁抱Iceberg模式
在 Cloudera,我們為我們的開源根基感到自豪,并致力于社區貢獻。自 2021 年以來,我們為日益壯大的 Iceberg 社區在 Impala、Hive、Spark 和 Iceberg 上做出了數百項貢獻。我們擴展了 Hive 元存儲將集成添加到我們的許多開源引擎中以充分利用 Iceberg 表。2022 年初,我們在 Cloudera Data Platform (CDP) 中提供了 Apache Iceberg 的技術預覽,使 Cloudera 客戶能夠在我們的數據倉庫、數據工程和機器學習服務中實現 Iceberg 的模式和時間旅行能力。
我們的客戶一直告訴我們,無論是現代 BI、AI/ML、數據科學還是更多,分析需求都在迅速發展。選擇由 Apache Iceberg 提供支持的開放數據湖倉讓企業可以自由選擇分析。