从独立开发者到成为SeaTunnel社区的贡献者,我做对了哪些事儿?

个人介绍

大家好,我是闫成雨,目前是一名独立开发者。专注于数据开发、机器学习、资源调度算法和分布式系统。

file

GitHub ID: CheneyYin

个人主页:https://cheneyyin.github.io/

为社区做了哪些贡献

  • 加强了Spark引擎和Flink引擎对SeaTunnel数据类型的支持。
  • 修复了一些Spark引擎转换层的BUG。
  • 完善了Assert连接器支持的数据类型。
  • 修复了一些CI相关的BUG。
  • 完善了一些文档。

贡献记录:https://github.com/apache/seatunnel/pulls?q=is%3Apr+author%3ACheneyYin+is%3Aclosed

初识

在2022年到2023年期间,我一直在尝试开发一款类似于StreamSet和NiFi的可视化数据集成软件。

直到2023年3月左右,我完成了一个简陋的可视化数据集成软件Metal,并将其迁移到了我的GitHub仓库。尽管Metal功能简单,但它成功验证了设计思路和技术栈的可行性。

直到我阅读了发布在devops.dev社区的文章《The Evolution of Architecture from ETL to EtLT》,我才了解到许多关于数据集成的新观点,如小t的概念、使用通用计算引擎的局限性以及数据集成执行引擎的价值等等。

同时,这也是我首次接触到Apache SeaTunnel,它是建立在这些新理念之上的。在第一次尝试Apache SeaTunnel后,我毅然放弃了之前的方向,转而选择了活跃在SeaTunnel社区。

提交第一个PR

跟大家分享一下我第一次提PR的故事,早期的时候,在使用SeaTunnel的一次压测中,我注意到Spark引擎抛出了OOM(Out Of Memory)异常。

首先复现了这个问题,然后进行了调试并定位了原因。发现是Spark转换层的TransformerProcessor在内存中临时存储了输出结果,导致处理大数据量时堆内存不足。

