现如今每个企业的数据是越来越多,所以相对来说数据仓库,数据湖,湖仓一体等大数据架构都是经常使用的解决方案。本文我们针对大家在数据湖(Hudi、Iceberg、Paimon)上进行技术选型做一些相关的对比参考项。供大家可以根据实际情况来选择数据湖解决方案。具体对比信息如下:
对比项 | Hudi | Iceberg | Paimon |
ACID事务支持 | 支持 | 支持 | 支持 |
Copy-On-Write(写时复制) | 支持 | 支持 | 不支持(Paimon是LSM Tree结构) |
Merge-On-Read(读时合并) | 支持 | 不完全支持(无法平衡查询性能,需要手动ompaction) | 不完全支持(读取数据时,会合并多层LSM数据,并行数会受到桶数的限制。尽管Paimon的合并性能搞笑,但是仍然无法赶上普通的AppendOnly表) |
批量加载(Bulk load) | 支持Bulk Insert | 不支持 | 不支持 |
具有记录级索引的搞笑合并写入 | 支持 | 不支持 | |
是否可以将数据就地升级到系统中而无需重写数据 | 支持 | 支持表迁移 | 不支持 |
增量查询湖区表指定时间窗口的数据 | 支持 | 仅支持append数据 | 支持 |
Time Travel | 支持 | 支持 | 支持 |
数据摄入 | 支持DeltaStreamer | 不支持 | 支持Flink cdc导入 |
并发控制 | 支持非阻塞表服务的OCC | 仅支持OCC | 支持多个并发写作业的乐观并发 |
primary key | 支持 | 不支持 | 支持 |
列统计和Data SKip 查询是否可以从基于任何列的谓词的文件修剪中受益,而无需读取数据文件页脚 | 支持元数据中的 Col 统计 列统计索引总计性能提升 50 倍 | 支持清单中的列统计信 | 支持基于索引(如minmax),过滤无关文件并提供高性能查询,支持更多索引。 |
基于内置函数的Data Skip | 不完全支持(通过 col stats 索引,Hudi 可以根据列谓词和列上的顺序保留函数有效地修剪文件。) | 支持(Iceberg 可以将表数据转换为分区值并维护关系,同时还收集列上的统计信息) | 不支持 |
是否可以不断改变表的分区结构 | 不支持 | 支持 | 支持 |
重复数据删除 | 支持 | 仅支持Merge Only | 支持 |
文件大小调整 | 支持(全自动调整文件大小) | 不完全支持(需要手动维护) | 不支持 |
Compaction | 支持 | 需要手动维护 | 支持 |
自动删除旧版本的文件 | 支持 | 不完全支持(通过快照过期方式手动清理) | 不完全支持(通过快照过期方式,手动指定快照快起时间) |
分区清理 | 支持 | 支持 | 支持 |
在表中新建索引 | 支持 | 不支持 | 支持 |
线性聚类 | 支持 | 不支持 | 不支持 |
各种聚类函数 | 支持(Z-OrderHilbert) | 不支持 | 不支持 |
调整表结构 | 仅限spark的添加,重排序,删除,重命名,更新 | 支持添加,重排序,删除,重命名,更新 | 支持添加,重排序,删除,重命名,更新 |
元数据根据数据大小进行缩放 | 支持 | 不完全支持(Avro Manifest 文件速度明显变慢,并且在扩展时需要维护) | 不完全支持,可参考file layouts |
cli管理表 | 支持 | 不支持 | 不支持 |
定义要检查和执行的数据质量 | 支持(预提交验证器) | 不支持 | 不支持 |
pre-commit transformers | 支持 | 不支持 | 不支持 |
commit回调通知 | 支持 | 不支持 | 不支持 |
保护免受提交失败数据写入的影响 | 支持(自动标记机制) | 不支持 | 不支持(但是有一致性保障机制) |
监控 | 支持(用于自动监控的MetricsReporter) | 不支持 | 支持 |
回复数据快照的数据 | 支持 | 不支持 | 仅支持flink的savepoint |
Apache spark | Read+Write | Read+Write | Read+Write |
Apache Flink | Read+Write | Read+Write | Read+Write |
Presto | Read | Read+Write | Read |
Trino | Read | Read+Write | Read |
Hive | Read | Read+Write | Read |
DBT | Read+Write | 不支持 | 不支持 |
Kafka Connect | Write | 不支持 | |
Pulsar | Write | Write | 不支持 |
DebeZium | Write | Write | 不支持 |
Kyuubi | Read+Write | Read+Write | 不支持 |
clickhouse | Read | 不支持 | 不支持 |
Apache mpala | Read+Write | Read+Write | 不支持 |
以上就是Hudi、Iceerg、Paimon三者数据湖组件在实际的场景中相关的对比情况。大家在实际的场景中选择的时候可以参考下。
还没有评论,来说两句吧...