自学内容网 自学内容网

TDengine 详解

TDengine是一款由涛思数据开发的高性能、分布式、云原生、极简的时序数据库(Time Series Database,TSDB),专为物联网、车联网、工业互联网、金融、IT运维等场景优化设计。以下是对TDengine的详细解析:

一、核心特性

1. 高性能:

  • TDengine是唯一一个解决了时序数据存储的高基数难题的时序数据库,支持上亿数据采集点,并在数据插入、查询和数据压缩上远胜其它时序数据库。
  • 针对物联网大数据的特点进行了优化,能够高效地处理每天产生的高达TB甚至PB级的数据量。

2. 分布式架构:

  • 作为一个分布式系统,TDengine可以在不同的节点上扩展,以处理大规模的数据集,这使得它在大数据环境下具有很好的伸缩性。
  • 拥有强大的水平扩展能力,能够支持10亿个设备、100台服务器节点。

3. 支持SQL查询:

  • TDengine支持标准SQL语言,用户可以使用熟悉的SQL语法来进行数据查询,提高了用户的使用便利性。
  • 同时,TDengine针对时序数据的处理进行了扩展,提供了累计求和、时间加权平均、移动平均、变化率、session/state窗口等众多时序数据分析功能。

4. 多种数据写入方式:

  • TDengine支持多种标准写入协议,包括InfluxDB Line协议、OpenTSDB Telnet协议和OpenTSDB JSON协议,这使得它可以方便地与其他系统进行集成。
  • 支持无模式写入,为数据的灵活性提供了便利,尤其是在快速变化的业务环境中。

5. 内建系统功能:

  • TDengine带有内建的缓存、流式计算和数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本。
  • 支持消息队列,可指定各种过滤条件,应用可以仅仅订阅满足条件的数据,而且对外提供的API与Kafka类似,无学习成本。
  • 支持流式计算,除连续查询外,也支持事件驱动的流计算,采用SQL语法,支持自定义函数,让流计算的学习成本几乎为零。
  • 支持缓存,每条时间线的最新数据全部缓存,通过SQL函数就可快速获取,无需再集成Redis等缓存软件。

6. 云原生:

  • 通过原生的分布式设计、数据分片和分区、存算分离、RAFT协议、Kubernetes部署和完整的可观测性,TDengine是一款云原生时序数据库,并且能够部署在公有云、私有云和混合云上。

7. 简单易用:

  • 对系统管理员来说,TDengine大幅降低了管理和维护的代价。
  • 对开发者来说,TDengine提供了简单的接口、极简的解决方案和与第三方工具的无缝集成。
  • 对数据分析专家来说,TDengine提供了便捷的数据访问能力。

8. 数据分析能力:

  • 通过超级表、存储计算分离、分区分片、预计算和其他技术,TDengine能够高效地浏览、格式化和访问数据。
  • 重新设计了计算引擎,支持嵌套查询,支持自定义函数,支持Information Schema系统数据库。

9. 核心开源:

  • TDengine的核心代码包括集群功能全部在开源协议下公开。
  • 全球拥有超过140k个运行实例,GitHub Star 20k,且拥有一个活跃的开发者社区。

二、主要功能

1. 数据汇聚:

  • 消除数据孤岛,为决策者提供更好的宏观视图。
  • TDengine能将来自各种类型数据源(包括PI System、MQTT、OPC等)的工业数据汇聚到一起,并可以进行数据的清洗、加工、转换工作,以保证入库数据的质量,便于集中监测、进行总体数据分析。

2. 数据存储:

  • 基于开源的时序数据库TDengineOSS,提供高性能、分布式的数据存储和基于SQL的查询服务,并有所增强。
  • TSBS基准测试结果显示,TDengine的写入、查询、存储性能均远超InfluxDB、TimescaleDB等时序数据库,可将典型的物联网、车联网、工业互联网大数据平台的总拥有成本降低至少50%以上。

3. 数据分析:

  • 为工业数据提供了一个开放的解决方案,使用户能够利用现代的数据分析工具进一步挖掘数据的价值。
  • 支持公有云和私有化部署,进而实现更为开放、低成本、并具水平扩展能力的实时分析。
  • 通过SQL和时序数据扩展,提供内建的分析能力,并支持实时流式计算。
  • 能与众多第三方批分析、实时分析、报表工具、AI/ML工具、可视化工具无缝集成,如Grafana、帆软、永洪、PowerBI等。

4. 数据分发:

  • 通过view的定义以及权限设置,TDengine既支持将一个数据库完全开放,设置读/写权限;也支持通过数据订阅方式,安全、灵活地将库、超级表、一组或一张表、或聚合处理后的数据分享出去,实时发送给另外一个应用。
  • 像分享在线文档一样简单,只需一个电子邮件地址即可共享数据,通过对用户或用户组的精细访问控制来实现对数据的保护,包括可配置到期时间、数据加密和安全访问令牌。

5. 其他功能:

  • 支持10亿个时间线,支持100个以上节点,整个集群的启动速度可以控制在一分钟以内,完全解决时序数据业内的High Cardinality的问题。
  • 支持多副本,采用了RAFT一致性协议,保证系统的高可用。另外通过WAL来保证数据存储的高可靠。
  • 支持容器和Kubernetes部署,具备完善的可观测性(Observability),让系统的运营维护变得轻松简单。
  • 支持边缘协同,将存储在边缘侧TDengine实例的数据异步实时复制到云端。
  • 提供数据库加密、链接加密传输、行为审计功能。
  • 提供data explorer,便于查看数据,也可执行SQL查询。
  • 提供License管理、用户行为审计。
  • 各类示例代码、连接器的连接信息都已自动生成,方便使用。
  • 支持各类国产操作系统和CPU。

三、适用场景

TDengine的典型适用场景包括但不限于IoT、工业互联网、车联网、IT运维、能源、金融证券等领域。需要指出的是,TDengine是针对时序数据场景设计的专用数据库和专用大数据处理工具,因其充分利用了时序大数据的特点,它无法用来处理网络爬虫、微博、微信、电商、ERP、CRM等通用型数据。

四、优缺点

优点:

  1. 采用高度优化的存储结构和查询算法,能够实现高速的数据写入和查询。
  2. 采用高效的数据压缩算法,能够大幅减少数据存储的空间占用,显著降低存储成本。
  3. 支持存储引擎和查询引擎的分离部署,允许通过增加存储节点和查询节点来实现水平扩展。
  4. 专门针对时间序列数据做了优化,支持时间窗口查询、基于时间的采样和聚合等功能,使得TDengine在处理时间序列数据分析时更加灵活和高效。
  5. 提供数据的持久化存储和备份功能,确保数据的安全性和可靠性。

缺点:

  1. 相比一般数据库,其处理非时序数据的灵活性可能较弱,在处理非时序数据时,可能需要结合其他类型的数据库来完成。
  2. 作为相对较新的开源项目,TDengine的社区生态仍在发展中,与一些成熟的数据库相比,其学习资源和社区支持可能较少,增加了学习和使用的成本。
  3. 目前TDengine主要支持Linux平台,对于其他平台(如Windows)的支持尚不完善,可能会限制其在某些特定环境下的应用。

综上所述,TDengine作为一款高性能、分布式、云原生、极简的时序数据库,具有显著的优势和广泛的应用前景。然而,也需要注意其存在的局限性,并结合具体的应用场景和需求进行选择。


原文地址:https://blog.csdn.net/mqiqe/article/details/144287370

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!