在对问题进行深入分析并找到解决方案后,我向Apache SeaTunnel社区提交了我的第一个Issue(#4502),感兴趣的朋友可以去看看,在这个Issue中,我解释了问题的现象和原因,并提出了解决方案。随后,我提交了我的第一个PR(#4503)。

我的第一个PR从提交到合并仅用了4天,这显示了社区高效的反馈速度。但对我个人来说,这个过程充满了期待和漫长,特别是在CI环境出现异常导致测试无法通过时。

不过,社区的资深成员及时提供了帮助,最终成功合并了PR,所以你在初期参与贡献的时候,向资深的贡献者寻求帮助是至关重要的,而且大家都会乐于助人!但是也请注意不用太浪费别人的时间。

持续参与

在过去的一年里,我一直积极参与社区活动,阅读技术大咖们的分享内容,关注并回复社区的Issue,同时持续跟踪Pull Request列表。

另外,我也为社区做出了一些代码贡献。

例如:

  • 为Spark引擎添加了对SeaTunnel的Time类型的支持(#5188)
  • 为Flink引擎增加了可配置precision和scale的Decimal类型支持(#5419)
  • 增强了Hocon风格的泛型声明(#6187)
  • 完善了Assert连接器覆盖全部数据类型(#6275)

这些Pull Request大多旨在改善用户的使用体验。

社区留给我的印象

我对Apache SeaTunnel社区的第一印象是热情而活跃。社区对Issue和Pull Request的反馈速度很快,同时也对新的贡献者非常友好和耐心,使得新贡献者能够轻松快速地参与进来。

未来的期望

希望社区能够进一步壮大,吸引更多开发者共推SeaTunnel发展。愿SeaTunnel用户群持续扩大,让更多人享受其便捷的数据集成解决方案。期望用户体验不断提升,SeaTunnel在稳定性上取得新突破。

同时,希望SeaTunnel的文档更详尽完善,提供全面且清晰的使用指南和技术文档,以便用户快速上手和解决问题。

本文由 白鲸开源科技 提供发布支持!

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

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

相关文章

2024年最新软件测试面试题必问的1000题!

我了解的测试理论和方法包括以下几个方面: 黑盒测试与白盒测试: 黑盒测试:基于对软件系统外部行为进行测试,独立于内部代码实现细节。黑盒测试关注输入与输出之间的关系以及软件功能是否符合预期。白盒测试:基于对软件…

如何实现Linux双网卡同时连接内网和外网的配置?

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

Day29

回溯算法part03 LC39组合总和(未掌握) 未掌握分析:被数组中的元素可以被重复选取误导,同时没有想到暴力解法来理解回溯 暴力解法肯定是for循环遍历candidates中的每个元素,下一层子循环不像之前的组合题目那样从i1开始,该题目元…

Linux系统 的持续学习

昨天学习了目录结构、补充命令和配置网络,其中配置网络用了nat方法,今天学习用桥接方法,通配符、正则表达式的一部分内容。 桥接模式 如果重网卡失败: 1.检查配置文件是否正确 2.检查虚拟器编辑器有没有选对(网卡类…

jiebaNET中文分词器

最近我接手了一个有趣的需求,需要对用户评价进行分词,进行词频统计和情绪分析,并且根据词频权重制成词云图以供后台数据统计,于是我便引入了jieba分词器,但是我发现网上关于jiebaNET相关文档实在太少了,甚至连配置文件…

弘君资本:降准降息利好哪些板块?

降准是指下降存款准备金率,降息是指下调存款利率,他们是一种宽松的货币政策,对股市来说是一种利好,其间利好以下板块: 1、券商板块 降准降息会影响投资渠道的扩宽,降低资金入市的机会成本,将更…

CyclicBarrier的 常用场景及使用示例

CyclicBarrier的 常用场景及使用示例 CyclicBarrier是Java并发编程中的另一种同步辅助工具,它用于控制多个线程相互等待,直到所有线程都到达一个共同的屏障点,然后所有线程才会继续执行。与CountDownLatch不同的是,CyclicBarrier…

python的转义序列和占位符

1.占位符 1.%s:用于插入字符串 name "Alice" message "Hello, %s!" % name print(message) # 输出:Hello, Alice!%d:用于插入整数 age 25 message "I am %d years old." % age print(message) # 输出…

chrome命令的使用

Chrome浏览器,也称为Google Chrome,是由Google公司开发的一款设计现代、快速且安全的网页浏览器。Chrome浏览器基于开源的Chromium项目,并增加了Google自己的一些独特功能。Chrome浏览器以其简洁的界面、快速的浏览速度和丰富的扩展程序而广受…

Linux 文本编辑相关指令、指令参数、使用例子

一些常见的Linux文本编辑和处理相关的指令,以及它们的参数和使用例子,以表格形式列出: 序号指令名称指令参数及说明指令使用例子及说明1cat-n: 显示每行的行号cat -n filename 显示文件内容及行号2less-i: 交互模式,允许搜索less…

付费解锁隐藏动力和续航,订阅制又被特斯拉玩出花了

我们知道,「订阅制」早已成互联网领域各路大厂玩烂的操作。 上到程序订阅付费使用(例如 Offics、Adobe),下到各类功能服务订阅(如影视会员、网盘会员等)。 甚至于某东、某宝等网购平台也整出了 VIP 订阅服…

原地去重问题和合并有序数组问题

原地去重问题 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。这是leetcode上的一道题 这里我们用…

2024五月母亲节嘉年华活动方案

2024以花之名 致谢母亲簪花趣味亲子五月母亲节嘉年华活动方案-43P 活动策划信息: 方案页码:43页 文件格式:PPT 方案简介: 岁月温柔治愈 母爱闪闪发光 一年一度的PY圈孝子孝女大赛即将到来 本次母亲节,“以花之名…

C++语法|指向类成员(成员变量和成员方法)的指针及其相关应用场景

文章目录 1.基本语法指向成员变量的指针示例 指向成员函数的指针示例 注意事项 2.应用场景泛型编程和模板:通用成员访问打印函数回调机制和事件处理:基于简单GUI框架的事件处理 1.基本语法 指向类成员的指针是一种特殊的指针类型,用于指向类…

MYSQL和JAVA中将中文汉字按照拼音首字母排序

一、MYSQL将中文汉字按照拼音首字母排序 数据库使用的字符编码是utf8_general_ci,如下 ORDER BY CONVERT(表名.字段名 USING gbk) COLLATE gbk_chinese_ci ASC;若是表查询,CONVERT中可以不添加表名。 查询结果如下: 二、JAVA中将中文汉字…

类和对象、包等知识总结Java

类 类的概念:类是用来对一个实体(对象)进行描述的,主要描述该对象的属性,功能等。 类的定义和实例化 定义 定义类需要用到class关键字 (大驼峰定义)for example:class Dog... 初步了解一下…

CF1772A A+B?

文章目录 题目题面翻译输入格式输出格式 题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 思路AC代码 题目 题面翻译 有一个算式 a b a{}b ab , a a a 、 b b b 都是一位数。你需要输出这个算式的答案。 输入格式 第一行,一个整数 t t t …

如何评估和优化RPA机器人的性能,以确保它在处理高负载或复杂任务时仍然保持高效和稳定?

评估和优化RPA(Robotic Process Automation,机器人流程自动化)机器人的性能是确保其在处理高负载或复杂任务时能够保持高效和稳定的关键步骤。以下将详细阐述如何评估和优化RPA机器人的性能。 一、RPA机器人性能评估 准确性评估&#xff1a…

用docker命令行操作远程的Dockerd daemon服务

本地安装 Dockerd 服务太耗本机磁盘空间了,共用已有的Dockerd服务能够节省一部分空间 修改 Dockerd 服务启动文件,增加TCP监听方式 Dockerd 服务默认监听方式为 Unix Domain Socket ,只允许本机连接,想要能够远程连接&#xff0…

Python3 笔记:continue语句和break语句的区别

循环会一直执行,直到条件为假或序列元素用完时才会结束。若我们想提前中断循环,比如循环的结果已经是我们想要的了,不想让循环继续执行而占用资源,那么我们可以用 continue语句或者break语句。 continue语句用来跳过当前循环的剩…