12 月 3 日、4日,2022 Apache IoTDB 物联网生态大会在线上圆满落幕。大会上发布 Apache IoTDB 的分布式 1.0 版本,并分享 Apache IoTDB 实现的数据管理技术与物联网场景实践案例,深入探讨了 Apache IoTDB 与物联网企业如何共建活跃生态,企业如何与开源社区紧密配合,实现共赢。
我们邀请到天谋科技公司项目研发部负责人刘海参加此次大会,并做主题演讲——《Timecho:孵化于 Apache IoTDB 的开源商业化公司及其核心产品》。以下为内容全文。
大家好,我是天谋公司的刘海,今天跟大家分享的主题是《Timecho:孵化于 Apache IoTDB 的开源商业公司及其核心产品》。
我们今天主要分这四个部分。首先介绍一下 Timecho 公司的概况,之后关于 TimechoDB,我们想从三个方面来给大家做一个介绍。一个是从我们产品的全生命周期的数据管理。第二,介绍我们其他的一些有趣的功能。最后介绍我们 Timecho Edge 边缘版的端边云协同的方面的一些功能和探索。
01 Timecho 公司介绍
公司为 Apache IoTDB 的核心团队创立的商业化公司,成员来自清华大学、UC Berkeley 和德国能源集团等一些顶尖的专家。我们的愿景是“让时间发声”,让企业可以用更低的成本,可以挖掘更大的数据价值。本身公司还是一个非常硬核的一个技术公司,有多达 30 余项专利,也有很多的软著和其他知识产权。
公司一个简单的发展历程其实可以回溯到 2011 年,清华大学参与一个 863 的重点课题项目,从中发现一些相关的商机和相关单位的一些技术上面的痛点。在 2015 年的时候,我们首先开创了 TsFile 的技术,提供文件级的数据访问。之后,2018 年,我们成为 Apache 的一个开源孵化器项目,也吸引了国内外很多同行的关注,构建了相关的开源社区,共同来发展这个产品。到了 2020 年,项目取得了一个阶段性的成果,Apache IoTDB 正式从 Apache 孵化项目毕业,成为一个 Apache 的顶级项目。2021 年,我们成立了这间商业公司,来正式的商业化运作 Apache IoTDB 和它的商业化产品。
公司和产品还是获得了非常多的荣誉,包括国家“十三五”的科技成果展,包括北京市科技进步一等奖,包括最近获得的 CSDN 的年度开源软件项目等等。
公司目前主要聚焦于国内的业务,同时也会辐射全球的用户。公司研发人员 70% 都拥有硕士的学位,60% 以上都毕业于国内外的顶级的学府。我们的核心人员来自于工业互联网产业的相关的专家、数据库专委会的委员、开源社区的很多委员和非常有经验的专家。利用我们十余年的研发和工业领域服务的经验,为工业领域的用户提供高效的服务和良好的感受,包括国内外的专利。大家可以看到,公司目前也是全球布局。除了北京总部以外,我们在上海也设有研发中心,在欧洲总部则设在德国。
02 TimechoDB:物联网数据库的数据全生命周期管理
好的,这是关于公司的一个非常简短的介绍。下面主要重点跟大家介绍一下我们公司的商业化产品,TimechoDB。其实这是一个非常概括的介绍了,几乎每一两张 PPT 可能都可以展开成一个专题的讲座了。那么我们在这里就是尽量快速跟大家过一过我们主要的一些产品。那么大家可以看到,经过这一年多的发展,我们完成了 TimechoDB 商业化版本,仍然是围绕 IoTDB 作为核心,但除了做数据库以外,也发展了数据的全生命周期管理。
所谓的一个数据的全生命周期,大概我们概括成这样一个图片。包括从最左侧的采集协议做起,然后有些数据会直接进入数据库,也有些会经过规则引擎,产生告警信息,或者经过流处理以后生成的数据进入数据库。中间当然是我们核心的数据库产品,包括数据的实时和历史数据的存储,然后它的建模、查询、处理、分析等一整套强大的数据库引擎。那么存入数据库之后,它的下游是它的一些数据的应用,包括它的工业领域里头的组态显示、可视化的数据,包括交互式的分析和大数据分析。
那么下面,我们一一来看一看在这几个环节,我们 TimechoDB 的一些功能和产品。
首先是采集部分,数据采集平台我们目前已经可以覆盖有 OPC UA、Modbus 等等流行的这些数据采集的协议,也完成了一个高度灵活、可扩充的一个可视化平台,提供了基本的资产管理功能,也提供了其他包括装备、智能网关,包括控制器,包括协议的这些元素的支持,以及对特定测点的特定任务的编辑,可以搜集特定的测点,以特定的频率来搜集等等,都可以灵活的来配置和使用。
目前为止,我们一共有支持超过 150 种采集协议和设备型号,已经广泛地应用在中航、中车、中冶、广船、国网等等这些国字头的超大型国企中,得到非常广泛的应用。那么我们本身也是一个开放式的平台架构,可以继续的欢迎其他第三方厂商开发更多的协议,加入到我们这个平台中。我们也有开放的 SDK 的支持,可以继续的丰富和满足更多用户的需求。
那说完了数据采集部分,我们看一看我们的可视化管理工具。IoTDB 本身具有很强大的数据管理功能,那么之前我们都是在控制台上面敲命令语句,现在我们也很开心地向大家介绍我们的 Workbench 可视化工具。它是 IoTDB 配套的管理工具,可以提供元数据的可视化和管理,也提供数据的增删改查、权限管控等等,各种管理和控制功能,是一个给 DBA 使用的一个可视化的管理工具。
这个 Workbench 中的功能主要包括它支持多个 IoTDB 的连接,运用用户权限、密码这些。
数据库管理部分则支持模型的展示、自助的查询,原来可能有的同学记不住这么复杂的查询指令的话,在 Workbench 里头都有内置的查询指令的数据库,可以提示大家用什么样的指令等等,不需要死记硬背很多的指令,更友好、更方便。包括数据预览功能,包括完善的权限管理功能,把我们 IoTDB 丰富的用户权限和角色功能都做了可视化的展示,可以在 UI 上面通过拖拉拽完成这些权限的配置。
监控管理部分,包括丰富的监控指标的查询观测,下面我们也会有一些图片来可以看到。也有连接信息和审计日志的可视化的查看,也支持我们最新的分布式系统的集群管理功能。
数据看板则提供数据统计、实时图表、计算、告警等等通用的这些数据展示的功能。
这个是一个组态的界面,在工业实时数据库领域,组态展示也是一个必不可少的功能。那么我们也具备工业自动化的监控系统,具备画面的组态、动画效果、设备组态、实时报警、历史和实时的曲线等等。左边这个图,大家可以看到上面是有一些丰富的统计图表。左下是实时数据的展示,包括工业现场的工况的实时变化的一些动画的展示。右侧是告警处理和告警的列表,方便大家处理和预览。如果双击上面的这些组件,也可以弹出来实时的和历史的趋势图,看到数据的历史趋势变化。
最后是我们的数据可视化和交互式分析的工具。左边是可以看到我们可以灵活的定义数据的可视化布局,右边是集成式的交互式分析套件,可以一键生成复杂的报表,同时也可以把之前生成的报表存储在系统中,随时可以回调查看。
最后我们看到的是除了提供这些软件,在这过去一年当中,我们也完成了跟国产的这些主流的 CPU 和操作系统的交互认证,可以保证我们的系统在这些国产的平台上面能够顺畅的运行,能够双向的发挥出双方的更高的效力。
其他的包括软件著作权,包括我们刚才提到的国内外的专利,包括右边是我们拿到权威的软件评测中心给我们出具的性能和功能的测试报告。同时也很高兴跟大家分享,最近我们也跟信通院完成了实时数据库的相关的测试,包括性能和功能的测试都已经通过,包括必选的和可选的测试项都全部达标。
03 TimechoDB:更多功能、更专业服务
所以上面我们跟大家分享的是我们 TimechoDB 的全生命周期的数据管理方面的功能,下面我们再看一些更多的配套的产品和它们的功能。
首先是我们的双活版功能,通过一个双活版本的支持,用两节点实现高可用。相对的,即便一个节点垮了,另一个节点会及时补上,完成了一个高可用的功能,同时又占用相对比较少的资源,两台机器就能构成这样一个系统。它用于比方说,像我们曾经遇到过一个隧道两端,隧道可能很长,两端可能各有一些传感器,那么部署一套 IoTDB 就不太现实了。那具有了高可用的双活功能之后,我们就可以在两端各部署一套 IoTDB,同时把它们部署成双活的 body,那么形成一个实时的数据的交流。用户如果观测任何一个 IoTDB 的话,都会得到全量的数据,非常的方便,又能够实时的获取相关的信息。
当然了,更多的应用可能还在于备份方面。我们有用户经常关心我们 IoTDB 备份功能,其实我们提供了一个备份但是超越备份的功能,它不需要同步或者异步的备份了,它是实时的用另一台双主机来构成数据的热备份。跟我们原来说的主从也都不一样,我们这个是双主机,在客户端可以自动的选择适用的 IoTDB,两个都是主。
这个是我们双活架构的一个基本的架构图。大家可以看到,通过我们原生的客户端就可以自动的切换,在两个主机上面可以切换,访问哪一个 IoTDB,都可以获得同样的结果。那么当数据写入的时候,左侧看到包括数据的缓存和写前日志,一个是通过内存,一个是通过磁盘落盘的,都可以完成转发线程到另一个 IoTDB 的数据同步。当然了,两个转发之间也会有一个状态同步,协调他们的转发的进程,保证数据既不丢失也不会重发。通过这样一个原创的结构,我们可以完成一个高效的、又是非常安全的、高可用的一个双活模型。
此外,IoTDB 现在还支持系统的监控功能。目前产品中支持一共 134 种监控指标,我们把它分成了包括高端的概况的功能,也包括接口层、共识层、引擎层和系统层的不同的指标这些指标分类。
那么我们这个系统监控功能具有一些业界很独特的功能,包括支持监控指标的分级管理,我们现在分了四个级别,用户可以自由的选择。我们通常情况下可能只会关心高级别的监控指标,不要被信息淹没了是吧?但是如果一旦高级别的指标出现了异常的话,我们也可以随时选择把低级别的指标也打开,从而看到和分析故障可能的原因等等,提供更丰富的信息,也可以在上述这些分类中选择我们关心的是哪一类的监控信息。
同时我们所有的这些配置,在配置文件中都是可以热加载的,也就是说用户可以随时更改我关心的监控指标,不需要重启 IoTDB 就可以看到这个效果,非常的灵活,可以随时的增删。这个系统监控功能,我们也和最新的分布式的架构做了适配,所以可以针对每一个节点来观测它的这 134 个指标,这样用户可以更灵活地来配置自己的需求。
这里我放了一些例子。右上的图片是关于系统级的可观测性,可以看到现在有三个 ConfigNode,三个 DataNode,18个 Region 等等,是一些系统级的高端的一些指标。右下这个图则是我们的一些运维人员可能会关心的一些数据曲线,可以帮助我们的运维人员随时观测和调整系统的配置,从而获得更佳的性能和提前预知系统的一些故障状况,提前做出响应。
除了我们运维人员以外,我们也给开发人员提供很详细的信息。这个因篇幅原因我没有贴图,但是开发人员也可以通过观察磁盘声音大小等等这些资源信息,都可以通过监控信息来得到。实际上现在我们自己的开发人员在开发过程中,也都是随时在使用我们自己的监控系统,用来提高我们开发的效率,所以如果社区里的小伙伴加入到我们的社区,跟我们一块来开发 IoTDB 的话,也都欢迎来使用这个功能,会非常的方便,能够起到提高大家工作效率的作用。
除了双活、监控等等,我们在企业版中还增加了很多非常丰富的功能。比方说这里头举例的审计日志的功能和白名单的功能。审计日志我们会记录数据库的各项数据指标,来保证数据库的数据的信息安全,这个也是数据库的一项基础功能。那么除此之外,我们还针对时序数据库的特点,提供了一个智能区分人员行为和采集器行为的功能。多数情况下,因为时序数据库的特点它有海量的写入,那么如果把每一个写入都做一个审计记录的话,信息会是海量的,审计日志会远远大于这个数据库大小了,多数情况下这是不经济的。所以我们缺省会把采集器来的自动数据的审计日志会是关闭的,只记录大家多数情况下更关心的人员的行为,就是一个操作员往里头做了怎样的操作,插入或者删除了哪些数据,这些缺省加以记录。当然了,如果特定场景需要的话,也可以把采集器的审计功能打开,所以做了这样的区分,更方便我们在真实场景中的灵活应用。
除此之外,我们也完成了灵活的审计日志输出,可以在本地存储,可以跨机器存储等等。右边这张图,可以看到也提供了可视化的审计的审阅,帮助用户快速的定位和查询审计相关信息。右边这张图就是我从 Workbench 的界面上截下来的,所以大家可以看到 Workbench 上可以看到很多很多有用的数据或者是元数据的信息,审计的信息、权限信息等等都可以看到。上面正好有一个图也可以看到,这里头也展示了我们双活的一些元信息,IP 地址等等。
除了审计日志功能,我们也提供了数据库的白名单功能。它实际上就是一个数据库级别的防火墙功能了,它会审阅哪些客户端可以来访问数据库,拒绝恶意的用户。我们也提供了白名单的配置修改功能,在图形界面上就可以做修改,而且可以及时的生效。通过这些功能,我们也可以让我们的操作员、管理员更加的方便,可以告别 SSH 了,直接在图形界面上完成所有这些功能。
04 TimechoDB Edge:端边云协同
除了上述这些企业版中的功能以外,我们还特别提供了 TimechoDB 的 Edge 版本,或者说是边缘版,提供了更好的边缘侧的功能,完成我们所谓的端边云的协同。大家也知道端边云协同是我们 TimechoDB 的一个特别大的卖点和亮点。
通常端边云,我们的工业数据库数据管理离不开这三个用户形态。通常在端侧,我们为数据生成相当于 zip 文件这样的一个用于提升数据的压缩和写入查询的性能的文件。边侧则提供比较丰富的时间查询引擎,包括增删改查、聚合、对齐、序列等等。云侧通常提供跟大数据分析系统的无缝集成,包括时序数据的处理、分析、机器学习。
我们的 IoTDB 横跨这三种形态,用统一的形式来为大家提供服务,跟中间这一列,大家可以看到,跟传统的形式不太一样。传统上面往往因为这两个端侧和云侧的机器的性能、各方面配置都不太一样,所以很难用同一个产品来覆盖这两者的需求。那么用户往往被迫要用上两套或者是更多套的系统,就导致在端侧收集到的数据,我们必须经过编码和压缩之后再传给云侧,云侧则需要做解码和解压缩。这样一份数据两次处理,既浪费了两边的计算资源,也浪费了很多的带宽资源。
通过 IoTDB 的 TsFile,我们这个是一个为端侧设备量身定制的一个时序数据库的 zip 文件,它本身提供非常高的写入和查询性能,也提供非常高的压缩比。通过一个统一的 TsFile 这样的一个文件格式的引入,我们就不再需要在端侧和云侧用两套系统,我们在端侧、云侧都是 TsFile。这样在端侧已经压缩好的 TsFile,我们可以直接传到云侧去,这样用非常高压缩的 TsFile 的传输也会大大的节省带宽资源,也节省了两边的解码和编码的计算资源,充分的利用起来我们现在通常都已经很强大的边侧的和端侧的计算资源和存储资源,帮助云侧分担一部分的计算功能。
这个是我们端边云协同的架构和想法,那么下面我们看一看我们具体的一些应用。
我们的 TimechoDB Edge 已经在很多场景和厂商这边得到了广泛的应用。首先我们跟博世力士乐公司,德国博世力士乐公司,工业领域的很多朋友可能比较熟悉,它是一个全球的传动和控制技术的龙头了,隶属于一个世界500强企业,是一个引擎冠军了。那么博世公司和 Timecho 公司近期达成了一个战略合作的一个协议,共同为工业物联网应用场景提供数据的管理和解决方案。
达成解决方案之后,于今年的 11 月初,我们在欧洲和世界工业自动化的盛会 SPS 2022 展会中,博世力士乐公司也邀请 Timecho 共同参展,为全球的用户介绍我们面向未来的数字化转型的方案。可以看见,左侧左下这几张图是我们跟博世公司签约的现场和博世网站上面的官宣。右上这几张图是我们在 SPS 2022 盛会上面拍的一些图片,包括我们跟他们共同展示我们的产品。以及包括右上角这个是,也跟博世公司的他们的合作伙伴,包括VMware、西门子等等的做了一些深入的交流和合作。
博世公司本身提供的是一个全新的自动化平台,ctrlX AUTOMATION,就是可以看到我 PPT 右上角的这些设备,本身是一些端侧的设备,它的性能我这有罗列,CPU 是一个 ARM 的等等,大致比一个树莓派的性能稍强。那在这样一个级别的硬件产品上面,TimechoDB Edge 可以得到顺滑的运行,帮助 ctrlX 读取它的实时数据,然后加以存储。那么通过引入 TimechoDB Edge,ctrlX 形成它的历史记忆,形成它的历史数据,从一个原本是一个很聪明的边缘侧的一个设备,变成了一个具有历史记忆的边缘侧的聪明设备。那么大家可以想象,从而就可以在上面搭出更加丰富得多的应用产品和数据分析功能。
实际上,博世公司之前找到 TimechoDB 之前,也考察了很多相关的竞品,它们基本上也会有这样那样的问题,比方说他们发现数据量大的时候会有崩溃的问题等等。直到他们找到了 TimechoDB Edge 版,那么经过测试才发现完全可以满足他们的全部的要求,并且在一个相对苛刻的环境上面可以顺畅高效的运行。
目前 TimechoDB 已经集成在博世公司的各个不同型号的 ctrlX CORE 的设备中,供客户来选用。同时因为边缘侧使用了 TimechoDB Edge,也可以和博世公司和其他公司的云侧的 IoTDB,形成一个非常好的互动和结合。
下面这个应用是我们跟国家电网的边缘侧设备做的一个集成。左上角这个图就是他们的一个边缘侧设备,这是一个比树莓派还要弱一点的一个边缘侧设备,它的硬件指标在右上角我也罗列了一下。可以看到即便在这样一个设备上面,我们仍然可以跑出每秒 21 万点的写入速度。通过集成到这个设备,也完成了和他们已经部署在云侧的,包括成都世代积家充电站和北京亦庄充电站的云侧的 IoTDB 的一个紧密结合。他们也是选用我们来代替他们之前的 SQLite 这个数据库,以获得更高的性能和更紧密的云侧集成。
下一个例子是我们跟中车四方的一个边缘侧的集成的合作。中车四方的这个设备用于汇集和管理车辆数据,进行数据的预处理、数据的存储、分析和发送。他们在这个设备上,目前要求要跑 6 个 50k 赫兹的高通量,也就是 30 万点每秒的写入。这个本身当然对我们来说不是问题,但他们同时还要求随时读取过去任意一秒的数据,在写入的同时要完成过去任意一秒的数据的读取,而且要求实时的读取不能超过一秒。
中车四方也找了很多竞品来做尝试,都失败了,尤其查询的压力还是非常大的。那么直到最后找到我们这边,工程师这边也是花了很多的力气做指标的优化和配置,最终我们还是能够完美的达成中车四方的要求。同时经过测试,CPU 和内存的占用也都不超过 30% 到 50%,空间占用也非常有效率,最终非常完美的完成了中车的测试要求和需求。
最后一个例子,我们给大家介绍一下我们在某卫星上的一个部署。在这个卫星上面,我们放了一个树莓派做一个中心的控制,我们跟卫星单位也合作,在树莓派上也安装了一个 IoTDB 系统。这个 IoTDB 系统会做整个系统的健康检查,供地面分析和监测,同时也给树莓派上的其他子系统提供基础的数据分析和存储服务功能。我们罗列了一下它的具体要求,CPU 使用率不能超过 10%,内存占用 1 - 2 GB 等等,最后也取得了很大的成功。左边这个我们产品的架构图,地面的形态、天上的形态等等,我们做的各种仿真和天上实际运行的状况,能够完全达成他们这个需求。
所以今天我的分享大概就是这些。在整个分享中,我跟大家先简要的介绍了 Timecho 公司,然后重点介绍了 Timecho 公司的主打产品 TimechoDB,包括它的整个全生命周期的数据管理功能,包括它的双活、监控等等的更多的功能。包括最后我们重点的介绍了我们 Timecho Edge 边缘侧产品,它的一些使用场景和取得的一些成绩。那么也感谢大家的收听,欢迎大家有兴趣的跟我们多做交流、沟通,欢迎大家都加入到我们这个团队中来,谢谢大家。
更多内容推荐:
• 了解 IoTDB 核心产品
• 回顾 IoTDB 2022 大会全内容