云计算·大数据 频道

Apache IoTDB 诞生记:学术圈出来的数据库有啥不一样?

  分享嘉宾:

  乔嘉林

  天谋科技联合创始人 & CTO、Apache IoTDB PMC 及初创成员、清华大学博士、中国通信学会开源技术专委会委员、学术秘书。

  从头参与建设物联网时序数据管理领域的首个 Apache 项目 IoTDB,及第二个项目 TsFile。

  获 Apache Member(Apache 基金会委员)、中国开源先锋人物、清华大学水木学者、开放原子基金会银牌讲师,并作为 10 位基础软件的领军人物之一,荣获 2023 优秀软件工程师。相关成果获北京市科技进步奖一等奖。

  Apache IoTDB 是一款低成本、高可用的物联网原生时序数据库,采用端边云协同的轻量化结构,支持一体化的物联网时序数据收集、存储、管理与分析。

  01 创业启于开源

  2016 年我读博士期间,在学校参与了这个数据库的项目开发。这个项目在实验室酝酿了几年,2017 年正式开源。一年之后,这个项目和里面的一些技术点、一些专利都捐给了 Apache 基金会,它成为了一个全球开源的项目。

  开源之后,我就不仅仅是研发了,我也参与到了开源社区的运营里面,做开源用户的技术支持,一些用户线上实施的维护,等等。大概两年后,数据库从 Apache 的一个孵化器项目毕业,成为了一个知名项目。

  在学校做开源的好处,就是没有金钱压力,我们可能想的更多是互联网场景到底需要一款什么样的数据库?数据库的架构需要是什么样子的?现在的开源技术有哪些是比较好的?我们可以做更多的选择、更多的技术方案的论证、设计和实现。

  我毕业之后,开始成立这个商业化的公司,去做 Apache IoTDB 的企业版,来为一些用户提供更加专业的产品服务。这就是我和数据库一起成长的过程。

  02 数据库花样繁多,是不可避免的

  要问为什么国内有这么多数据库,我觉得可以先看看数据库是干啥的?它是管数据的。这个是大家公认的:把数据管起来,查得好,查的快。那我们就看看有多少种类型的数据:有向文档、关系、时序、键值、图、向量。如果我们把数据库当做一个归纳师,那我们要归纳的物体种类其实是蛮多的。

  在这个基础上进一步,有多少应用场景?像金融,是一个典型的场景,然后物联网它又是一个典型的场景,这每一个场景下面又会有细分的行业,他们对数据的使用方式可能也都不一样。所以这是导致大家在做数据库的时候设计理念和目标不一样的地方,也是现在数据库为什么这么多的一个比较大的原因。

  在这个背景下,时序也是其中的一个数据类型,我们做的 IoTDB,就是一个针对物联网场景的数据库,这也决定了我们是针对物联网场景的时序数据管理。这两个点结合起来,如果你是刚好处在这两个点上,那么我们的产品是一个比较好的选择。

  03 一个好的数据库,得学会克制

  我导师说得最多的一句话,就是要控制数据库的复杂度,不该数据库做的不用它做。代码的简洁度才是一个数据库长久的生命力来源。如果我们把很多功能都加进去,短期可能收获了一两个用户,但是长期来说,这个代码就不可维护了。

  那我们为什么能做到这一点?我觉得可能有前面开源的积累。因为我们经过了大概五年的开源的打磨之后才正式做商业化,我们出去的时候,这个产品基本已经能够满足很多开源用户、包括企业用户的需求了。这个产品它足够标准,用户就不太会给我们提一些稀奇古怪的需求。但是,因为我们做的是工业物联网的数据库,工业这个场景也够复杂,我们想跟工业用户平等交流他的业务场景的需求的话,确实也是需要多学习的。

  像我跟工业用户去沟通的时候,不单单会聊数据库管哪些数据,还有数据是怎么从传感器来的、怎么采到数据库里面去的...... 这整个过程。学完这些,我就能够结合数据的来龙去脉,把这个原理给他说清楚。加上有清华这个背景因素,大家也会发现我们确实是一个比较专业的团队,在这方面更好商量。

  04 中外市场,各有优势

  我们的产品第一步的规划就是一个国际化的项目。因为我们开源了,所以不光是国内的用户,美国、欧洲、甚至澳洲的一些用户都在用我们的这个数据库去管海外的工业数据,像钢铁的数据、风力发电的数据,等等。

  因为在制造业方面,还是中国更强,场景更多,数据量也更大,起码从我们遇到的场景里面、管理的数据的复杂度来看,国内的这些复杂度是远远超过国外的。所以我们也更能够做出比外国更先进的产品,这是国内市场的一个优势。

  不过,在工业互联网,技术迭代是最慢的。互联网行业替换一个运营商的组件,可能一年就行;但工业里面去做这样一款架构的升级,有可能是规划一年,实施一年,验证一年,三五年就过去了,才完成了一两轮的技术迭代。这个行业,可能五年前做出的成果,推广一些案例之后,才能慢慢得到逐家的跟进。

  不过如今,Apache IoTDB 在时序数据库行业,已经是比较 Top 的产品了。我现在读论文,会发现学者们在综述里都会提到 Apache IoTDB。而且,已经有一部分的教科书包含 Apache IoTDB 了。CMU 有一个数据库的排行榜,里面收录了海内外的各种数据库,也把 Apache IoTDB 收录进去了,作为时序数据库领域一个比较典型的数据库。所以,假以时日,我相信 Apache IoTDB 在时序数据库领域,会有更高的领导地位。

0
相关文章