数据湖对比(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的数据湖能力,可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。总结一句话就是真正面向实时更新而设计的数据湖格式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/14708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ali-Sentinel-集群流控

归档 GitHub: Ali-Sentinel-集群流控 测试 参考:热点流控-测试 新建 ClusterDemoApplication2 public class ClusterDemoApplication2 {public static void main(String[] args) {System.setProperty("csp.sentinel.dashboard.server", "127.0.…

华为手机卡顿(仅针对于部分人来说,我也不清楚是否真的有用)

关机! 之前一段时间手机变得特别卡顿,然后网上搜了一堆教程一点用没有,结果因为昨天下午在考试所以把手机关机了一个多小时,再打开之后手机就变得很流畅,原因不详,但效果显著,如有需要可尝试一…

docker使用PostgreSQL容器

要执行 db/migrations/ 目录下的多个 SQL 文件以迁移数据库,可以按照以下步骤进行: 1 确认 PostgreSQL 容器正在运行: 确认你已经启动了 PostgreSQL 容器并且它在运行: docker ps -a2 确认容器 beaconchain 是 Up 状态。 将 SQ…

docker 挂载运行镜像

文章目录 前言docker 挂载运行镜像1. 作用2. 命令3. 测试 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢…

软考 软件设计师 场景分析题 速成篇

文章目录 试题一:数据流图💖 基本图形元素1. 外部实体2. 数据存储3. 加工4. 数据流 📚 例题(1)实体名称(2)数据存储名称(3)数据流① 父子图平衡② 加工有输入有输出④ 数…

在Windows10中重命名文件和文件夹的6种方法,有你熟悉和不熟悉的

序言 你可以通过多种方式在Windows 10上重命名文件。如果每次你想更改文件名时仍右键单击并选择“重命名”,那么我们有一些技巧可以加快更改速度。 使用文件资源管理器重命名文件和文件夹 Windows 10的文件资源管理器是一个功能强大的工具。你知道吗,有四种不同的方法可以…

电商API接口接入电商平台抓取热门商品推荐上货api接入示例

电商API接口接入电商平台抓取热门商品推荐上货的示例代码如下: # coding:utf-8 """ Compatible for python2.x and python3.x requirement: pip install requests """ from __future__ import print_function import requests # 请求…

CSS【常用CSS样式、盒子模型、定位、浮动 、扩展样式】--学习JavaEE的day46

day46 CSS 练习 页面实现&#xff1a; 分析&#xff1a; 未优化&#xff1a; 优化&#xff1a; 参考代码&#xff1a;&#xff08;包含样式优化–选择器CSS属性&#xff09; 先写上table方便实现&#xff0c;之后再去除即可 name没有服务器&#xff0c;可暂时不写 <!…

智能驾驶核心伪代码

智能驾驶是一个复杂且广泛的领域&#xff0c;涉及多个子系统和组件&#xff0c;包括但不限于感知、定位、决策规划、控制等。由于智能驾驶系统的复杂性&#xff0c;不可能简单地提供一个通用的代码片段。然而&#xff0c;我可以提供一个简单的示例&#xff0c;展示如何使用一些…

mysql - explain执行计划

explain执行计划 explain是mysql中一关键字&#xff0c;用于查看执行计划, 模拟执行器执行sql查询语句, 从而分析sql语句或表结构的性能瓶颈或优化方向。 explain用途 可分析得到以下信息&#xff1a; 表读取顺序数据读取操作的操作类型可使用的索引实际使用的索引表间引用…

微软开源多模态大模型Phi-3-vision,微调实战来了

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型& AIGC 技术趋势、大模型& AIGC 落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了…

零部件销售|基于SSM+vue的轻型卡车零部件销售平台系统的设计与实现(源码+数据库+文档)

轻型卡车零部件销售平台 目录 基于SSM&#xff0b;vue的轻型卡车零部件销售平台系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1 系统功能模块 2 管理员功能模块 3 用户后台功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题…

stream( ).collect ( Collectors.groupingBy ( ) ) 的用法

文章目录 第一种解释1、基本用法2、指定值收集器3、多级分组4、常见应用场景和用处 第二种解释1、基本语法2、示例3、更复杂的用法 第一种解释 Collectors.groupingBy 是 Java 8 引入的 Stream API 中的一个收集器&#xff08;Collector&#xff09;&#xff0c;它用于将流&am…

Golang:flosch/pongo2是一个类似Django模板语法的模板引擎

模板引擎可以用来做一些字符串渲染拼接工作&#xff0c;避免在代码中出现大量的字符串拼接 文档 https://www.schlachter.tech/solutions/pongo2-template-engine/https://github.com/flosch/pongo2 安装 go get -u github.com/flosch/pongo2/v6使用示例 1、字符串模板 p…

【笔记】Qt 按钮控件介绍(QPushButton,QCheckBox,QToolButton)

文章目录 QAbstractButton 抽象类(父类)QAbstractButton 类中的属性QAbstractButton 类中的函数QAbstractButton 类中的信号QAbstractButton 类中的槽 QPushButton 类(标准按钮)QPushButton 类中的属性QPushButton 类中的函数、槽 QCheckBox 类(复选按钮)QCheckBox 类的属性QCh…

Html中,想利用JS引入Jquery文件;$.getScript()无效

在使用$.getScript()时&#xff0c;会爆出错误&#xff1a;ReferenceError: $ is not defined &#xff0c;这是因为没有在JS文件前引入Jquery。 那么可以这样使用&#xff1a;(这个方式只适合放在页面代码最后面使用) (function () {var script window.document.createEleme…

Kettle简介

一、Kettle简介 Kettle是一个开源的ETL&#xff08;Extract-Transform-Load的缩写&#xff0c;即数据抽取、转换、装载的过程&#xff09;项目。 项目名很有意思&#xff0c;水壶。按项目负责人Matt的说法&#xff1a;把各种数据放到一个壶里&#xff0c;然后呢&#xff0c;以…

PHP反射API与接口的动态分析

PHP的反射&#xff08;Reflection&#xff09;API 提供了一种在运行时获取类和对象信息的能力&#xff0c;包括类的方法、属性、接口等。这对于动态分析、构建IDE的自动完成功能、或者进行复杂的元编程非常有用。以下是如何使用PHP反射API进行动态分析的示例代码。 1. 反射类&…

MySQL触发器怎么使用?

触发器&#xff08;Trigger&#xff09;是数据库中的一种重要机制&#xff0c;用于在特定的数据库事件&#xff08;如插入、更新或删除&#xff09;发生时&#xff0c;自动执行预定义的SQL语句。在MySQL中&#xff0c;触发器能够帮助我们实现复杂的业务逻辑、数据验证和自动化任…

ComfyUI 本地部署指南:概念、部署过程、生成图片、共享 WebUI 模型

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 大家好&#xff0c;我是水滴~~ 本文主要讲解 ComfyUI 的本地部署指南&#xff0c;内容主要包括&#xff1a;ComfyUI 的概念、ComfyUI 本地部署过程、使…