數據湖三大框架

一、數據湖框架
目前市面上流行的三大開源數據湖方案分別爲:Delta Lake、Apache Iceberg和Apache Hudi

1、Delta Lake:DataBricks公司推出的一種數據湖方案,官網

 2、Apache Iceberg:以類似於SQL的形式高性能的處理大型的開放式表,官網

 3、Apache Hudi:Hadoop Upserts anD Incrementals,管理大型分析數據集在HDFS上的存儲,官網


二、Delta Lake
 2.1、簡介
        Delta Lake 是 DataBricks 公司開源的、用於構建湖倉架構的存儲框架。能夠支持 Spark,Flink,Hive,PrestoDB,Trino 等查詢/計算引擎。作爲一個開放格式的存儲層,它在提供了批流一體的同時,爲湖倉架構提供可靠的,安全的,高性能的保證。

 2.2、Delta Lake 關鍵特性
        1、ACID事務:通過不同等級的隔離策略,Delta Lake 支持多個 pipeline 的併發讀寫;

        2、數據版本管理:Delta Lake 通過 Snapshot 等來管理、審計數據及元數據的版本,並進而支持 time-travel 的方式查詢歷史版本數據或回溯到歷史版本;

        3、開源文件格式:Delta Lake 通過 parquet 格式來存儲數據,以此來實現高性能的壓縮等特性;

        4、批流一體:Delta Lake 支持數據的批量和流式讀寫;

        5、元數據演化:Delta Lake 允許用戶合併 schema 或重寫 schema,以適應不同時期數據結構的變更;

        6、豐富的DML:Delta Lake 支持 Upsert,Delete 及 Merge 來適應不同場景下用戶的使用需求,比如 CDC 場景;

三、Apache Iceberg
3.1、簡介
        Apache Iceberg 是Netflix 開發開源的,是一種用於大型分析表的高性能格式。Iceberg 爲大數據帶來了 SQL 表的可靠性和簡單性,同時讓 Spark、Trino、Flink、Presto 和 Hive 等引擎能夠同時安全地使用相同的表。

3.2、Apache Iceberg特性
        1、格式演變:支持添加,刪除,更新或重命名,並且沒有副作用

        2、隱藏分區:可以防止導致錯誤提示或非常慢查詢的用戶錯誤

        3、分區佈局演變:可以隨着數據量或查詢模式的變化而更新表的佈局

        4、快照控制:可實現使用完全相同的錶快照的可重複查詢,或者使用戶輕鬆檢查更改

        5、版本回滾:使用戶可以通過將表重置爲良好狀態來快速糾正問題

        6、快速掃描數據:無需使用分佈式SQL引擎即可讀取表或查找文件

        7、數據修剪優化 :使用表元數據使用分區和列級統計信息修剪數據文件

        8、支持事務 :序列化隔離,表更改是原子性的,讀取操作永遠不會看到部分更改或未提交的更改

        9、高併發:高併發寫入使用樂觀併發,即使寫入衝突,也會重試以確保兼容更新成功

四、Apache Hudi
4.1、簡介
        Hudi是Hadoop Updates and Incrementals的簡寫,它是由Uber開發並開源的Data Lakes解決方案。Hudi 用於管理的數據庫層上構建具有增量數據管道的流式數據湖,同時針對湖引擎和常規批處理進行了優化。簡言之,Hudi是一種針對分析型業務的、掃描優化的數據存儲抽象,它能夠使DFS數據集在分鐘級的時延內支持變更,也支持下游系統對這個數據集的增量處理。

4.2、Apache Hudi 特性
        1、使用快速、可插入的索引進行更新、刪除

        2、增量查詢,記錄級別更改流

        3、事務、回滾、併發控制

        4、自動調整文件大小、數據集羣、壓縮、清理

        5、用於可擴展存儲訪問的內置元數據跟蹤

        6、式攝取、內置 CDC 源和工具

        7、支持 Spark、Presto、Trino、Hive 等的 SQL 讀/寫

        8、向後兼容的模式演變和實施
————————————————

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章