apache iotdb_开源知多少 | 黄向东学长与IoTDB的故事

清华大学博士后黄向东在2018清华开源软件发展峰会上介绍了IoTDB项目,这是一个由清华主导开发的时间序列数据管理引擎,已进入Apache孵化器。文章探讨了开源软件、Apache软件基金会的重要性,以及IoTDB在物联网和大数据领域的应用。开发过程中面临的问题包括学生编程能力、代码质量和团队协作的挑战,但也带来了编程能力、软件工程素养的提升和国际视野的拓宽。黄向东强调开源的优势在于用户参与、社区建设,并分享了保持开源项目活跃度的策略。
摘要由CSDN通过智能技术生成

2018

12.19

2018清华开源软件发展峰会于清华大学FIT楼二层报告厅如期召开。本次会议除邀请了Apache基金会秘书长Craig Russel,华为、腾讯、百度等著名公司的开源项目负责人以外,我院博士后黄向东作为IoTDB项目的研发负责人,作了题为《IoTDB与清华开源实践》的报告。

好厉害——(破音)

想必同学们很想深入了解这个开源项目吧~我们请到了负责人黄向东学长,他将与我们分享他与开源的故事。

且慢!不少同学可能对开源、阿帕奇等概念还比较陌生,让我们先来看看背景介绍——

b68f34baeb6b49e3d4095126c996c83f.png

背景知识

88f6c5e06401b1333b7a1507c50ebaf2.png

开源软件

开源软件(英语:open source software,缩写为OSS)是一种源代码可以任意获取的计算机软件,这种软件的版权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改以及在协议范围内向任何人分发该软件。开源软件常被公开和合作地开发。

0f2786666102c534acce542ab87de100.png

Apache软件基金会

Apache软件基金会(Apache Software Foundation,简称为ASF)于1999年创办,是世界上最大的开源软件基金会,其使命是”To provide software at no charge for the public good”。到目前为止,Apache软件基金会已经支持了300多个企业级开源项目的开发和发展,特别关注人工智能、物联网、大数据等领域。ASF的第一个,也是最具代表性的开源项目,Apache HTTP Server,在几乎所有最热门和访问量最大的网站中被使用,连续二十多年一直是全球最流行的HTTP网页服务器。Apache Maven、Ant等则是目前进行Java开发必不可少的工具。

大数据时代,Apache软件基金会的作用更加突出。如Apache Spark、Apache Hadoop等促成了大数据技术在业界的快速落地。

Apache软件基金会的开源项目主要分为顶级项目和Incubator(孵化器)项目,其中顶级项目是完全成熟的开源项目,如Ant、Spark、Hadoop等,而Incubator项目则是为旨在成为Apache顶级项目的开源项目提供的通道。

128d45103ded5b1a53f8d4891f39b8ed.png

IoTDB

https://iotdb.apache.org

IoTDB由清华大学大数据系统软件国家工程实验室主导开发,是针对时间序列数据收集、存储与分析一体化的数据管理引擎,目前已经进入Apache开发孵化器,也是国内高校首个进入Apache基金会的项目。它具有体量轻、性能高、易使用的特点,完美对接Hadoop与Spark生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。

接下来让我们听听学长怎么说。

b68f34baeb6b49e3d4095126c996c83f.png

采访

请问IoTDB的开发背景是什么?

b68f34baeb6b49e3d4095126c996c83f.png c4a2d9fecee56a74b308c47854741efb.png

       现如今,物联网的发展推动了海量时间序列数据的产生,因此我们想开发一个针对时间序列数据的数据管理引擎。一开始我们在一个Apache的开源软件基础上做。第一,我们发现我们需要很好地权衡自研部分和原有软件之间的界限,否则要么难以开发出想要的功能或者性能,要么就得大幅度定制修改开源软件源码,将来的升级维护变得非常麻烦。第二,我们注意到这种场景下列式存储的优越性,而市面上在此方面的工作不足以应对现有需求。第三,我们认为作为清华大学,应该有像Apache Spark(来自于伯克利大学)这种拿得出手的完全自主的软件,所以从底层重新写了一个。

您在参与开源项目的过程中都遇到过哪些问题和困难?

b68f34baeb6b49e3d4095126c996c83f.png c4a2d9fecee56a74b308c47854741efb.png

       我们遇到的主要挑战,如果归结起来的话,在于学生的动手能力和课堂学习的脱节。举几个方面的例子吧。

       一是我们的同学以前只是写写小程序,或者两三个人组队做个大作业,在这个工程中一般还是一个人写文档,一个人写前端,一个人写后端,工作基本完全分离。再好一点的学生可能做过一些小的外包项目。但是,大部分同学都没有接触过一个大型软件如何开发和十几个人的团队如何协作。每个新生进来,我们都要从怎么用GIT开始教起。这个GIT不是大家简单的认为就是把代码提交、下载、切个分支这么简单。我们需要锻炼他们如何写提交日志、如何合并分支、如何打补丁、如何打tag等等。

       二是代码质量问题。低年级的同学的编程水平还有待提高,面向对象的抽象能力还不够,代码不能直接入代码库,因此我们引入了code review机制,由高年级同学改进代码质量。后来,我们还安排了一个研究生花了一年时间写了一个测试工具,用以判断每一次修改是否引入了新的BUG,是否降低了性能等等。最后,我们引入了持续集成的概念。

       三是,我们在真正实现数据库时发现有许多难点,会去参考之前的教材。但这时候就会发现教材的内容写的很简单,完全没告诉你在实现时有什么问题。这时候我们又要参考其他开源数据库的代码,或者找找有没有相关论文。

