共计 3162 个字符,预计需要花费 8 分钟才能阅读完成。
2022 年 8 月 13 日,TDengine 3.0 正式公布了!通过一年多的致力研发,咱们终于能够骄傲地发表这一音讯。
这是一次重磅降级,TDengine 3.0 是真正的云原生时序数据库(Time-Series Database,TSDB)。
咱们先来整体看一下 3.0 的几大亮点:
- 能够反对 10 亿个设施采集的数据、100 个节点
- 反对存储与计算拆散,引入计算节点,并重构了整个计算引擎
- 欠缺并优化了对音讯队列、流式计算和缓存的反对,引入事件驱动的流式计算
TDengine 面市以来,从 1.0 到 2.0,从外围性能开源到集群性能开源,失去了大量商业客户和社区用户的高度认可,寰球装置的 TDengine 运行实例数曾经靠近 14 万,每天有超过 1000 人次克隆代码,在寰球开发者中产生了肯定的影响力。日常有大量的社区开发者基于本人的业务需要,提出 issue,奉献性能,社区十分沉闷。
作为一款开源的时序数据库产品,TDengine 曾经广泛应用于物联网、工业互联网、车联网、金融、IT 运维监控等场景。目前曾经有大量的企业客户和社区用户将 TDengine 部署在其外围业务场景中。用户场景越多,TDengine 失去的用户需要和反馈越多,正是这些需要和反馈在推动着 TDengine 一直演进。
常常关注 TDengine 的用户应该都很相熟了,咱们曾经公布了上百篇用户案例,这都是企业客户和开源用户的第一手实践经验。有心的读者都会发现,在每篇用户案例的开端,用户也毫不讳言在应用 TDengine 过程中遇到的问题,更是提出了对 TDengine 的更多期待。这都是 TDengine 优化迭代的能源。
上面咱们具体看一下 TDengine 3.0 的外围性能。
1. 云原生
TDengine 3.0 能够充分利用云计算平台以及分布式系统的劣势。作为一款云原生,而不只是能在云上运行的时序数据库,TDengine 3.0 具备云原生数据库的几大特点:程度扩展性 (Scalability)、弹性(Elasticity)、韧性(Resiliency)、可观测性(Observability) 以及运维自动化(Automation)。咱们就联合 TDengine 的逻辑架构,顺次看看它是如何实现这几大特点的。
TDengine 的逻辑架构图
程度扩展性(Scalability)
TDengine 通过数据采集点和工夫两个维度对大数据进行切分,从而实现了程度扩大能力,既反对分片,也反对分区。通过将每个数据采集点的元数据分布在各个 vnode 里,而不是寄存在中心点,咱们解决了困扰时序数据库的高基数(High Cardinality)问题。TDengine 具备超强的程度扩大能力,为取得更多的数据处理能力,只须要退出更多的数据节点即可。通过测试,咱们能够验证,在 10 亿工夫线,100 个数据节点的状况下,整个 TDengine 性能还能失去很好的保障。
弹性(Elasticity)
作为一个云原生数据库,TDengine 3.0 反对 scale up / scale down。为反对存储的弹性,如果插入的延时曾经超过肯定阈值或者性能不够,TDengine 会将一个 vnode 拆分成两个,从而调配更多的系统资源给数据写入操作。另一方面,在可能保障延时与性能的状况下,TDengine 也能够把多个 vnode 合并成一个,以节俭系统资源。
为反对计算的弹性,TDengine 3.0 引入了计算节点 qnode。对于简略的查问,比方取得某张表的原始数据或卷曲数据(rollup data),对应的 vnode 将实现所有的操作,无需 qnode 的参加。但对于一个须要排序、分组或其余须要计算资源的操作,查问的执行过程中,一个或多个 qnode 将被调用。在具体的部署中,qnode 能够运行在容器里,它的启停齐全由 mnode 依据零碎负载状况决定。
通过引入 qnode,TDengine 3.0 成为一个现实的时序数据分析平台,包含实时数据分析和批剖析。
韧性(Resiliency)
TDengine 的韧性是通过其高牢靠与高可用设计来实现的。TDengine 采纳 Database 实现中传统的办法 WAL(Write Ahead Log) 来保证数据的高牢靠。TDengine 通过多正本以及 RAFT 一致性协定,保障 vnode 和 mnode 的高可用性。
可观测性(Observability)
TDengine 会采集各种指标来监测本身的运行是否失常,这些指标包含 CPU、内存、磁盘、流量、申请次数、延时等。咱们提供了 Grafana 的看板 TDinsight,以实现这些指标的可视化与报警。
TDengine 还有一个配套模块 taosKeeper,可能将采集的指标发送到其余监测工具(如 Prometheus),便于将对 TDengine 的监测集成到已有的可观测零碎。
运维自动化(Automation)
TDengine 能够用二进制包或 Docker 镜像进行装置,也反对通过 Kubernetes 来部署和治理集群。其集群的治理齐全能够通过脚本自动化进行,让经营和保护变得简略。
2. 极简的时序数据平台
相熟 TDengine 的用户,可能曾经应用过其间断查问、缓存和音讯队列等性能。在 3.0 中,咱们又从新设计并优化了相干性能。
特地是流式计算,除间断查问外,3.0 还反对事件驱动的流计算,而且采纳 SQL 语法,反对自定义函数,让流计算的学习老本简直为零。例如,咱们能够用如下语句创立流式计算,它会主动创立名为 avg_vol 的超级表,此流计算以一分钟为工夫窗口、30 秒为前向增量统计这些电表的均匀电压,并将来自 meters 表的数据的计算结果写入 avg_vol 表,不同 partition 的数据会别离创立子表并写入不同子表。
CREATE STREAM avg_vol_s INTO avg_vol AS
SELECT _wstartts, count(*), avg(voltage) FROM meters PARTITION BY tbname INTERVAL(1m) SLIDING(30s);
音讯队列方面,可指定各种过滤条件,利用能够仅仅订阅满足条件的数据,而且对外提供的 API 与 Kafka 相似,简略易用。
在时序数据处理平台的通用设计中,逻辑图个别如下所示:
而通过对缓存、流式计算、音讯队列的反对,采纳 TDengine 的时序数据处理系统,不再须要集成 Kafka、Redis、Spark 和 Flink 等软件,技术架构将大为简化,部署、经营保护老本将大为升高。逻辑构造能够间接简化为:
由此可见,TDengine 不只是一个时序数据库,还是一个极简的时序数据处理平台。
3. 便捷的数据分析能力
TDengine 3.0 从新设计了计算引擎,反对规范 SQL,反对嵌套查问,反对自定义函数,反对 Information Schema 零碎数据库;针对时序数据的解决进行扩大,提供累计求和、工夫加权均匀、挪动均匀、变化率、session/state 窗口等泛滥时序数据分析性能;通过标签疾速索引,通过分区、分片技术,通过计算节点的弹性伸缩,反对对海量时序数据的多维度的高效聚合剖析。
有了新的计算引擎的加持,特地是计算与存储的拆散的反对,TDengine 不仅能实时地解决数据的写入和查问,也能作为弱小的时序数据分析工具。
更多细节,能够参阅相干阐明:https://github.com/taosdata/T…。
借助 TDengine 3.0 的云原生能力,用户能够更不便地利用云平台的能力,简化部署和保护,进一步降本增效;极简的时序数据平台和弱小的剖析性能,也能帮忙用户简化业务架构、简化利用设计,升高零碎的保护老本,晋升解决效率。
架构降级,后人一步,赶快点击下载链接,感触 TDengine 3.0 带来的全新体验吧。
想理解更多 TDengine Database 的具体细节,欢送大家在 GitHub 上查看相干源代码。