TDengine 介绍

TDengine 简介

TDengine 是一款高性能、分布式、支持 SQL 的时序数据库。而且除时序数据库功能外,它还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码,包括集群功能全部开源(开源协议,AGPL v3.0)。与其他时序数据数据库相比,TDengine 有以下特点:

  • 高性能:通过创新的存储引擎设计,无论是数据写入还是查询,TDengine 的性能比通用数据库快 10 倍以上,也远超其他时序数据库,而且存储空间也大为节省。

  • 分布式:通过原生分布式的设计,TDengine 提供了水平扩展的能力,只需要增加节点就能获得更强的数据处理能力,同时通过多副本机制保证了系统的高可用。

  • 支持 SQL:TDengine 采用 SQL 作为数据查询语言,减少学习和迁移成本,同时提供 SQL 扩展来处理时序数据特有的分析,而且支持方便灵活的 schemaless 数据写入。

  • All in One:将数据库、消息队列、缓存、流式计算等功能融合一起,应用无需再集成 Kafka/Redis/HBase/Spark 等软件,大幅降低应用开发和维护成本。

  • 零管理:安装、集群几秒搞定,无任何依赖,不用分库分表,系统运行状态监测能与 Grafana 或其他运维工具无缝集成。

  • 零学习成本:采用 SQL 查询语言,支持 Python, Java, C/C++, Go, Rust, Node.js 等多种编程语言,与 MySQL 相似,零学习成本。

  • 无缝集成:不用一行代码,即可与 Telegraf, Grafana, EMQX, Prometheus, StatsD, collectd, Matlab, R 等第三方工具无缝集成。

  • 互动 Console: 通过命令行 console,不用编程,执行 SQL 语句就能做即席查询、各种数据库的操作、管理以及集群的维护.

采用 TDengine,可将典型的物联网、车联网、工业互联网大数据平台的总拥有成本大幅降低。但需要指出的是,因充分利用了物联网时序数据的特点,它无法用来处理网络爬虫、微博、微信、电商、ERP、CRM 等通用型数据。

TDengine技术生态图

图 1. TDengine技术生态图

TDengine 总体适用场景

作为一个 IoT 大数据平台,TDengine 的典型适用场景是在 IoT 范畴,而且用户有一定的数据量。本文后续的介绍主要针对这个范畴里面的系统。范畴之外的系统,比如 CRM,ERP 等,不在本文讨论范围内。

数据源特点和需求

从数据源角度,设计人员可以从下面几个角度分析 TDengine 在目标应用系统里面的适用性。

数据源特点和需求 不适用 可能适用 非常适用 简单说明
总体数据量巨大 TDengine 在容量方面提供出色的水平扩展功能,并且具备匹配高压缩的存储结构,达到业界最优的存储效率。
数据输入速度偶尔或者持续巨大 TDengine 的性能大大超过同类产品,可以在同样的硬件环境下持续处理大量的输入数据,并且提供很容易在用户环境里面运行的性能评估工具。
数据源数目巨大 TDengine 设计中包含专门针对大量数据源的优化,包括数据的写入和查询,尤其适合高效处理海量(千万或者更多量级)的数据源。

系统架构要求

系统架构要求 不适用 可能适用 非常适用 简单说明
要求简单可靠的系统架构 TDengine 的系统架构非常简单可靠,自带消息队列,缓存,流式计算,监控等功能,无需集成额外的第三方产品。
要求容错和高可靠 TDengine 的集群功能,自动提供容错灾备等高可靠功能。
标准化规范 TDengine 使用标准的 SQL 语言提供主要功能,遵守标准化规范。

系统功能需求

系统功能需求 不适用 可能适用 非常适用 简单说明
要求完整的内置数据处理算法 TDengine 的实现了通用的数据处理算法,但是还没有做到妥善处理各行各业的所有要求,因此特殊类型的处理还需要应用层面处理。
需要大量的交叉查询处理 这种类型的处理更多应该用关系型数据系统处理,或者应该考虑 TDengine 和关系型数据系统配合实现系统功能。

系统性能需求

系统性能需求 不适用 可能适用 非常适用 简单说明
要求较大的总体处理能力 TDengine 的集群功能可以轻松地让多服务器配合达成处理能力的提升。
要求高速处理数据 TDengine 的专门为 IoT 优化的存储和数据处理的设计,一般可以让系统得到超出同类产品多倍数的处理速度提升。
要求快速处理小粒度数据 这方面 TDengine 性能可以完全对标关系型和 NoSQL 型数据处理系统。

系统维护需求

系统维护需求 不适用 可能适用 非常适用 简单说明
要求系统可靠运行 TDengine 的系统架构非常稳定可靠,日常维护也简单便捷,对维护人员的要求简洁明了,最大程度上杜绝人为错误和事故。
要求运维学习成本可控 同上。
要求市场有大量人才储备 TDengine 作为新一代产品,目前人才市场里面有经验的人员还有限。但是学习成本低,我们作为厂家也提供运维的培训和辅助服务。