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

news2024/9/22 17:32:29

个人介绍

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

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.coloradmin.cn/o/1678620.html

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

相关文章

photoshop(PS)有什么快速提升工作效率的功能?或者实用功能?这里告诉你7条!

1:文件太多,不方便马上找到需要插入元素(元素放入PS会发现,位置不知道在哪里),点击需要选中或者搭配的元素,ctrlV就可以快速插入目标/图层元素的位置了! 点击当前元素,选中&#xf…

MT3035 逆波兰式

思路: 两个栈str1和sr2,分别存放运算符和结果。 如果是数字,直接放入str2中。 如果是运算符: 1. ( :直接放入 str1 2. /-/*// 看栈顶元素,若当前字符优先级比栈顶大,则压到str1中&#x…

【STL】string

本节博客主要是介绍了一下CPP标准库中的string这一容器的相关用法和常用接口,有需要借鉴即可。 目录 1.string介绍1.1CPP标准库与STL关系1.2string历史问题与介绍 2.string概要3.Member functions3.1constructor3.2operator 4.访问4.1[]访问4.2迭代器访问4.3范围for…

软件测试的一些概念

一.基本概念 1.什么事需求 1)需求的定义 用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时,必须完成的任务,该需求一般比较简略 软件需求:或则叫功能需求&a…

【Amplify_自己写的shadr遇到没有阴影的解决方案】

Amplify 自己写的shadr遇到没有阴影的解决方案 2020-01-21 16:04 本来我有个百试很灵的投射阴影脚本。 这次不灵光了!地形内建材质,这个不支持投射的阴影~~奇了怪了。 可以采用引用的方式UsePass加入阴影部分代码,具体操作如下&#xff1…

视觉SLAM14精讲——三维空间刚体运动1.2

三维空间刚体运动 欧拉角 欧拉角可以说是零理解成本的表示形式,由于有万向锁的问题被绝大部分项目所抛弃。欧拉角的每个轴旋转都有固定好的名称,这些名称十分直观: Z轴旋转,相当于左右旋转,叫航角,或偏航…

photoshop(PS)有什么快速提升工作效率的功能?或者实用功能?这里告诉你5条!

1:文件太多,不方便马上找到需要插入元素(元素放入PS会发现,位置不知道在哪里),点击需要选中或者搭配的元素,ctrlV就可以快速插入目标/图层元素的位置了! 点击当前元素,选中&#xf…

全局异常处理实现

全局异常统一处理 ​ 全局异常处理类通常用于捕获和处理应用程序中发生的所有异常,从而避免在代码的多个地方重复编写异常处理逻辑。 一、全局异常处理方案 ​ 全局异常处理类有多种实现方式,每种方式都有其特定的应用场景和优势。以下是几种常见的全…

Vitis HLS 学习笔记--理解串流Stream(1)

目录 1. 介绍 2. 示例 2.1 代码解析 2.2 串流数据类型 2.3 综合报告 3. 总结 1. 介绍 在Vitis HLS中,hls::stream是一个用于在C/C中进行高级合成的关键数据结构。它类似于C标准库中的std::stream,但是专门设计用于硬件描述语言(如Veri…

vue使用marked和highlight.js实现代码高亮效果

marked是对markdown进行解析的插件,它可以把markdown语法解析成html语法,从而实现页面效果,而highlight.js是对解析出的代码实现高亮效果 效果: 安装:避免踩我走的坑,安装尽量按照这个版本安装 npm install…

【Linux网络编程】IO多路转接之poll

poll 1.poll初始2.poll函数接口3.poll服务器4.poll的优点缺点 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.poll初始 poll也是一种linux…

物联网D4——OLED显示屏

OLED简介 调试方式 SCL和SDA端口 在STM32微控制器中,SCL代表Serial Clock(串行时钟线),它是IC(Inter-Integrated Circuit)总线协议的两个信号线之一。IC总线是一种常用的双向同步串行通信接口,…

el-tooltip 提示框样式修改?

【element-plus el-tooltip官网地址&#xff1a; Tooltip 文字提示 | Element Plus】 <el-tooltippopper-class"Tooltip":content"content"placement"top"effect"light" ><span class"content">{{ content }}&l…

Leecode热题100---3:无重复字符的最长子串

题目&#xff1a;给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串的长度。 C&#xff1a; 指针法&#xff0c;使用at读取字符串中的值&#xff1b; #include <iostream> #include <string> #include <vector> #include <windows.…

Image Sensor固定模式噪声(FPN)的消除方法

本文介绍Image Sensor固定模式噪声&#xff08;FPN&#xff09;的消除方法。 固定模式噪声&#xff08;FPN&#xff09;英文全称&#xff1a;Fixed Pattern Noise&#xff0c;在Image Sensor调试过程中还是比较常见的&#xff0c;它的特点是噪声位置固定不变&#xff0c;不随采…

echarts树图 改文本显示的地方的样式

树图改文本显示的时候的样式 虽然有点越改越丑 其中有一些失败的尝试 forammter 无法识别html元素 所以对于tooptips有用的html元素定义获取返回在这里写的话是不生效的 rich配置项里面的backgroundColor官方说支持 html元素和canvas元素 已经图片url 没有详细试验 官网地址 h…

vue3+ts(<script setup lang=“ts“>)刷新页面后保持下拉框选中效果

效果图&#xff1a; 代码&#xff1a; <template><div class"app-layout"><div class"app-box"><div class"header"><div class"header-left"></div><div class"title">室外智…

K8s 二进制部署 上篇

一 K8S按装部署方式&#xff1a; ① Minikube Minikube是一个工具&#xff0c;可以在本地快速运行一个单节点微型K8S&#xff0c;仅用于学习、预览K8S的一些特 性使用。 部署地址&#xff1a;https://kubernetes.io/docs/setup/minikube ② Kubeadmin Kubeadmin也是一个工…

简单聊聊分布式和集群

前言 分布式和集群&#xff0c;我们都听的比较多&#xff0c;分布式系统和集群的概念对于刚进入职场的小伙伴可能不是很清楚&#xff0c;这篇文章我们就一起看看两者到底是什么&#xff0c;有什么区别。 什么是分布式系统&#xff1f; 先看下书面解释&#xff1a; 分布式系统…