数据湖技术之iceberg(十三)Iceberg与Hudi对比

南墨2年前技术文章4032

Iceberg和Hudi都是数据湖技术,从社区活跃度上来看,Iceberg有超越Hudi的趋势。他们有以下共同点:

l   都是构建于存储格式之上的数据组织方式

l   提供ACID能力,提供一定的事务、并行执行能力

l   提供行级别数据修改能力。

l   提供一定的Schema扩展能力,例如:新增、修改、删除列操作。

l   支持数据合并,处理小文件。

l   支持Time travel 查询快照数据。

l   支持批量和实时数据读写

Iceberg与Hudi之间不同点在于以下几点:

l   Iceberg支持Parquet、avro、orc数据格式,Hudi支持Parquet和Avro格式。

l   两者数据存储和查询机制不同

l   Iceberg只支持一种表存储模式,就是有metadata file、manifest file和data file组成存储结构,查询时首先查找Metadata元数据进而过滤找到对应的 SnapShot对应的manifest files ,再找到对应的数据文件。Hudi支持两种表存储模式:Copy On Write(写时合并) 和Merge On Read(读时合并),查询时直接读取对应的快照数据。

l   对于处理小文件合并时,Iceberg只支持API方式手动处理合并小文件,Hudi对于小文件合并处理可以根据配置自动的执行。

l   Spark与Iceberg和Hudi整合时,Iceberg对SparkSQL的支持目前来看更好。Spark与Hudi整合更多的是Spark DataFrame API 操作。

l   关于Schema方面,Iceberg Schema与计算引擎是解耦的,不依赖任何的计算引擎,而Hudi的Schema依赖于计算引擎Schema。


相关文章

presto参数优化

presto参数优化

总体参数1)session级别的参数配置 query.max-run-time=600s 在终止查询之前,允许在群集上处理查询的最大时间。时间包括分析和计划的时间,也包括在队列中等待的时间,因此本...

Impala 操作命令

Impala 操作命令

Impala的外部shell选项描述-h, --help显示帮助信息-v or --version显示版本信息-i hostname, --impalad=hostname 指定连接运行 impala...

Kerberos集成Hadoop

Kerberos集成Hadoop

1、创建kerberos主体(1)路径准备为各服务准备一个安全的路径来存储keytab文件mkdir /etc/security/keytab/ chown -R ro...

MySQL创建用户授权

创建用户授权一、创建用户1.创建管理用户create user 'test'@'%' identified by 'Test123@'create user 'test'@'localhost' id...

MySQL 自增列使用上的一些 “坑”

MySQL 自增列使用上的一些 “坑”

前言MySQL 的规范中,一般都会建议表要有主键,常使用自增列作为主键字段,这和 MySQL 属于聚簇索引表有关,顺序增长的主键比较合适。最近有研发咨询,为什么有张表的自增主键变的非常大?而且偶尔还出...

Python 序列化与反序列化

1、为什么要序列化内存中的字典、列表、集合以及各种对象,如何保存到一个文件中?如果是自己定义的类的实例,如何保存到一个文件中?如何从文件中读取数据,并让它们在内存中再次恢复成自己对应的类的实例?要设计...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。