数据湖(iceberg,hudi,delta)三剑客生产环境选型

针对数据湖的功能,大致都一样,比如ACID,时间旅行,流批一体等等,基础的功能和对比网上很多,但都能支持通用功能,唯一不一样的是,hudi支持数据库特性,具体我们就不在这里叙述了。

在生产环境如何选择:我们对系统一般分为,自研系统,公司内部使用,客户使用等不同场景。

先介绍一下各个产品的定位:

Apache Iceberg 是一种用于大型分析数据集的开放表格格式。Iceberg 使用类似于 SQL 表的高性能表格式将表添加到计算引擎中,包括 Spark、Trino、PrestoDB、Flink、Hive 和 Impala。

Apache Hudi是下一代流数据湖平台。 Apache Hudi 将核心仓库和数据库功能直接引入数据湖。Hudi 提供事务高效的更新插入/删除高级索引流式摄取服务、数据聚类/压缩优化、 和并发性,同时将数据保留为开源文件格式。

Delta Lake 是一个开源项目,可以在数据湖之上构建 Lakehouse 架构。Delta Lake 提供 ACID 事务、可扩展的元数据处理,并在现有数据湖(如 S3、ADLS、GCS 和 HDFS)之上统一流式批处理数据处理。

iceberg 定位是 是表格的开发格式,什么引擎只要对接,都能识别这种格式。

hudi 定位是数仓+数据库的功能实现

delta 是构建湖仓一体和批流一体的提出者。

从者三个定位,我们都很清楚了,iceberg 是做标准,做一个通用的标准。hudi 是在数据湖上玩数据库,可能后面就是一个支持数据湖的数据库。 data在做集成,能支持数据湖,也能支持数据仓库,即能实现批处理,也能实现流处理。

三个产品怎么选择呢?

第一种:

如果你是互联网公司,系统只有自己使用,并且有一定能力对开源进行修改,成为社区的committee,可以根据公司的业务场景进行改造。那个产品都适合自己。

第二种:

如果你是给客户做产品,这个时候要考虑比较多,1.考虑稳定,2.考虑标准,3.考虑长久。

那这个产品属于iceberg莫属,其他产品有可能在时代的迭代中,会走偏了,最后被淘汰了,但是标准不会,不管后面怎么走,你一定要支持标准。iceberg不绑定任何组件,spark,flink 都没关系,如果你想更改表,可以用java 或者jdbc 都可以支持,你可以用java 开发管理表结构,动态创建表,修改表字段,hudi 不行,只能spark或者flink,修改完了,版本不一样,可能还支持。

第三种:

如果你是做实时数仓,对数据的更新性能要求特别高,只是想在数据库上体验实时数仓,这个时候可以用hudi ,hudi在更新上类似数据库,增加了索引和表主键ID的定义实现,如果有索引就比较快进行update操作。你就当是一个数据库,但是有一点不好,hudi底座不是通用的,组件想实现hudi交互,就需要从底层改源码,一步步实现。并且版本也要考虑,所以在版本集成的时候,spark的版本,flink版本都比较讲究,要稳定,需要你有测试能力。

第四种:

如果你公司是做AI的,湖仓一体的,对实时要求也不是很高,有就可以,主要以AI,离线,分析为主。可以考虑delta,delta 除了spark,同时也支持sql和python,可以用python的数学函数和AI框架进行对delta进行操作,写入的数据,建一张表,在对象存储(HDFS/S3)中就是一个文件夹,如果你是ELT人员,你可以往文件夹写数据,或者清洗数据,清洗完,把文件夹分享给AI团队,可以用python直接操作文件夹,进行操作。可以很方便进行各个团队之间的合作。

总结:

通过以上对比分析,根据不同的场景,选择不同的数据湖产品,最主要是长久和稳定,同样目前面临的问题就是,没有标准,没有标准对用户的选择比较艰难,delta 在3.0推出了标准支持,支持iceberg格式。将iceberg作为数据表格的标准,这样不管谁建的表,都是互通的。不管怎么样,iceberg可能不会淘汰的,剩下两个就看发展了。

实时数据湖是一种数据存储和管理架构,具有实时和可靠的特性。DeltaHudiIceberg是实时数据湖的三种常见的开源工具。 Delta是由Databricks开发的一种用于构建实时数据湖的开源工具。它提供了事务一致性、数据不可变性和快速查询等特性。Delta使用了写时复制技术,可以实现数据的原子性和一致性,并支持合并(merge)操作,使得数据的变更能够实时应用于数据湖中。 Hudi(Hadoop Upserts Deletes and Incrementals)是一种由Uber开源的实时数据湖工具。它能够支持插入、更新和删除等数据操作,并且具备增量数据的流式处理能力。Hudi还支持异步索引构建和数据快照等功能,能够提供较好的查询性能和数据一致性。 Iceberg是由Netflix开源的一种用于构建实时数据湖的工具。它提供了强大的事务性写入、时间旅行查询和模式演化等功能。Iceberg支持快照(snapshot)和版本控制的方式管理数据,可以实现数据的版本回退和数据架构的演化。 这三种工具都可以用于实时数据湖的构建,但在具体应用上有一些差异。Delta更加关注与数据湖和Apache Spark的集成,适用于需要高性能和大规模数据处理的场景。Hudi则更适用于增量数据流的处理和对数据进行实时更新的需求。Iceberg则更注重数据版本管理和数据架构演化的能力。根据具体的业务需求和技术栈选择适合的工具,可以更好地构建实时数据湖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值