个人介绍
大家好,我是闫成雨,目前是一名独立开发人员。专注于数据开发、机器学习、资源调度算法和循环系统。

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
初识SeaTunnel
在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 引擎增加了可配置精度和比例的 Decimal 类型支持(#5419) 增强了Hocon风格的泛型声明(#6187) 完善了Assert连接器覆盖所有数据类型(#6275)
这些 Pull Request 主要旨在改善用户的使用体验。
社区给我的印象
我对 Apache SeaTunnel 社区的第一印象是热情而活跃。社区对 Issue 和 Pull Request 的反馈速度很快,同时也对新的贡献者非常友好和耐心,使得新贡献者能够轻松快速地参与进来。
未来的期望
希望社区能够进一步积累,吸引更多开发者共同推动SeaTunnel发展。愿SeaTunnel用户群持续扩大,让更多人享受其便捷的数据集成解决方案。期望用户体验不断提升,SeaTunnel在稳定性上取得新突破。
同时,希望SeaTunnel的文档更加完善,提供全面清晰的使用指南和技术文档,以便快速上手和解决问题。
同步Demo
新手入门

最佳实践

测试报告
Apache SeaTunnel




