从高校中走出的 Apache 顶级项目 —— IoTDB 核心成员黄向东

本期访谈嘉宾:黄向东

Apache 顶级开放源代码项目 IoTDB(物联网数据库)核心成员、2021 年开源先锋、清华大学软件学院助理研究员。


Q:简单介绍一下 Apache IoTDB

IoTDB (Database for Internet of Things,物联网数据库)是一体化收集、存储、管理与分析物联网时序数据的软件系统,由清华大学软件学院发起并研发,2018 年捐赠给 Apache 软件基金会,并于 2020 年毕业成为顶级项目。 

IoTDB 关注的是工业物联网场景下的时序数据,这类数据近几年处于一种爆发式增长的模式,受关注度增长在 DB-Engines 数据库排名网也稳居第一。自 2016 年起,实验室投入大量研发力量,但在做的过程中发现,在产品体验、功能设计上难免与用户的实际需求有偏差,在后期的项目维护、推广上,也存在很多问题。如何解决高校和用户离得远,并把学生的创造力变成产品化的生产力,是我们 2018 年决定开源并进入 Apache 软件基金会的原因之一。此外,让全世界用户能够最简单、便捷地享受清华的科研成果对工业物联网行业带来的升级与提升,也是我们决定开源的一大因素。

Q:Apache IoTDB 目前的发展情况及后续的规划

我们通过自研底层存储文件结构、内存中的 memtable 结构、pipiline(管道式)的刷新机制,以及面向时序数据优化的 LSM 树数据结构,使 IoTDB 提供高效能写入性能。此外,针对工业用户在工业互联网场景下对时序数据的访问和分析需求,IoTDB 也提供了丰富的查询和分析的功能。 

进入 Apache 之后,Christofer Dutz(Apache 2022 新任董事)帮我们做了自动化 CD(持续交付)、项目规范化 Release、静态代码检测指导等。在项目质量提升的同时,也感受到了新加入 Apache 时的项目与工业级标准化产品之间的差距。

现在,经过和其他开源项目进行深度集成,IoTDB 形成了面向物联网数据的,从数据采集、存储、管理、分析、应用的全生命周期的物联网解决方案生态,满足工业物联网领域的海量数据存储、高速数据读取和复杂数据分析需求。国内很多中字头企业都在用 IoTDB,例如中车、中核、中核电、中航成飞等,另外像德国、美国的一些工业龙头也在对 IoTDB 进行验证和使用。 

目前,工业用户的应用诉求越来越多,而工业互联网场景和很多纯互联网场景存在差异。例如,工业互联网场景的参与角色跨越了端边云,端产生数据,边传输数据,云汇总全量数据。如何让端边云上的数据能协同的管理和使用起来,以及通过新的存储引擎实现新的查询架构设计让 IoTDB 的读写性能变得更高,并加强其工业语义的分析能力,这是 IoTDB 后期会继续发力的点。

Q:高校开源项目如何和产业结合落地?优势是什么?

企业做出来的开源大多来自生产实践,具有普遍性;而高校开源的出发点是其认为该技术很新颖、独创性较高,同时适用于很多用户及场景。相对而言,高校的技术创新性会更超前,对整个社会的软件技术含量有促进推动的作用,所以我非常期待高校做开源。 

高校的团队做开源,首先要清楚学校的规章制度,确保知识产权合规,并且做好代码开源后持续投入时间和精力维护的准备。在国内,如果一个高校的团队有 20 个人参与到同一个项目中,便已经是一个超大的团队了,但是对于一个产品研发来讲,20 人远远不够。然而,如果你的项目有技术含量、足够 open、实用性较高,就一定会吸引新的开发者参与项目,成为项目开发的生力军,从而弥补高校团队的不足。相对应的,团队一定要在服务用户的过程中多一些耐心和决心,不能因为用户提的问题科研含量较低,就觉得在他身上花时间是浪费时间。其实,真实的用户需求一旦被引导出来,是可以帮助团队把控科研方向、寻找落地功能点、增强项目稳定性的,这种开源模式对高校来说是很好的补充。 

虽然高校的团队一般都有很多渠道能够发声,包括在与国家部委合作项目中做推广宣传、参加一些较大的会议等。但即便如此,很多团队依然难以触及到大量的工业用户。但在开源模式下,因为用户会主动寻找合适的项目和技术,就恰好解决了高校如何获取用户实际需求的问题。

