时序大数据的平台
TDengine文档
TDengine是一个高效的存储、查询、分析时序大数据的平台,专为物联网、车联网、工业互联网、运维监测等优化而设计。您可以像使用关系型数据库MySQL一样来使用它,但建议您在使用前仔细阅读一遍下面的文档,特别是数据模型与数据建模。除本文档之外,欢迎下载产品白皮书。如需查阅TDengine 1.6 文档,请点击这里访问。
TDengine介绍
立即开始
- 快捷安装:可通过源码、安装包或docker安装,三秒钟搞定
- 轻松启动:使用systemctl 启停TDengine
- 命令行程序TAOS:访问TDengine的简便方式
- 极速体验:运行示例程序,快速体验高效的数据插入、查询
整体架构
- 数据模型:关系型数据库模型,但要求每个采集点单独建表
- 集群与基本逻辑单元:吸取NoSQL优点,支持水平扩展,支持高可靠
- 存储模型与数据分区、分片:标签数据与时序数据完全分离,按vnode和时间两个维度对数据切分
- 数据写入与复制流程:先写入WAL、之后写入缓存,再给应用确认,支持多副本
- 缓存与持久化:最新数据缓存在内存中,但落盘时采用列式存储、超高压缩比
- 数据查询:支持各种函数、时间轴聚合、插值、多表聚合
数据建模
高效写入数据
- SQL写入:使用SQL insert命令向一张或多张表写入单条或多条记录
- Prometheus写入:配置Prometheus, 不用任何代码,将数据直接写入
- Telegraf写入:配置Telegraf, 不用任何代码,将采集数据直接写入
- EMQ X Broker:配置EMQ X,不用任何代码,就可将MQTT数据直接写入
- HiveMQ Broker:配置HiveMQ,不用任何代码,就可将MQTT数据直接写入
高效查询数据
高级功能
- 连续查询(Continuous Query):基于滑动窗口,定时自动的对数据流进行查询计算
- 数据订阅(Publisher/Subscriber):象典型的消息队列,应用可订阅接收到的最新数据
- 缓存(Cache):每个设备最新的数据都会缓存在内存中,可快速获取
- 报警监测:根据配置规则,自动监测超限行为数据,并主动推送
连接器
- C/C++ Connector:通过libtaos客户端的库,连接TDengine服务器的主要方法
- Java Connector(JDBC):通过标准的JDBC API,给Java应用提供到TDengine的连接
- Python Connector:给Python应用提供一个连接TDengine服务器的驱动
- RESTful Connector:提供一最简单的连接TDengine服务器的方式
- Go Connector:给Go应用提供一个连接TDengine服务器的驱动
- Node.js Connector:给node应用提供一个连接TDengine服务器的驱动
- C# Connector:给C#应用提供一个连接TDengine服务器的驱动
- Windows客户端:自行编译windows客户端,Windows环境的各种连接器都需要它
与其他工具的连接
- Grafana:获取并可视化保存在TDengine的数据
- Matlab:通过配置Matlab的JDBC数据源访问保存在TDengine的数据
- R:通过配置R的JDBC数据源访问保存在TDengine的数据
- IDEA Database:通过IDEA 数据库管理工具可视化使用 TDengine
TDengine集群的安装、管理
- 准备工作:部署环境前的几点注意事项
- 创建第一个节点:与快捷安装完全一样,非常简单
- 创建后续节点:配置新节点的taos.cfg, 在现有集群添加新的节点
- 节点管理:增加、删除、查看集群的节点
- vnode的高可用性:通过多副本的机制来提供vnode的高可用性
- Mnode的管理:系统自动创建、无需任何人工干预
- 负载均衡:一旦节点个数或负载有变化,自动进行
- 节点离线处理:节点离线超过一定时长,将从集群中剔除
- Arbitrator:对于偶数个副本的情形,使用它可以防止split brain
TDengine的运营和维护
- 容量规划:根据场景,估算硬件资源
- 容错和灾备:设置正确的WAL和数据副本数
- 系统配置:端口,缓存大小,文件块大小和其他系统配置
- 用户管理:添加、删除TDengine用户,修改用户密码
- 数据导入:可按脚本文件导入,也可按数据文件导入
- 数据导出:从shell按表导出,也可用taosdump工具做各种导出
- 系统监控:检查系统现有的连接、查询、流式计算,日志和事件等
- 文件目录结构:TDengine数据文件、配置文件等所在目录
- 参数限制与保留关键字:TDengine的参数限制与保留关键字列表
TAOS SQL
- 支持的数据类型:支持时间戳、整型、浮点型、布尔型、字符型等多种数据类型
- 数据库管理:添加、删除、查看数据库
- 表管理:添加、删除、查看、修改表
- 超级表管理:添加、删除、查看、修改超级表
- 标签管理:增加、删除、修改标签
- 数据写入:支持单表单条、多条、多表多条写入,支持历史数据写入
- 数据查询:支持时间段、值过滤、排序、查询结果手动分页等
- SQL函数:支持各种聚合函数、选择函数、计算函数,如avg, min, diff等
- 时间维度聚合:将表中数据按照时间段进行切割后聚合,降维处理
- 边界限制:库、表、SQL等边界限制条件
- 错误码:TDengine 2.0 错误码以及对应的十进制码
TDengine的技术设计
常用工具
TDengine与其他数据库的对比测试
- 用InfluxDB开源的性能测试工具对比InfluxDB和TDengine
- TDengine与OpenTSDB对比测试
- TDengine与Cassandra对比测试
- TDengine与InfluxDB对比测试
- TDengine与InfluxDB、OpenTSDB、Cassandra、MySQL、ClickHouse等数据库的对比测试报告