看来你们碰到了不少挑战,那么又有那些收获呢?

b68f34baeb6b49e3d4095126c996c83f.png c4a2d9fecee56a74b308c47854741efb.png

收获自然是颇多的,我们的编程能力、软件工程素养、团队协作意识等都得到了提升,并且发现能够深入理解教科书里的很多内容,甚至进行扩展。开源之后我们有了和国际大牛们交流的机会,提升了国际化视野。此外还有一些很“实用”的收获,比如说大家都真真切切地拥有了开发一个项目的经验,这对于今后择业就业是有很大帮助的;有的同学甚至凭借自己在项目中的贡献获得了阿帕奇的commiter头衔,这是非常有含金量的。

在当前这个知识产权的时代,您认为开源最大的优势是什么?

b68f34baeb6b49e3d4095126c996c83f.png c4a2d9fecee56a74b308c47854741efb.png

       首先,世界上有大量的代码,但如果没有用户就都是废品。开源能够吸引用户、降低使用门槛、提高用户信任度;

       其次,开源行为本身会使得软件更强大,社区具有一定规模后,会有很多人来扩展功能,很多人来找bug,debug。对个人而言,开源还会塑造出一批“明星”程序员,他们会因为自己的开源软件而在业界知名。

您认为在学界和业界发展开源项目有什么不同呢?

b68f34baeb6b49e3d4095126c996c83f.png c4a2d9fecee56a74b308c47854741efb.png

从软件自身的角度来看,没什么差异。但从出发点来看,会有差异:企业一般是有业务需求;而高校的出发点是觉得一个项目有一定的学术创新性,而后在其基础上形成软件,比如伯克利开发的Spark。此外,企业可能会比学校更快地推进一个开源项目。

目前学院和学校都很重视发展开源项目,您认为目前这方面还有哪些亟待解决的问题?

如何能使一个开源项目保持较高的活跃度和稳定的社区参与?

b68f34baeb6b49e3d4095126c996c83f.png c4a2d9fecee56a74b308c47854741efb.png

亟待解决的其中一个问题是同学们的参与度不够。希望学校能够更多地宣传开源精神以及产业界相应的动向,也许学校层面的针对项目实战的鼓励和考核体系也是一种解决措施。

近期我们也在准备“清华大学学生开源促进协会”的设立,感兴趣的同学可以关注一下。

至于如何保障社区的活跃度和稳定参与,我认为有以下三点需要注意:

一是“万事开头难”,前期宣传非常重要,比如可以通过公众号来介绍项目相关的技术和知识。我们作为学校,十分希望同学们能够参与进来,壮大我们的开发队伍,并在这里获得经验与成长。

二是可以加强和其他社区的互动,比如因为IoTDB可以在spark上进行分析,IoTDB社区和Spark社区就存在着较频繁的互动。

三是一个项目最初的开发者也要持续稳定地推进。

软件学院与IoTDB的关系是什么?学院提供了哪些支持呢?

b68f34baeb6b49e3d4095126c996c83f.png c4a2d9fecee56a74b308c47854741efb.png

学院对IoTDB项目的发起和推进起到了莫大的作用。

       第一,之所以会发起这个项目,是由于软件学院信息所过去若干年做了很多工业时间序列数据管理的实践,才深刻感受到现有软件的不足,故而才有了这个项目。

       第二,IoTDB项目不是一个国家项目,也就是说其实我们并没有国家项目经费支持,她的研发完全是依靠学院和信息所的支持的。学院投入了大量的力量来帮助这个项目。例如,我们有很多服务器可以用来测试,而且每年都会有几名同学加入到该项目中。很多老师也在各方面对项目给出建议,并在各种大会和报告中对外宣讲IoTDB。比如说去年的首届数字中国峰会,就专门为IoTDB做了一个很大的展板,向全国人民展示IoTDB。

       第三,在项目进入Apache期间,学院也协助我们多次组织和国际上的专家,Apache社区的经验人士进行讨论,给我们指导意见。

       第四,正是借助学院的力量,IoTDB在还不成熟的时候就能够接触到各种用户,然后根据用户的反馈和需求来进一步完善IoTDB,才有了IoTDB现在的成长。

结语

最后学长再次提到,希望更多同学了解开源项目,知道开源项目对整个产业界的运作和发展很重要,也希望更多同学能加入。(点击阅读原文了解更多IoTDB的相关信息)

不管你是想成为了解数据库原理的后台开发程序员、搭建精美界面的前端开发程序员、具备各种自动化手段的测试程序员,还是想练习如何成为一个产品经理、如何写出用户与程序员都认可的文档,这里都有你发挥的舞台!

文案:骆炳君 从业臻

排版:黎思宇

审核:王述熠

b133b5885b2d1538a83dbb17b56e4306.png

软小宣

软院的未来 你我共创

软院的明天 你我同行

微信号:ruanjianxuanchuan

c3adf2627962ae243738ba77bcb233e0.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>