当前位置: 首页 > news >正文

数据湖对比(hudi,iceberg,paimon,Delta)

Delta

数据湖

Delta

更新原理

update/delete/merge 实现均基于spark的join功能。

定位

做基于spark做流批一体的数据处理

缺点

本质为批处理。强绑定spark引擎。整体性能相较其他数据湖比较差

hudi

数据湖

hudi

更新原理

通过hudi自定义的主键索引hoodiekey + 布隆过滤器 + 文件join合并实现更新

定位

面向spark,为了解决在hadoop体系内数据更新和增量查询的问题。定位是实现数仓+数据库的功能。

缺点

本质为批处理

整体架构耦合性强,系统设计复杂,各个引擎之间的兼容性较差,参数众多。

趋势在不断的在完善面向批处理的架构细节改造,对spark友好,无法彻底适配流处理更新能力。

 iceberg

数据湖

iceberg

更新原理

写入时数据分为delete 和 insert 文件,查询时通过序列号定位文件生成先后 + join 得到最后结果

定位

官方定位是面向海量数据分析场景,底层设计抽象,通用标准设计。不依赖任何计算引擎。

缺点

本质为批处理,主打离线数据湖和扩展性

在国外的应用场景主要是离线取代 Hive,虽然扩展性强,也导致计算引擎有较多优化空间,后续发展难以迅速,需要涉及众多对接引擎。

paimon

数据湖

paimon

更新原理

通过内存 + 磁盘实现lsm数据结构

定位

CDC更新入湖,可被准实时查询,并大幅简化入湖架构。 
支持 Partial-Update 能力,基于相同的主键做到部分数据更新,也可以根据该功能实现各个流实时地打宽。 
支持流入的数据生成变更日志,给下游更好的流计算。简化流计算链路。 
Paimon 作为湖存储格式,有很强的 Append 处理,并给 Append 表上多了流读流写Z-Order排序后加速查询的能力。

优点

  1. 统一的批处理和流处理

  2. 作为数据湖存储系统,Paimon具有低成本、高可靠性、可扩展的元数据等特性

  3. 丰富的合并引擎

  4. 自动生成变更日志

  5. 丰富的表类型

  6. 支持表结构变更同步(也可以称为Schema模式演变)

  7. 提供流读增强,tag视图,数据打宽等多种能力

总结:

个人更倾向于paimon的数据湖能力,可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。总结一句话就是真正面向实时更新而设计的数据湖格式。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 对竞品分析的理解
  • 树与二叉树的概念介绍
  • Python I/O操作笔记
  • 嵌入式之译码器
  • 爬虫之re数据清洗
  • java —— 连接 MySQL 操作
  • Spring Boot Interceptor(拦截器使用及原理)
  • FltSendMessage 超时时间相关问题
  • 华为HCIP认证H12-831新增变题
  • 基于Netty实现安全认证的WebSocket(wss)服务端
  • 知识分享:隔多久查询一次网贷大数据信用报告比较好?
  • qt for android 重新编译Qt6Android.jar
  • 大整数运算详解升级版
  • 速盾:负载均衡能防ddos攻击吗?
  • 学 Java 具体能干什么?
  • CSS居中完全指南——构建CSS居中决策树
  • EventListener原理
  • JavaScript 一些 DOM 的知识点
  • JS基础之数据类型、对象、原型、原型链、继承
  • leetcode98. Validate Binary Search Tree
  • Linux链接文件
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • mysql 数据库四种事务隔离级别
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • SAP云平台里Global Account和Sub Account的关系
  • spring学习第二天
  • 简单数学运算程序(不定期更新)
  • 前端js -- this指向总结。
  • 微信公众号开发小记——5.python微信红包
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • !!Dom4j 学习笔记
  • !!java web学习笔记(一到五)
  • # SpringBoot 如何让指定的Bean先加载
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $(selector).each()和$.each()的区别
  • (2)MFC+openGL单文档框架glFrame
  • (7)摄像机和云台
  • (AngularJS)Angular 控制器之间通信初探
  • (ZT)出版业改革:该死的死,该生的生
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (译) 函数式 JS #1:简介
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net web项目 调用webService
  • .net 按比例显示图片的缩略图
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .Net中间语言BeforeFieldInit