近年来,随着人工智能和物联网的兴起,大数据成为重要的生产资料,时序数据是不可避免的一个可以避免的热门话题。如何提高时序数据的利用率?如何为复杂场景提供可靠的数据库?这些都是行业必须解决的难题。ApacheIoTDB由清华大学发起,是世界领先的国际顶级开源项目。是一个支持物联网时序数据采集、存储、查询、分析一体化的数据管理引擎。根据中国软件测评中心和中国人民大学的性能对标测试,IoTDB的各项性能指标明显优于目前国际最优的时序数据库系统。IoTDB支持“端-边-云”一体化部署,适用于高端设备管理、工厂设备、高速网络设备等多种数据管理场景。应用。IoTDB直接面对了业界需要解决的问题。51CTO有幸邀请到清华大学软件学院助理研究员、ApacheIoTDBPMC、累计贡献最大的“首席贡献者”乔家林博士。观点和见解。国内第一个进入Apache的高校项目Q:IoTDB是国内高校第一个进入Apache基金会的项目。您能介绍一下是什么因素使IoTDB能够取得这样的成绩吗?A:项目进入Apache会经历两个大的阶段。第一阶段是申请加入Apache孵化器。这个阶段最需要注意的是项目的价值和意义,需要在项目申请提案中说明。Apache成员将根据提案判断该项目是否有价值。判断一个项目是否有价值的主要依据是项目要解决的问题是否是一个比较广泛的痛点,是否对社会有价值。除了判断项目的价值,成员们还会评估新项目是否与现有项目重叠。Apache基金会通常会在每个方向选择一个项目进行孵化。如果重叠度很高,则可能会被拒绝。在这方面,IoTDB主要解决了工业物联网项目管理中遇到的问题。我们实验室在2011年左右开始接触工业物联网项目,帮助工业企业管理工程机械产生的数据。在这些数据中,时间序列数据的量最大。当时选择了一些开源系统进行项目实施。但是,由于这些系统并不是为物联网场景设计的,所以会存在性能瓶颈,包括读写速度和压缩比。最后我们决定从头开始解决这些问题。所以IoTDB更具有实际背景,解决的是实际问题,所以会容易被接受。第二阶段是在孵化器内完成项目的标准化和社区的建设,毕业成为顶级项目。孵化器中的所有项目名称都以孵化器开头。在项目的孵化和社区建设阶段,需要注意项目的合规性和社区建设。项目合规性包括代码中是否声明了Apache协议,依赖的开源组件是否兼容Apache协议,版本发布是否按照Apache规范等;社区建设情况包括社区活跃度、邮件列表讨论数、是否有Externalcommitter和PMC等。在这方面,IoTDB始终以打造开源社区为目标。我们社区建设没有一个KPI,大家自发地希望社区能够发展壮大。社区欢迎外部贡献者加入,再加上IoTDB在学校实验室起步,实验室每年都有新生。我们运行了一个社区导师计划,将加入社区的贡献者与新人联系起来。另外,在社区建设和发展的过程中,会写很多文档,这些文档也可以帮助社区的新人上手和上手。Q:与其他组织或个人发起的开源项目相比,高校开源项目的发展有哪些不同?高校开源项目要保持较高的活跃度和稳定的社区参与度,应该注意哪些方面?A:高校发起的开源项目通常没有专门的社区运营者,主要是开发者或学生直接管理社区,开发者直接与用户对接,所以他们会更直接地感受到产品的质量。高校也面临人员流动频繁的问题。通常研究生在参与两年以上后毕业,大部分学生都是兼职参与社区。他们通常有课程、专业作业、考试、实习等来占据他们的精力。不过,在某种程度上,这更符合开源社区的工作方式。每个人都在业余时间参与社区,通过文档和电子邮件进行交流更为重要。鉴于以上特点,高校在开发开源项目时,更要注重与社区的互动,将思想和设计思路与社区同步。同时,还要注意社区项目的宣传。学生更喜欢努力学习。他们可能做过很多好的项目,但是由于宣传不够,知道的人并不多。成为顶级项目后对项目运营的思考Q:IoTDB成长为全球顶级开源项目前后,项目贡献者和社区用户都发生了哪些积极的变化?项目本身的运作模式有否改变?A:开源社区的发展变化不是瞬间的,而是每一天。项目运营模式的改变主要是从进入Apache基金会开始的。原来我们一般都是几个同学商量后才开始做。进入Apache后,每一次讨论都会形成一个文档发到社区。如果大家认为没有问题,就会开始做出改变。过去,我们不太注意宣传。只有实验室的学生知道我们在做什么项目。加入Apache后,我们会开一些会,开始运营项目的公众号,建立微信群,QQ群,Slack等。作为ToB项目,用户不会选择,因为你是顶级项目,什么奖励你赢了,但会在做选择前对软件进行实地测试,满足需求。这个过程会更加理性。贡献者也是如此。许多贡献者本身就是用户。顶级Apache项目可能是他们尝试的原因。经过评估,很多用户和企业会投入研发,全职参与社区。社区的工作模式也从组织主导转变为社区共建。社区就像一个大型组织。实用为王稳定性至上Q:对于数据库项目,您认为数据库的性能、稳定性和可维护性哪个更重要?时序数据库有哪些特别值得注意的地方?A:稳定性第一,可维护性第二,性能第三。工业现场对系统的稳定性要求很高。稳定是指经过前期的测试验证,上线后的表现能够和之前的测试保持一致,让大家能够接受,不会出现大的问题。可维护性也是稳定性的保证。在系统的设计过程中,我们加入了很多对运维友好的特性。下一步是性能。你可以有平庸的表现。大不了,规划的时候可以配置更多的硬件,但是一定要有预见性,有预见性就可以继续做下去。时间序列数据库通常在工厂或设备上运行。机器硬件配置和网络环境不如上网场景。另外,数据负载会比较大,负载会比较复杂,比如网络波动,数据质量问题,这些都是需要考虑的。Q:在开源时序数据库方面,目前流行的比较多的有influxDB、OpenTSDB、TDEngine等,您认为IoTDB有哪些优势?A:IoTDB的优势主要体现在两个方面。一是技术优势。我们接触物联网场景比较早,在做项目的过程中发现了问题,所以我们的设计更能满足物联网场景的需求,而且目标场景更广,没有给系统增加各种限制.而且,这个项目起源于清华大学,学校将不断进行科研创新。二是社区优势。在Apache基金会的指导下,我们建立了一个更加开放的社区,所以社区里有很多互联网公司时序数据库部门的开发者。大家通常会进行非常密切的讨论和分享。这样的社区氛围很好,也会鼓励更多的同学参与进来。从长远来看,社区优势是基础软件发展的长期驱动力。物联网数据模型Q:IoTDB已经应用于很多工业领域,包括风电行业、工程机械、气象大数据平台等,以电厂为例,IoTDB如何帮助企业更好地管理数据?A:我们自主研发了时序数据文件格式TsFile,TsFile采用了物联网的数据模型,因此在数据组织和索引方面对时序数据更加友好和高效。此外,我们优化了数据库引擎的读写流程,将数据按列进行组织和处理,并为查询设计了不同粒度的预聚合信息和缓存,可以大大提高数据查询的效率。对于发电厂来说,一个大型发电机组有数以万计的测点。传统的关系数据库不能存储在一张表中。一张表通常只能存储一千多个测量点。手动分表会造成更多的复杂性。IoTDB的物联网数据模型可以支持任意数量的测量点。点,性能可以保持平稳。在查询的时候,使用多层索引来加速序列和数据的定位。选择国外项目时,你最看重什么?Q:IoTDB在德国和美国也有推广应用,那么这些国外企业在考虑接受和使用IoTDB这样的产品时,有哪些不同的需求或者优先级?A:海外用户,如西门子、博世等都是老牌工业企业,在选型时会进行严格的测试。比如他们在决定是否使用IoTDB时,会先考察15个传统实时数据库,比如美国的PI系统,艾默生的DeltaV,以及ABB、Aspen等的技术和产品现状,然后将IoTDB与这些数据库进行全面比较。另外,在DB-engine上对20多个时序数据库进行了简单的对比,挑选了其中的几个进行测试。他们不仅查看了我们的测试结果,还收集了其他用户的PI和SQLServer测试结果进行比较,然后才决定使用IoTDB。总之,他们在选品的时候非常严谨,同时也会关注定位相近的产品。在测试的时候,他们更愿意用自己的真实负载,或者类似的真实负载来测试,并在此基础上加大压力,而不是一味地爆压,因为后一种测试在实践中是不会发生的。用过,对一条产品线意义不大。另外,国外的公司也很注重项目的国际化,因为国际化也是社区健康的一部分,而国内的一些社区追星操作并没有给国际用户增加多少。社区参与者的情况对于国外公司来说也很重要,比如社区维护者是否都是同一个组织组织的,是否有来自不同国家的项目经理等。开源数据库的未来预测Q:IoTDB项目的最新进展是什么?A:ApacheIoTDB正在以比较快的迭代速度发展。在产品层面,我们在4月份发布了0.13版本,增加了对一元和多元序列的支持,增加了对触发器等功能的支持;添加对连续查询、嵌套表达式等的支持;优化数据写入过程,提升系统文件合并性能;扩展了与外部系统的兼容性,增加了Grafana插件、RESTAPI等。目前我们正在全力优化分布式版本,预计8月份可以推出分布式版本。Q:开源数据库,尤其是国内的开源数据库,近几年很火。您如何看待这种现象?它未来的发展方向是什么?A:开源数据库对我国数据库人才的培养有很好的促进作用。大学里会讲数据库知识,但大多停留在介绍如何使用SQL的层面。大家都不知道怎么建数据库。通过参与开源项目,大家可以真正感受到数据库的发展过程,有助于中国培养软件基础人才。未来,新型数据库可能会不断涌现,比如近几年出现的时序数据库、图数据库等。该数据库也将更专业,更针对某些领域。此外,数据库与AI、分析系统、流处理系统等的结合也是一个新的发展方向。Q:请给正在做开源数据库的开发者和即将加入IoTDB的同学们提点建议。A:虽然开源数据库最近比较火,但是数据库是一个高度复杂的系统软件,门槛还是很高的。一定要做好心理预期。参与开源数据库的开发,可能一两周就见不到效果。从了解数据库的基本概念和用法,到了解其系统架构、设计理念,最后找到研究和优化的切入点。这个过程比较漫长,希望大家能够长期坚持,在这个过程中感受自己的成长。嘉宾介绍了博士生乔家林。毕业于清华大学软件学院。现为清华大学软件学院博士后。清华大学软件学院助理研究员。他还是ApacheIoTDBPMC,公众号“IronHeadJoe”的作者,以及OpenAtomFoundation的银牌。讲师,获北京市科技进步一等奖。研究领域为数据库方向,包括文件结构、索引、副本管理等,见证了IoTDB从第一个版本发布到毕业成为Apache基金会顶级项目的全过程。最新一期51CTO科技精选月刊《CTO悟道》现已上线!更多精彩技术干货,知识和见解等你来揭晓,下载链接:https://img.ydisp.cn/news/20220628/00aprkkgl3w.html
