一、TDengine 简介
1.1 简介
TDengine是一款专为物联网、工业互联网、车联网、IT运维等场景设计的高性能、分布式时序数据库(主要是开源)。它不仅能高效存储和查询时间序列数据,还集成了流式计算、数据订阅等功能,致力于为海量时序数据处理提供一套极简的解决方案
1.2 功能点
| 功能点 | 关键能力 | 亮点 / 说明 |
|---|---|---|
| 1. 高效写入与存储 (支持SQL) | 支持SQL及多种协议写入;采用列式存储和高压缩算法。支持标准INSERT,单条/批量写入,自动建表,CSV文件导入,多协议写入。 |
应对高频数据写入压力,大幅降低存储成本(官方称可比通用方案降低90%以上)。写入即建模,对时序场景高度优化。 |
| 2. 查询支持 | 完整标准SQL语法,丰富时序函数(降采样、插值),多种窗口聚合。提供时间加权平均等时序函数。 | 支持时间戳乱序插入,查询与通用数据库无差异。 |
| 3. 缓存 | 内置写缓存、读缓存、元数据缓存。 | 替代外部缓存(如Redis),优化最新数据访问。 |
| 4. 流式计算 | 类SQL定义流,窗口触发,结果写入新表或对外通知。 | 3.3.7.0版本重构,能力更强。 |
| 5. 数据订阅 | 提供类Kafka的消费组模型,可订阅库、超级表或任意查询结果。 | 可替代独立消息队列,简化架构。 |
| 6. 可视化 | 官方支持Grafana 插件,与Looker Studio (Google) 等BI工具集成。 | 生态完善,开箱即用。 |
| 7. 集群 | 原生分布式设计,支持水平扩展、高可用、负载均衡。 | 轻松应对数据量增长,保障系统高可用性,适配现代云环境。 企业版功能更强大(如数据挂载)。 |
| 8. 支持编程 | 支持C/C++, Java, Python, Go, Rust, Node.js, C# 等主流语言连接器。 | 提供原生连接 、REST API 、WebSocket多种连接方式。 |
二、概念
2.1 核心解读
| 概念 | 对应电表示例 | 本质与作用 | 在TDengine中的体现 |
|---|---|---|---|
| 采集点 | 每一个独立的电表,如"幸福小区1栋101室电表"。 | 数据产生的源头或实体。 | 对应一张子表。 |
| 采集量 | 电表测量的具体数值 ,如电压、电流、有功功率。 |
随时间变化的监测指标(数值型)。 | 子表中的数据列(非TAG列)。 |
| 标签 | 描述电表的静态属性 ,如所属城市、电表型号、相位。 |
用于分类、筛选设备的元数据(类型多样)。 | 子表中的标签列(TAG)。在超级表中定义。 |
| 表 | 存储某个电表所有时序数据的容器。 | 数据存储的基本单位。 | 分为超级表 (模板)和子表(实例)。 |
| 超级表 | 定义所有智能电表的统一数据模型。 | 子表的模板,定义了表结构(采集量+标签)。 | 通过CREATE STABLE创建。是查询和管理的关键入口。 |
| 子表 | "幸福小区1栋101室电表"独有的数据表。 | 具体采集点的数据表,结构继承自超级表。 | 通过CREATE TABLE USING自动创建。一张子表对应一个采集点。 |
至于为什么是电表举例 这官方专属解释,这都不重要。
三、安装
3.1 TDengine服务端安装包
官方文档: https://docs.taosdata.com/3.3.8/get-started/package/
-
在TDengine中,服务端安装包通常包含taosd(服务端进程)、taosadapter(适配器)、taos(命令行客户端)等组件。
-
客户端安装包通常只包含taos(命令行客户端)和相关的驱动、连接库等。
-
注意:在Windows上,TDengine的服务端和客户端可以安装在同一台机器上,但通常在生产环境中,服务端会安装在Linux服务器上。Windows版本的服务端主要用于开发
3.2 关于TDengine配置文件
以Windows举例安装TDengine 3.3.8.8,以下是关于配置文件 taos.cfg 的核心信息和关键配置项说明。
3.2.1 配置文件的位置与创建
-
默认位置 :通常位于TDengine的安装目录下,例如
C:\TDengine\cfg\taos.cfg。 -
首次使用 :安装后,该目录下可能没有 这个文件。当你第一次 通过客户端 (
taos.exe) 连接服务端,或者启动taosd服务时,程序会自动生成 一个包含默认值的taos.cfg文件。 -
手动创建 :你也可以根据需要,自己在该目录下新建一个文本文件,并命名为
taos.cfg,然后填入所需的配置参数。
3.2.2 常用核心配置项说明
关于单机或初步集群部署最重要的几项配置。
| 配置项 | 默认值 | 说明与建议 |
|---|---|---|
| firstEp | localhost:6030 |
最重要的参数之一 。客户端或节点启动时连接的第一个端点(End Point)。 • 单机版 :保持默认即可。 • 集群版 :必须设置为集群中第一个启动的 那个节点的 fqdn:port。 |
| fqdn | 本机主机名 | 另一个关键参数 。本节点对外提供服务的完全限定域名。集群中每个节点必须唯一。 • 单机版 :可保持默认或设为 localhost。 • 集群版 :必须 设置为该节点能被集群内其他机器通过网络访问到的地址(IP或域名)。 |
| serverPort | 6030 |
taosd 服务的监听端口。如无冲突,无需修改。 |
| dataDir | (安装目录下的 data) |
数据文件存储路径 。强烈建议设置为一个空间充足、性能较好 的独立磁盘分区路径,如 D:\TDengineData。 |
| logDir | (安装目录下的 log) |
日志文件存储路径。建议设置,便于排查问题。 |
| locale | 系统自动检测 | 系统区域/语言设置 。有时与时间格式、排序规则有关。中文Windows通常为 zh_CN 或 en_US.UTF-8。保持默认通常无问题。 |
| charset | 系统自动检测 | 字符集编码 。默认 UTF-8。务必确认与应用系统和客户端连接字符串的编码一致,防止乱码。 |
| timezone | 系统自动检测 | 时区设置 。客户端连接时也可指定。对于跨国应用,建议在配置文件中统一设置为 UTC 时区,避免时区混乱。 |
3.2.3 配置生效与检查
-
修改生效 :对
taos.cfg的绝大多数修改,都需要重启taosd服务才能生效。 -
检查配置 :启动服务并连接后,可以在
taos客户端中执行SHOW DNODES;命令,查看各个节点的end_point(即fqdn:serverPort) 等信息,以确认配置是否正确加载。
3.3 TDengine启动/停止
3.3.1 🚀 启动TDengine服务
你可以根据需要使用以下任何一种方法启动服务:
| 启动方法 | 具体命令/操作 | 适用场景与说明 |
|---|---|---|
| 1. 使用启动脚本(推荐) | 以管理员身份 打开命令提示符(CMD),执行: C:\TDengine\start-all.bat |
最简单 。此脚本会自动启动所有必需的服务,包括 taosd 和 taosAdapter。 |
| 2. 使用系统服务命令 | 以管理员身份 打开CMD,依次执行: sc start taosd sc start taosadapter |
标准的服务管理方式,适合在脚本中调用。 |
| 3. 直接运行可执行文件 | 以管理员身份 打开CMD,进入安装目录执行: taosd.exe taosadapter.exe |
启动后命令行窗口会阻塞,关闭窗口即停止服务。通常用于临时测试或排查问题。 |
注:首次启动前,请确保已完成
taos.cfg配置(例如dataDir,logDir等路径),否则服务可能无法正常启动。
3.3.2 ⏹️ 停止TDengine服务
停止服务也有对应的方法:
| 停止方法 | 具体命令/操作 | 说明 |
|---|---|---|
| 1. 使用系统服务命令(推荐) | 以管理员身份 打开CMD,依次执行: sc stop taosadapter sc stop taosd |
标准的服务停止方式。sc stop命令会等待服务完成必要的清理工作后优雅停止。 |
| 2. 通过任务管理器 | 打开任务管理器,在"进程"或"服务"选项卡中找到 taosd.exe 和 taosadapter.exe,结束任务。 |
在前两种方法失效时强制结束进程,不推荐常规使用。 |
3.3.3 🔍 验证服务状态
启动后,可以通过以下命令验证服务是否正常运行:
java
sc query taosd
sc query taosadapter
如果状态显示为 RUNNING,即表示服务启动成功。
3.3.4 💡 重要提醒
-
管理员权限:所有启动/停止操作都需要在管理员身份运行的命令提示符(CMD)或PowerShell中进行。
-
客户端连接 :服务启动后,你可以在CMD中运行
C:\TDengine\taos.exe来启动TDengine命令行客户端(CLI)并连接数据库。 -
错误:如果在启动过程中遇到错误,可以检查 C:\TDengine\log 目录下的日志文件(如 taosdlog.0),这通常是定位问题的关键。
3.4 TDengine图形化管理工具
注意:TDengine 3.3.8 企业版自带一个名为 taos-explorer 的可视化图形管理工具,它已经包含在您之前下载的安装包中。(如果你是其他版本,可能(安装包可能不自带视图)需要另外下载一个可视化工具)
启动服务后访问**:**http://127.0.0.1:6060/#/login TDengine 用户名(通常是 root)和密码(默认是 taosdata)登录。
重要概念**(区分相关服务,以下是它们的核心区别):**
| 服务/端口 | 核心功能 | 访问方式 | 备注 |
|---|---|---|---|
taos-explorer (端口 6060) |
可视化图形管理工具。提供数据库、表的可视化管理,数据浏览,监控仪表盘等。 | 通过 Web 浏览器 访问。 | |
taosAdapter (端口 6041) |
REST API 网关。提供 HTTP 接口,供编程语言(如 Python、Java)或其他工具(如 Grafana)连接 TDengine。 | 通过编程调用 HTTP 请求 访问。 | |
taosd (端口 6030) |
数据库核心引擎。处理所有 SQL 查询和数据存储。 | 通过 TDengine 原生协议,由客户端(如 taos.exe)连接。 |
四、TDengine账号密码修改
要修改TDengine可视化界面的登录密码,实际上需要修改的是TDengine数据库本身的用户密码。所有界面(如你访问的taos-explorer)都使用这个统一的数据库账户进行认证。
4.1 修改密码的核心步骤
核心操作是通过命令行客户端连接到数据库,然后使用SQL命令修改密码。
第一步:连接数据库
打开命令行,使用以下任一方式登录,具体取决于你是否已设置过密码。
| 连接方式 | 命令 (在CMD中执行) | 适用场景 |
|---|---|---|
| 使用默认密码连接 | C:\TDengine\taos.exe -h 127.0.0.1 -P 6041 -u root -ptaosdata |
初次登录或未改过密码时。 |
| 使用已设置的密码连接 | C:\TDengine\taos.exe -h 127.0.0.1 -P 6041 -u root -p你的密码 |
已经修改过默认密码后。 |
说明:
-
-h 127.0.0.1 -P 6041指定通过 REST 接口 (taosAdapter) 连接,这是最通用的方式。 -
如果连接成功,命令行提示符会变为
taos>。
第二步:执行修改密码命令
在 taos> 提示符下,执行以下SQL命令(将 new_strong_password 替换为你的新密码):
sql
ALTER USER root PASS 'new_strong_password';
看到 Query OK 的提示,即表示密码修改成功。
4.2 关于密码要求
-
根据官方文档,密码长度需为 8 到 255 个字节。
-
密码至少需包含大写字母、小写字母、数字、特殊字符中的三类。
-
若想使用简单密码,可在修改前运行
ALTER ALL DNODES 'EnableStrongPassword' '0';来关闭强密码校验(企业版 v3.3.6.0 以上支持)
时序数据库(TDengine TSDB)基本SQL使用**(点击跳转->)**