Apache Paimon走在正确的道路上|一些使用体验和未来判断

news2024/11/24 6:01:30

Apache Paimon这个框架大家应该都不陌生了。

在实际工作中大家应该多多少少都用到,这个文章是一个简单的使用体会。不涉及湖框架的拉踩,我们的着眼点是解决实际问题

我来结合自身体会跟大家说说Paimon这个框架和对未来的一些判断。大家可以参考,错了也不要怪我误导你😄。

首先湖框架在发展之初解决的几个问题:Schema Evolution、流读流写、批读批写、ACID等几个通用的能力。

但是我们必须指出一点,这几个通用能力不是生产环境都需要的,我们拿Schema Evolution举例,在真正大型的、重要的生产环境其实是非常不推荐使用这种能力,不是因为它不够强大,而是因为他带来的风险和收益不成比例,没有一个开发愿意冒着背故障的风险去做这样的设计。

所以我们站在业务开发的角度去考虑问题,和站在平台开发角度考虑问题呈现了不同的诉求。

那么站在业务开发的角度也就是用户的角度,一些诉求如下:极简单的学习和理解成本、流批读写足够简单、主键/非主键场景支持丰富、最好能在领域内完成闭环支持,不要过度依赖外部组件(也就是不需要和其他组件打交道)。

所以你看对于「极简单的学习和理解成本」来说,目前Paimon的设计足够简单,概念虽然也很多,但是很容易理解,相比其他的湖框架学习成本够低,因为整个行业内大多数开发者没有极强的学习能力,甚至相当比例的人连基本的英文文档都看不懂,那么框架设计出来一定要足够简单易理解。

其次「主键/非主键场景支持丰富」并且不能出现明显的性能劣化,在Paimon这个框架里,它的设计对标了Hive、Kafka的概念,区分了Append Table、Append Queue、Table with PK等,只要你的基础够好,Hive、Kafka足够熟悉,可以轻松上手这些概念并在生产环境做出选型,这是其他湖框架做不到的。

另外一个很重要的「闭环思维」,大家试想一下,开发者在使用湖框架的时候他要解决什么样的问题,无非就是Source、Join、Lookup Join、其他算子、Sink。那么OK这些能力最好湖框架能自闭环搞定。所以基本的主键点查询能力、媲美Kafka一样的流读、媲美Spark一样的批读、无缝对接Flink Streaming、Flink Batch等,这些能力需要在一个框架内自闭环,最好不要和外部系统交互,目前Paimon做的非常好👍。

此外我们依次把常见的业务场景排列出来:流批一体、端到端精确一次、Join+Lookup关联、Partial Update、数据回溯订正等等,这些场景是我们在做开发的时候遇到的最多的场景,所以湖框架的着眼点应该是解决最常见的痛点问题

目前我只能说,Paimon社区是走在正确的道路上,未来看好。

4d7ead7e00b99314bbbf2318c9110b40.png300万字!全网最全大数据学习面试社区等你来!

如果这个文章对你有帮助,不要忘记 「在看」 「点赞」 「收藏」 三连啊喂!

0048618afcadfc5e34582bc7c2d62afb.png

dd6839e9f883a17c1fe3f8c8f96bebbe.jpeg

全网首发|大数据专家级技能模型与学习指南(胜天半子篇)

互联网最坏的时代可能真的来了

我在B站读大学,大数据专业

我们在学习Flink的时候,到底在学习什么?

193篇文章暴揍Flink,这个合集你需要关注一下

Flink生产环境TOP难题与优化,阿里巴巴藏经阁YYDS

Flink CDC我吃定了耶稣也留不住他!| Flink CDC线上问题小盘点

我们在学习Spark的时候,到底在学习什么?

在所有Spark模块中,我愿称SparkSQL为最强!

硬刚Hive | 4万字基础调优面试小总结

数据治理方法论和实践小百科全书

标签体系下的用户画像建设小指南

4万字长文 | ClickHouse基础&实践&调优全视角解析

【面试&个人成长】社招和校招的经验之谈

大数据方向另一个十年开启 |《硬刚系列》第一版完结

我写过的关于成长/面试/职场进阶的文章

当我们在学习Hive的时候在学习什么?「硬刚Hive续集」

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

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

相关文章

《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-03-SOA主要协议和规范

文章目录 1. UDDI协议2. WSDL规范2.1 概述2.2 WSDL文档的基本结构 3. SOAP协议4. REST规范4.1 资源 (Resource)4.2 表述 (Representational)4.3 状态转移 (State Transfer)4.4 超链接 1. UDDI协议 概述 统一描述、发现和集成协议Universal Description Discovery and Integrat…

力扣面试经典算法150题:跳跃游戏

跳跃游戏 今天的题目是力扣面试经典150题中的数组的中等难度题:跳跃游戏。 题目链接:https://leetcode.cn/problems/jump-game/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述 给定一个非负整数数组 nums,你最初…

PHPStorm如何使用Phalcon框架的依赖

问题背景 在上一篇文章里面写的如何把Phalcon 集成到PhpStorm里面,发现有个地方讲得不是很清楚,就是在使用Phalcon开发的过程中,会发现没有Phalcon框架的代码提示,这个让人感到很难受,写代码的效率也会降低不少。当时讲得是在项目的外部库下导入依赖源, 然后在写代码的时…

解决Win复制到U盘文件在KylinOS不显示

解决Win复制到U盘文件在KylinOS不显示 1、步骤一:识别U盘2、步骤二:格式化U盘3、步骤三:验证4、注意事项 💖The Begin💖点点关注,收藏不迷路💖 在日常使用中,我们可能会遇到这样的情…

Sentinel-1 Level 1数据处理的详细算法定义(六)

