Apache IoTDB Commiter 苗红闪 | 浅谈开源经历
IoTDB 是清华发起自研、并在 Apache 社区孵化的时间序列数据库,2014 年项目启动研制,2018 年 11 月 18 号 IoTDB 正式进入 Apache 孵化器,成为中国高校首个进入 Apache 孵化器并毕业的国际顶级开源项目。
作为开源物联网时序数据库管理系统,Apache IoTDB 旨在满足大规模物联网和工业物联网(IoT 和 IIoT)应用对数据、存储和分析的严苛要求。
近日 Apache IoTDB 社区官宣了新加入的 PMC 和 Committer,云智慧智能研究院算法团队的苗红闪(Luke Miao)成为其中一名新晋 Committer。
我们深知做好一个开源项目不是一件容易的事,在程序员工作强度极大的今天,可以抽出时间参与开源并为公司所用的,已然十分难得。那么本期访谈我们邀请到苗红闪,希望通过分享他的经历和故事,让读者了解参与开源背后的故事,参与开源项目的乐趣、困难以及收获。
主持人:简单介绍一下自己吧?
苗红闪:好的,我硕士毕业于北京工业大学,从事软件开发工作 8 年多的时间,期间做过 3 年的全栈开发,前段时间很荣幸被选为 Apache IoTDB 开源项目的 Commiter,目前就职于云智慧智能研究院算法工程一部,主要负责指标数据的存储和研发工作。
主持人:参与开源对你来说,最大的收获是什么?
苗红闪:最大收获是和社区中一群志同道合的朋友在一起分享自己的方案来解决用户实际场景中遇到的问题,同时也能在这个过程中不断的学习提升自己。尤其是在之前每隔两周的 Meetup 会上大家一起讨论分享一些问题,当时有一个 Improve the flush pipeline 分享 ,通过具体的实验结果证实在 Flush 存在一些问题同时也提出了解决方法,从中我也获益匪浅。当然了在 Meetup 上除了讨论技术问题还会讨论非技术的问题比如 Hackthon 的奖励等,拓宽了我的视野,结交了一帮有趣的朋友。
主持人:是什么契机让你开始接触 Apache IoTDB 的,这里面有什么故事吗?
苗红闪:云智慧智能研究院致力于打造以数据为基础,以场景为向导,以算法为支撑,面向 IT 运维监控、运维服务管理、IT 运维可视化的一体化综合运维管理平台。
而运维平台离不开海量的指标数据的存储和处理,运维领域的指标数据本质是时序数据,如何使用最少的机器资源在高效的存、写、压缩成为了算法系统需要考虑和解决的问题。
我们在公司真实的场景下通过实验对比了几款时序数据库,在面对百万级、千万级的时间序列中,IoTDB 无论在资源消耗、吞吐能力、聚合查询响应时效和自动纠错能力上有无可比拟的优势。在 2021 年 9 月,我们首次将 IoTDB 引入到我们算法产品,事实证明其可以完美解决我们对指标数据的存储需求。
主持人:你是如何成为 Apache IoTDB Commiter 的,和大家分享下经验
苗红闪:首先我的初衷是想解决公司真实场景中遇到的问题。我们日常处理超过千万级的指标数据,数据体量大、乱序到达、缺失丢点、峰谷潮、粒度不齐整、重复采集等问题在运维场景非常突出,在接触 IoTDB 后被其高效的性能所吸引,但由于 IoTDB 数据库诞生时间比较短,需要完善的地方还有很多。因此就决定在问题解决的同时,可以为 IoTDB 贡献云智慧的一份力量。
我还记得第一次给 IoTDB 做贡献,我从 issue 列表中领取了第一个任务:“用户在使用 Mybaits 集成 IoTDB 的 jdbc 包出现问题”。也是从这个 issue 开始,一发不可收拾。
在跟踪定位问题时发现当时的 IoTDB 的 jdbc 包下面的有些方法并未实现,为了能让 mybatis 可以正常使用,IoTDB jdbc 着手基于 jdbc 4.3 规范来完善 jdbc 的功能,等 jdbc 完善功能告一段落后,我又开始着手准备 IoTDB 的 REST 功能模块和 Grafana plugin 模块等,前后共提了 14 个 pr,贡献代码过万行。
其实这些动作都是自然而然发生的,从领取第一个任务开始,就像是埋下了孕育的种子,通过一次次“浇灌”,种子的茁壮成长给了我极大的成就感和满足感,这是我不断前行的重要动力;在这期间为了把功能和性能做的更好,不断地与社区的 Commiter、Pmc 等小伙伴们进行讨论和交流,大家给了很多很好的建议,这也给了我极大的帮助和鼓励。
未来我仍然会在 IoTDB 做出我的贡献和努力,我计划从以下四个方面出发:
持续迭代现有 IoTDB 的一些模块例如 REST Service、Grafana plugin、JDBC 等
不断完善 IoTDB 的生态集成如 DBeaver、Grafana、Promethus 等。
希望把公司的真实场景中遇到的一些通用问题,作为 IoTDB 完善的功能方向来实现。
未来更远的希望可以把的时间序列数据的检测、预测、多维分析等相关算法与 IoTDB 进行深度结合。
主持人:Apache IoTDB 在云智慧都有哪些落地场景?
苗红闪:目前 IoTDB 在公司的 DOIA(数字化运维算法平台)中作为其中的一个数据源承担着指标数据的存储,在公司真实场景中遇到的数据体量大、乱序到达、缺失丢点、峰谷潮、粒度不齐整、重复采集等这些问题,都属于时序数据库来解决的范畴,因此我们发挥时序数据库的特性,统一交由 IoTDB 来进行处理,减少我们在数据预处理上的工作。
主持人:现如今各大企业纷纷拥抱开源,你认为积极开源对企业有何益处?
苗红闪:是的,积极拥抱开源有诸多益处,云智慧也在积极的建设 AIOps 社区,开源出优秀的产品。这不只是响应国家的号召,同时也是提升企业的技术影响力的重要方式。可以从以下几个点来说吧:
(1)通过开源社区不仅能够加速解决行业遇到的难题、促进该领域技术发展,而且可以吸引到更多其他的企业、团队或个人加入进来提高了项目的创新性、延长项目的生命周期、为项目提供更多的应用场景,同时还可以借助开源社区的力量加快推进项目开发进度,减少开发成本等。
(2)企业通过拥抱开源社区可以让更多的人了解、使用和加入开源项目从而形成行业内的事实标准,有助于提高企业的声誉、品牌形象和竞争力,增加企业的招聘对人才的吸引力。
(3)企业通过开源自己的项目,可以让外界看到公司对代码质量、规范的要求以及团队真实水平,网络上一直流行一句话“技术水平好的公司不一定做开源会好,但做开源社区好的公司一定是技术好的公司”。
主持人:云智慧也在做开源社区,未来你将如何参与建设?
苗红闪:我司开源项目反响很不错,在内部群中频频收到喜报,很是自豪,同时希望我司的开源项目 FlyFIsh 及 OMP 越来越好,未来能影响更多的开发者甚至企业。未来我也将积极参与公司 AIOps 开源社区的主办的活动,使用 AIOps 开源社区的软件,提交个人使用中 issue 完善社区软件的功能,尽多的为社区贡献自己的一份力量,未来希望可以把公司的 AIOps 开源社区生态与 IoTDB 进行集成,同时希望更多的公司或个人关注开源,加入开源项目为开源社区贡献自己的力量。
IoTDB 寄语:
感谢云智慧对 IoTDB 的贡献,云智慧是一个成长迅猛的优秀企业,期待未来和云智慧更深入的合作!同时要预祝云智慧 AIOps 开源社区茁壮成长,壮大中国开源力量!
——Apache Member, Apache IoTDB PMC Chair 黄向东
结束语:
感谢云智慧智能研究院算法团队苗红闪(Luke Miao)对本次访谈的贡献,同时也要恭喜其成为 Apache IoTDB 的新晋 Committer!
同时云智慧 AIOps 社区也想呼吁广大开发者可以积极参与开源,开源不仅能获得技能上的提升,更重要的可以帮你拓宽社交圈,你可以在那里遇到一群志同道合的伙伴,你可以和世界各地大牛 1 对 1 沟通,未来你们可能是合作伙伴,甚至可能成为惺惺相惜朋友,这些更加弥足珍贵,不是吗?
云智慧 AIOps 社区:https://www.cloudwise.ai/
评论