TDengine数据库概述
日期:2023年03月08日     新闻分类: 技术中心      浏览:2137次
内容导读:TDengine数据库概述

TDengine 是一款开源、云原生的时序数据库,专为物联网、工业互联网、金融、IT 运维监控等场景设计并优化。它能让大量设备、数据采集器每天产生的高达 TB 甚至 PB 级的数据得到高效实时的处理,对业务的运行状态进行实时的监测、预警,从大数据中挖掘出商业价值。


一、高性能的时序数据库

通过充分利用时序大数据的特点,TDengine团队设计了新颖的存储引擎,大幅提升了数据的写入和查询速度,同时也大幅提高了数据压缩率。与通用数据库相比,性能好至少十倍以上,而存储空间不到其1/5,与其他时序数据库相比,性能也是远超。与流行的时序数据库 InfluxDB 相比,完全采用 InfluxDB 自身提供的测试框架、数据集和测试场景写入速度至少是2倍以上,在设备数量超过1000以后,写入速度是5.2倍。对于查询场景,极个别的与InfluxDB速度持平,绝大部分都是几倍的速度,有的甚至高达40倍。数据压缩上,TDengine 也表现更好,存储空间不到 InfluxDB 的 70%。


二、极简的时序数据处理平台

时序数据库(Time Series Data, TSDB)是一个专门为时序数据优化设计的数据库,用于以高效的方式存储和分析时序数据。但是时序数据处理需要的不仅仅是存储和分析。在典型的时序数据处理平台中,TSDB 总是与流处理、缓存、数据订阅和其他工具集成在一起。这使得系统设计复杂且难以维护。此外,它还需要消耗更多的计算和存储资源。

为了降低系统设计复杂度和运行成本,TDengine 充分利用时间序列数据的特点,构建了自己的缓存、流计算和数据订阅功能。它不仅提供了一种高效的时间序列数据存储和分析方式,还为时间序列数据处理提供了一种极简的解决方案(Simplified Solution for Time Series Data)。


三、云原生时序数据库

云原生数据库 (Cloud Native Data) 是指充分利用了云计算平台以及分布式系统的优势而设计的数据库。云原生数据库提供了按照实际使用资源量来计费的能力,以降低运营成本。此外,它提供了快速开发原型、研发、测试以及部署新的应用的能力,可以大大缩短新的应用从设计开发到进入市场的时间。

作为一个云原生,而不只是能在云上运行的时序数据库(Time Series Data),TDengine 具备云原生数据库的几大特点:水平扩展性(Scalability)、弹性(Elasticity)、韧性(Resiliency)、可观测性(Observability)以及运维自动化(Automation)。


四、开源的时序数据库

定位于为 IoT、IIoT 等场景专门打造的时序数据库(Time Series Data, TSDB),TDengine 的研发始于 2016 年 12 月。经过 2 年多的研发后,TDengine 团队在 2019 年 7 月将单机版开源,2020 年 8 月又将集群版开源。TDengine 的核心服务器代码 taosd 采用 AGPL 开源协议,但为便于与第三方工具集成,taosAdapter 以及多个连接器都采用 MIT 开源协议。没有选择 Apache 协议,而采用 AGPL 协议的唯一目的是阻止云厂商免费使用开源版本。

TDengine 项目十分活跃,从 2019 年开源到 2022 年 8 月 1 日,Pull Request 总次数已经达到 12.6k,commit 次数已经超过 69k。2022 年 1 月 1 日至 2022 年 8 月 1 日,Pull Request 数量超过 5.6k,代码 commit 次数超过 15.8k。目前 TDengine 的代码除了自己的研发团队外,外部的代码贡献者已经超过 100 人。到目前为止,TDengine 项目在 GitHub 上总共收获了 19.5k star,全球安装实例数已经超过 157.1k,用户遍布全球五十多个国家和地区。

TDengine 在 2019 年开源后,很快发行了 1.6 版,2020 年 8 月发行了 2.0 版,2022 年 8 月发行了 3.0 版。相对于 2.x 版,3.0 解决了业内的 High Cardinality 问题,能支持 10 亿条以上的时间线,100 个节点以上的集群。它在分布式设计的基础上,实现了计算和存储分离,让 TDengine 从 3.0 起成为了一个云原生时序数据库(Cloud Native Time-Series Data)。而且 3.0 将流计算、数据订阅功能完全重构,极大地提高了效率,让 TDengine 为时序数据的处理提供了一个极简的平台。同时,TDengine 3.0 重构了查询计算引擎,对 SQL 提供了更多支持,让很多复杂查询得以进行。


五、强大而又简单易用的数据分析能力

对于数据分析师来说,花费大量时间处理数据并不罕见。因为关系型数据库可以提供复杂的分析能力,一种方法便是将时间序列数据存入关系型数据库进行分析。直接将实时数据写入关系数据库存在重大的写入性能瓶颈,因此往往先将时序数据写入时序数据库(Time Series Data, TSDB),然后从时序数据库批量导出数据,格式化并转换数据后,将其加载到关系数据库或数据仓库中进行分析。这种解决方案完全可以工作,但复杂且成本高昂。

另外一种方法就是使用支持 SQL 查询语言的时序数据库。SQL 是一种用于选择、过滤和将数据连接在一起进行数据分析的强大工具。TDengine 是支持 SQL 的时序数据库,对于数据分析师而言,使用 TDengine 就像在使用一个关系型数据库。而且通过超级表、存储和计算分离、数据按时间分区、预计算等多种手段,TDengine 提供了强大而又简单易用的分析能力。具体而言,TDengine 的分析能力具有以下显著特点:

1、多个数据采集点之间的高效聚合:TDengine 针对时序数据的特点,提出创新的超级表概念,将时序数据与标签数据分离存储。无需 JOIN,只需要指定超级表的标签过滤条件,就可将同类型的数据采集点进行高效的聚合操作,这使得组织和查找数据更加简单。此外,TDengine 允许向每个数据采集点添加多达 128 个标签,也支持在以后删除和更新这些标签。TDengine 提供了一种将数据切割成多维立方体以进行多维分析的强大方法。

2、计算存储分离:从 3.0 起,TDengine 支持存算分离,系统可以根据需要,启动一个或多个计算节点,增加计算资源,加快复杂查询的速度,减小 Latency。对于云平台,计算节点可以是一个容器,可以快速地启动或停止,计算存储分离将充分利用云平台的弹性计算资源。

3、历史与实时数据的分析完全统一:TDengine 按时间段对数据自动进行分区,即使是 10 年的数据,也无需分库分表,不存在档案数据一说。为降低存储成本,按照数据的新老程度,实行多级存储,但对用户而言是完全透明的。无论是查询最新数据还是 10 年前的数据,只是查询的起止时间不同。

4、时序数据分析的特有功能:TDengine 在标准 SQL 的基础上,针对时序数据的处理进行扩展,提供累计求和、时间加权平均、移动平均、变化率、时间窗口,session 窗口、state 窗口、插值等众多时序数据分析功能。通过时间窗口和插值,可以将不同数据采集点的数据按固定时间间隔将数据的时间戳对齐,便于后续的进一步分析。可以参考 SQL手册了解更多信息。

5、实时数据分析:TDengine 既提供了时间驱动的流式计算(连续查询),也提供了事件驱动的流式计算。不仅可以对单个数据采集点生成的数据流进行流式计算,也可以对多个采集点的数据流聚合后进行流式计算。对自定义函数的支持更是让流计算能方便地提供对数据的前置处理、转换或任何其他复杂计算。关于流式计算,请看用户文档流式计算。

6、支持Python:不仅提供 Python 连接器,还支持 Pandas 及 data ,让喜爱 Python 的数据分析师可以很方便地利用各种 Python 库做时序数据分析。

7、其他便捷的数据访问、分析手段:利用 TDengine 提供的命令行程序,可以在终端执行各种即席查询、或者导入导出数据。提供 R 与 Matlab 以及多种编程语言的连接器,支持与 Grafana、Google Data Studio 的无缝集成。

在一般的场景下,TDengine 可以作为时序数据仓库(Time-Series Data Warehouse) 使用,不再需要将时序数据导入到专门的数据仓库或数据湖进行处理分析,数据平台的成本将大幅降低。


六、简单易用的时序数据库

TDengine 作为一款时序数据库(Time Series Data),为时序数据的处理提供了一强大而又简单易用的平台。一个数据采集点一张表、超级表和标签的核心设计使得写入和查询的性能极大提升,而且让组织和查找数据变得更加简单。对于数据库管理员来说,TDengine 显著减少了系统部署维护和管理数据的工作量。对于开发人员来说,TDengine 提供了简单的接口、极简的解决方案,并支持与众多第三方工具的无缝集成。对于数据用户说,TDengine 提供了便利的获取数据的方式。

轻松管理

1、部署 – TDengine 的标准安装包才 8 MB,而且没有任何依赖,从下载、安装到运行,仅需几秒钟。集群的管理都是通过简单的 SQL 语句进行,并支持容器和 Kubernetes 部署。更多信息请参考用户文档部署。

2、监测 – TDengine 提供了 Grafana 插件 TDinsight。您可通过可视化看板了解系统的各种状态和监测指标,并设置报警。了解更多,请看用户文档 TDinsight。

3、数据复制:TDengine 企业版提供了一个强大的工具 taosX,它允许将数据库、超级表或子表的数据从一个集群复制到另一个集群,或保存到一个文件。taosX 能够将任何边缘、中心或云端集群的数据复制或同步到任何其他边缘、中心或云端集群,以便轻松地将数据保存在用户希望的地方。

易于开发

1、连接器 – 可以使用 C/C++、Java、Python、Go、Node.js、C# 和 Rust 的连接器以及示例代码来构建自己的应用程序。更多信息请查看用户文档连接器。

2、SQL支持 – 采用标准 SQL,没有学习成本,可以使用 SQL 插入、查询数据以及管理集群。了解更多,请看SQL手册。

3、无缝集成 – 无需一行代码,TDengine 就可以与 Kafka、Telegraf、Grafana、Google Data Studio、EMQ X、Prometheus、StatsD 和 Collectd 等众多第三方工具集成。了解更多,请查看用户文档第三方工具。

4、极简的时序数据处理平台 – TDengine 具有内置的缓存、流计算和数据订阅功能,为时间序列数据处理提供了极简的解决方案,不再需要 Kafka、Redis、Spark、F 或其他类似工具,可以大幅降低系统设计的复杂度和运营成本。了解更多,请查看用户文档开发指南。

轻松获取数据

1、交互式控制台 – TDengine 命令行程序(CLI) 让用户可以直接从 bash 或终端控制台运行 SQL,与运行的数据库系统或 TDengine 云服务交互,执行各种即席查询,导入导出数据等。了解更多,请查看用户手册 TDengine CLI。

2、与分析工具集成 – 使用 Python、R 和 Matlab 的连接器,参考示例代码,将数据导出到这些更专业的工具进行分析。了解更多,请查看用户文档连接器。

3、可视化 – 支持 Grafana 与 Google Data Studio 集成,不需要任何代码,即可创建自己的数据看板。


本文参考:https://www.taosdata.com

版权所有: 山西科达自控股份有限公司 备案号:晋ICP备09004627号-2   

邮箱

keda@sxkeda.com

电话

400-0351-150

微信

专属
客服

留言

右侧导航