《Sentinel-1 Level 1数据处理的详细算法定义》文档定义和描述了Sentinel-1实现的Level 1处理算法和方程,以便生成Level 1产品。这些算法适用于Sentinel-1的Stripmap、Interferometric Wide-swath (IW)、Extra-wide-swath (EW)和Wave模式。 今天介绍的内容如下: Sentinel-1 L…

Nginx服务优化的12个指南:提升性能与稳定性

Nginx服务优化的12个指南:提升性能与稳定性 一、配置Proxy缓存二、开启静态页面压缩三、调整工作进程个数四、调整CPU亲和力五、修改文件打开数限制六、修改单个Worker的最大连接数七、开启高效传输八、设置连接超时时间九、优化FastCGI配置十、Expires缓存调优十一…

ArrayList练习(学生对象遍历,添加对象并判断是否存在)

package ArrayListDemo;public class Student {//1.私有化成员变量private String name;private int age;public Student() {}public Student(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public void setName(String name)…

图算法-贪心策略-最小生成树(prim)和最短路径(dijkstra)

参考来源:和感谢 1.代码随想录 (programmercarl.com) 2.【图-最小生成树-Prim(普里姆)算法和Kruskal(克鲁斯卡尔)算法】https://www.bilibili.com/video/BV1wG411z79G?vd_source0ddb24a02523448baa69b0b871ab50f7 3.【图-最短路径-Dijkstra(迪杰斯特拉)算法】ht…

【数字化时代的技术挑战与应对策略】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

java基础 之 常用遍历方法

文章目录 准备工作一、普通遍历循环二、增强for三、forEach四、迭代器五、总结六、代码奉上 准备工作 准备工作:我们需要创建一个数组,两个列表,一个字符串和一个set集合,如下图所示 一、普通遍历循环 说明: 1、使…

吴恩达机器学习课后题-02逻辑回归

逻辑回归 逻辑回归基本知识点:分类Cost function(代价函数)梯度下降 题目线性可分散点图决策边界 线性不可分题目特征映射代价函数(损失函数)梯度下降结果 逻辑回归基本知识点:分类 Cost function(代价函数) 梯度下降 题目 线性可…

Upload-Lab第16关:巧妙利用图片马方式绕过exif_imagetype验证

简介 在第16关中,解决方法与第14和第15关类似,都是通过修改文件头来绕过文件上传验证。然而,第16关额外使用了 php_exif模块对文件进行校验。因此,在尝试解决这一关时,需要确保php_exif模块已启用,如下图所示: php_exif.dll–找不到指定的模块 要想php_exif能够被成功…

Github 2024-08-22 Go开源项目日报 Top10

根据Github Trendings的统计,今日(2024-08-22统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10TypeScript项目1精选Go框架、库和软件列表 创建周期:3700 天开发语言:Go协议类型:MIT LicenseStar数量:127377 个Fork数量:11751 …

ardupilot开发 --- C嘎嘎 篇

无情的猜猜猜又卜了一挂 cout和cin的使用&#xff0c;标准输入输出<< 和 >> 的使用数据类型&#xff08;函数&#xff09;模板的使用&#xff1a;命名空间的使用&#xff0c;std命名空间语句块new 的使用引用 &共用体union类对象的赋值&#xff1a;operator函数…

实现 FastCGI

CGI的由来&#xff1a; 最早的 Web 服务器只能简单地响应浏览器发来的 HTTP 请求&#xff0c;并将存储在服务器上的 HTML 文件返回给浏 览器&#xff0c;也就是静态 html 文件&#xff0c;但是后期随着网站功能增多网站开发也越来越复杂&#xff0c;以至于出现动态技 术&…

仿Muduo库实现高并发服务器——Connection模块

这个模块看着代码挺多的实则真的很多&#xff0c;但是不难&#xff0c;我为大家将各个函数拿出来理一理。 connection就是将主线程监听的网络套接字上的客户端套接字进行包装&#xff0c;使被包装的套接字可以进行&#xff0c;各种事件的处理&#xff0c;比如读写事件。下面就来…

3D场景标注标签信息,three.js CSS 2D渲染器CSS2DRenderer、CSS 3D渲染器CSS3DRenderer(结合react)

如果你想用HTML元素作为标签标注三维场景中模型信息&#xff0c;需要考虑定位的问题。比如一个模型&#xff0c;在代码中你可以知道它的局部坐标或世界坐标xyz&#xff0c;但是你并不知道渲染后在canvas画布上位置&#xff0c;距离web页面顶部top和左侧的像素px值。自己写代码把…

探秘黑魔术玫瑰:花语与魅力的交织

一、黑魔术玫瑰的花语解读 黑魔术玫瑰的花语丰富而深邃&#xff0c;充满了神秘与诱惑。在许多文化中&#xff0c;其深沉的颜色被赋予了神秘的象征意义&#xff0c;代表着那些尚未被揭示的秘密和未知的领域。它仿佛是隐藏在黑暗中的谜题&#xff0c;吸引着人们去探索和追寻。 禁…

plsql表格怎么显示中文 plsql如何导入表格数据

在Oracle数据库开发中&#xff0c;PL/SQL Developer是一款广泛使用的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它提供了丰富的功能来帮助开发人员高效地进行数据库开发和管理。在使用PL/SQL Developer时&#xff0c;许多用户会遇到表格显示中文的问题&#xff0c;以…

DRF——请求的封装与版本管理

文章目录 django restframework1. 快速上手2. 请求数据的封装3. 版本管理3.1 URL的GET参数传递&#xff08;*&#xff09;3.2 URL路径传递&#xff08;*&#xff09;3.3 请求头传递3.4 二级域名传递3.5 路由的namespace传递 小结 django restframework 快速上手请求的封装版本…