总之,在 IoTDB 开源的 4、5 年里,我们由衷感谢所有的 IoTDB 开源用户伴随我们一起成长。没有他们,就没有现在这个功能全面、性能优异、稳定可靠的 IoTDB。我们也期待继续为开源社区和用户们贡献更好的 IoTDB。

Q:高校如何培养开源人才?

通过开源对学生进行历练是非常好的一种模式。在整个开源过程中,学生会与不同的用户打交道。无论用户是否懂技术,这个过程都是对他们沟通能力的锻炼。此外,参与开源项目,对学生写代码的能力、用文字将自己所做之事描述清楚的能力,以及对书本上没涉及到的知识的学习吸收能力,都是一个很好的补充。

虽然深度参与开源项目会占据学生大量的时间做工程化,但学生们的实践能力可以因此得到很好的培养。等他们参与企业工作后,一就位就是老手的感觉,而不会像其他应届毕业生一样需要较长时间的培训。所以,即使仅仅从找工作的经历看,开源对学生的培养也是非常有好处的,尤其是国际化的开源社区,还会接触到一些国际用户和开发者,进一步拓宽他们的国际视野。 

Q:谈谈对形容社区里的学生为“流水的兵”的看法

确实有不少学生在毕业后便离开社区了。第一,高校一届一届地培养人才,帮助他们成长为企业的中坚力量,从人才培养和社会输出角度来看,就已经形成了一个正收益。第二,离开很可能只是暂时的。随着项目的应用场景越来越多,学生在工作中可能会涉及到相关的内容,有了结合点就很容易回归。此外,那些真正对开源感兴趣、实力强的人一般最终还是会留下的,他们往往会做起项目的 Maintainer,承担起带新人和帮助项目把控质量的角色,帮助项目可持续发展。

另外,即使有学生并没有回到 IoTDB,但是如果毕业后在其他开源项目里面变成了 Committer,我们会觉得很欣慰,因为这是对学生培养的一个成功。学生能在新项目中快速成为 Committer,相信一定跟他以前参与 IoTDB、了解开源及 Apache 社区的运转模式脱不开关系。所以我觉得流水的兵,流就流吧,只要为社会创造了财富,那就是值得的。 

在学校里,老师同学们在做项目或研究时会用到很多开源软件,但却很少有机会能真正参与到开源项目里。如果能参与到开源项目中,可能能为大家打开另外一扇窗,所以这里也想呼吁老师同学们参与开源、拥抱开源,为软件能有更好的发展共同努力。

Q:对在高校教育中加强开源文化建设的看法

开源热这件事确实热,但是我们学院院长曾提过一个观点是:谨防开源过热。大家到底是跟风追潮流?还是真的觉得开源协同创新是一个好的模式?是为了拿项目?还是真心认为对科研或对学生好?还是要扪心自问的。 

在高校教育中加强开源文化建设,我认为这件事情很重要,但是急不来。把开源做成有深度的课程是有难度的。现在高校里真正研究开源的人并不多,如果仓促的着手教材建设,可能不是一件好事;而企业的开源经验很多,但他们对于教材应该如何编写可能没有感性的认识。因此可能需要来自多个领域的人共同合作。

我想,可能能通过以下渠道:

第一,从讲座开始,逐步形成短期课程建设;

第二,邀请企业人士为高校的学生或老师做培训和教育;

第三,实践出真知。鼓励学生在课余时间多接触和参与开源,多做实践;

第四,相关的老师也参与到一线,通过时间积累和实践积累,把自己的开源经验组织成未来的课程或者一些更体系化的东西。

Q:对开源雨林的看法及建议

孤木难成林,我觉得开源雨林的名字很好啊!开源社区也一样,一个项目靠一两个英雄是不够的;站在整个软件行业来讲,一个开源项目也是不够的,一定是多个开源项目互相促进,互相集成,共同去服务,搭建一套完整的解决方案。开源项目或者开源社区本身应该多交叉,达到1+1>2的效果,所以我觉得开源雨林不管在国内还是国际上,都能起到非常正向的促进作用,非常有意义。

猜你喜欢

转载自blog.csdn.net/Huawei_KYYL/article/details/127753849