核心内容摘要
《おまえの母亲をだます》:一场跨越次元的告白,一次直击心灵的救赎
TDengine Docker 初学者完整指南什么是 TDengineTDengine 是一款专为物联网、工业互联网等场景设计的高性能时序数据库Time-Series Database, TSDB。
它能够高效地处理海量时序数据的写入、存储和查询广泛应用于智能制造、能源监控、车联网等领域。
核心特点超高性能写入速度可达百万级/秒高压缩比存储成本降低至传统数据库的 1/10SQL 支持学习成本低易于上手内置缓存查询速度极快前置准备
安装 Docker在开始之前请确保您的系统已安装 Docker。
检查 Docker 是否已安装docker--version如果看到类似Docker version
24.
0的输出说明 Docker 已安装成功。
如果未安装 Docker请访问macOS/Windows: Docker DesktopLinux: Docker Engine
系统要求至少 2GB 可用内存至少 10GB 可用磁盘空间稳定的网络连接用于拉取镜像
端口说明TDengine 默认使用以下端口请确保这些端口未被占用6030: TDengine 服务端口客户端连接6041: RESTful 接口端口6043: taosAdapter 服务端口
: 集群通信端口6050: Web 管理界面Enterprise 版本6055: Explorer Web 界面6060: 监控指标端口检查端口占用可选# macOS/Linuxlsof-i :6030# 如果有输出说明端口被占用快速启动三步上手第一步拉取 TDengine 镜像我们使用企业版TDengine TSDB-Enterprise以体验完整功能。
dockerpull tdengine/tsdb-ee:latest说明tdengine/tsdb-ee企业版镜像名称latest最新稳定版本下载大小约
MB请耐心等待如果下载速度慢可使用国内镜像可选前往 TDengine 下载中心 获取离线镜像。
验证镜像是否下载成功dockerimages|greptdengine应该看到类似输出tdengine/tsdb-ee latest abc123def456 2 days ago 256MB第二步启动 TDengine 容器dockerrun -d\-v ~/data/taos/dnode/data:/var/lib/taos\-v ~/data/taos/dnode/log:/var/log/taos\-p6030:6030 -p6041:6041 -p6043:6043 -p6060:6060\-p
:
\-p
:
/udp\-p6050:6050 -p6055:6055\--name tdengine-tsdb\tdengine/tsdb-ee命令详解-d后台运行容器-v ~/data/taos/dnode/data:/var/lib/taos挂载数据目录数据持久化-v ~/data/taos/dnode/log:/var/log/taos挂载日志目录-p 6030:6030端口映射主机端口:容器端口--name tdengine-tsdb容器名称tdengine/tsdb-ee使用的镜像重要说明数据目录会自动创建在~/data/taos/下即使容器删除数据也会保留在主机上第三步验证启动状态dockerps-fnametdengine-tsdb正常输出示例CONTAINER ID IMAGE STATUS PORTS NAMES abc123def456 tdengine/tsdb-ee Up 30 seconds (healthy)
0.
0.
0:
/tcp tdengine-tsdb关键检查点STATUS列显示Up ... (healthy)表示启动成功如果显示starting或unhealthy请等待 30 秒后再次检查如果启动失败查看日志dockerlogs tdengine-tsdb第一次体验 TDengine方式一命令行体验推荐初学者
进入容器dockerexec-it tdengine-tsdbbash你会看到提示符变成rootabc123def456:/#
启动 TDengine 命令行客户端taos成功输出示例Welcome to the TDengine Command Line Interface, Client Version
x.x.x Copyright (c) 2022 by TDengine, all rights reserved. Server is Community Edition. taos现在你已经进入 TDengine 的 SQL 交互环境
创建数据库CREATEDATABASEdemo;输出Query OK, 0 of 0 rows affected (
123456s)
使用数据库USEdemo;
创建超级表Super TableTDengine 的核心概念超级表是一类数据的模板包含多个子表。
CREATESTABLE meters(tsTIMESTAMP,-- 时间戳主键currentFLOAT,-- 电流voltageINT,-- 电压phaseFLOAT-- 相位)TAGS(locationBINARY(
,-- 标签位置groupIdINT-- 标签分组ID);说明STABLE超级表关键字ts TIMESTAMP时序数据必须有时间戳字段TAGS标签用于分类和过滤数据
创建子表并插入数据-- 创建子表 d1001代表北京某电表CREATETABLEd1001USINGmeters TAGS(Beijing.Chaoyang,
;-- 插入数据INSERTINTOd1001VALUES(NOW,
1
2,219,
0.
,(NOW1s,
1
3,218,
0.
,(NOW2s,
1
4,220,
0.
;-- 创建另一个子表 d1002代表上海某电表CREATETABLEd1002USINGmeters TAGS(Shanghai.Pudong,
;INSERTINTOd1002VALUES(NOW,
1
5,221,
0.
,(NOW1s,
1
6,222,
0.
,(NOW2s,
1
7,220,
0.
;
查询数据查询所有数据SELECT*FROMmeters;按时间范围查询SELECT*FROMmetersWHEREtsNOW-1h;聚合查询-- 查询每个位置的平均电流SELECTlocation,AVG(current)FROMmetersGROUPBYlocation;降采样查询时间窗口-- 每10秒统计一次平均值SELECT_wstart,AVG(current),AVG(voltage)FROMmetersINTERVAL(10s);
查看数据库信息-- 查看所有数据库SHOWDATABASES;-- 查看所有超级表SHOWSTABLES;-- 查看所有子表SHOWTABLES;-- 查看表结构DESCRIBEmeters;
退出命令行quit;然后退出容器exit方式二使用 RESTful APITDengine 提供了 HTTP 接口无需进入容器即可操作。
执行 SQL 查询curl-u root:taosdata -dSELECT * FROM demo.meters\http://localhost:6041/rest/sql参数说明-u root:taosdata默认用户名和密码-dSQL 语句http://localhost:6041/rest/sqlREST 接口地址
插入数据curl-u root:taosdata -dINSERT INTO demo.d1001 VALUES (NOW,
1
5, 220,
0.
\http://localhost:6041/rest/sql方式三使用 Web 管理界面
访问 TDengine Explorer打开浏览器访问http://localhost:
登录用户名root密码taosdata
功能体验数据查询在 SQL 编辑器中输入查询语句数据可视化查看数据图表监控面板查看系统状态和性能指标数据库管理创建/删除数据库和表进阶体验实际场景模拟场景物联网传感器数据采集模拟 100 个温度传感器每秒采集一次数据。
创建数据库和表结构CREATEDATABASEiot_sensors;USEiot_sensors;CREATESTABLE temperature_data(tsTIMESTAMP,temperatureFLOAT,humidityFLOAT)TAGS(sensor_idINT,locationBINARY(
,device_typeBINARY(
);
批量创建子表-- 创建 10 个传感器表实际可创建更多CREATETABLEsensor_001USINGtemperature_data TAGS(1,Room-101,DHT
;CREATETABLEsensor_002USINGtemperature_data TAGS(2,Room-102,DHT
;CREATETABLEsensor_003USINGtemperature_data TAGS(3,Room-103,DHT
;-- ... 可继续创建
模拟数据写入-- 批量插入数据高性能写入INSERTINTOsensor_001VALUES(NOW,
2
5,
55.
,(NOW-1s,
2
4,
55.
,(NOW-2s,
2
6,
55.
;INSERTINTOsensor_002VALUES(NOW,
2
1,
58.
,(NOW-1s,
2
0,
58.
,(NOW-2s,
2
2,
58.
;
实用查询示例最新数据查询SELECTLAST(*)FROMtemperature_dataGROUPBYtbname;异常检测SELECT*FROMtemperature_dataWHEREtemperature30ORhumidity80;统计分析-- 每小时平均温度SELECT_wstart,location,AVG(temperature)FROMtemperature_dataWHEREtsNOW-1dINTERVAL(1h)GROUPBYlocation;与 Grafana 集成数据可视化
启动 Grafana 容器dockerrun -d\-p3000:3000\--name grafana\--link tdengine-tsdb:tdengine\grafana/grafana
访问 Grafana打开浏览器http://localhost:3000默认用户名admin默认密码admin首次登录需修改
添加 TDengine 数据源点击Configuration→Data Sources点击Add data source搜索并选择TDengine需安装插件配置连接URL:http://tdengine:6041User:rootPassword:taosdata点击Save Test
创建仪表板创建新的 Dashboard添加 Panel编写 SQL 查询SELECTts,temperatureFROMdemo.d1001选择可视化类型折线图、柱状图等
常见问题与解决方案问题 1容器启动失败排查步骤查看日志dockerlogs tdengine-tsdb检查端口占用lsof-i :6030检查磁盘空间df-h问题 2无法连接到 TDengine解决方案确认容器状态为healthydockerps-fnametdengine-tsdb检查防火墙设置验证端口映射dockerport tdengine-tsdb问题 3数据丢失说明数据存储在~/data/taos/目录下只要该目录存在数据就不会丢失。
问题 4权限错误解决方案确保挂载目录有足够权限chmod-R755~/data/taos/问题 5忘记密码重置 root 密码dockerexec-it tdengine-tsdb taos -sALTER USER root PASS new_password;容器管理命令启动/停止/重启# 停止容器dockerstop tdengine-tsdb# 启动容器dockerstart tdengine-tsdb# 重启容器dockerrestart tdengine-tsdb查看日志# 实时查看日志dockerlogs -f tdengine-tsdb# 查看最后 100 行日志dockerlogs --tail100tdengine-tsdb监控资源使用# 查看容器资源占用dockerstats tdengine-tsdb备份数据# 备份数据目录tar-czf tdengine-backup-$(date%Y%m%d).tar.gz ~/data/taos/清理环境# 停止并删除容器dockerstop tdengine-tsdbdockerrmtdengine-tsdb# 删除镜像可选dockerrmi tdengine/tsdb-ee# 删除数据谨慎操作rm-rf ~/data/taos/性能测试体验TDengine 内置了性能测试工具taosBenchmark。
写入性能测试dockerexec-it tdengine-tsdb taosBenchmark\-t10\-n10000\-y参数说明-t 10创建 10 个表-n 10000每个表插入 10000 条数据-y自动确认查看测试结果测试完成后会显示总写入记录数写入速度records/s平均延迟学习路径建议入门阶段
周✅ 完成本文档的所有实践操作 阅读官方文档TDengine 快速入门 练习基本 SQL 操作进阶阶段
周 学习 TDengine 数据建模 尝试使用不同编程语言的连接器Python、Java、Go 集成到实际项目中高级阶段
月️ 学习集群部署和高可用配置⚡ 性能调优和最佳实践 安全配置和权限管理学习资源官方资源官方文档https://docs.taosdata.com/GitHub 仓库https://github.com/taosdata/TDengine社区论坛https://github.com/taosdata/TDengine/discussions视频教程哔哩哔哩搜索TDengine 教程YouTube: TDengine Tutorials示例代码Python: https://github.com/taosdata/taos-connector-pythonJava: https://github.com/taosdata/taos-connector-jdbcGo: https://github.com/taosdata/driver-go实战案例官方示例/examples/目录社区案例分享下一步建议恭喜你完成了 TDengine 的入门体验以下是建议的下一步行动尝试编写程序连接 TDengine使用你熟悉的编程语言Python/Java/Go实现数据写入和查询模拟真实场景根据你的业务场景设计数据模型测试高频写入和复杂查询学习高级特性流式计算数据订阅用户自定义函数UDF参与社区在 GitHub 提问题或参与讨论分享你的使用经验附录A. Docker Compose 配置推荐生产环境创建docker-compose.ymlversion:3services:tdengine:image:tdengine/tsdb-ee:latestcontainer_name:tdengine-tsdbports:-6030:
:
:
:
:
/udp-6050:
:
:6060volumes:-./data:/var/lib/taos-./log:/var/log/taosenvironment:-TZAsia/Shanghairestart:unless-stopped启动docker-composeup -dB. 常用 SQL 速查表-- 数据库操作CREATEDATABASEdb_name;DROPDATABASEdb_name;SHOWDATABASES;USEdb_name;-- 表操作CREATESTABLE st_name(...)TAGS(...);CREATETABLEtb_nameUSINGst_name TAGS(...);DROPTABLEtb_name;SHOWSTABLES;SHOWTABLES;DESCRIBEtb_name;-- 数据操作INSERTINTOtb_nameVALUES(...);SELECT*FROMtb_name;DELETEFROMtb_nameWHERE...;-- 时间函数NOW()-- 当前时间TODAY()-- 今天零点_wstart,_wend-- 窗口起止时间-- 聚合函数COUNT(),AVG(),SUM(),MIN(),MAX()FIRST(),LAST()STDDEV(),LEASTSQUARES()C. 性能优化建议数据建模合理设计超级表和标签避免过多标签建议 ≤ 8 个批量写入使用INSERT INTO ... VALUES (...), (...);批量插入建议每批
条查询优化善用标签过滤使用时间范围限制避免SELECT *缓存利用查询最新数据自动使用缓存
总结通过本指南你已经✅ 成功安装并启动 TDengine✅ 掌握基本的增删改查操作✅ 了解 TDengine 的核心概念✅ 体验了数据可视化和性能测试TDengine 的强大之处在于它的简单易用和高性能。
继续探索你会发现更多强大的功能有问题查看官方文档https://docs.taosdata.com/加入社区讨论https://github.com/taosdata/TDengine/discussions祝你学习愉快 关于TDengineTDengine 专为物联网IoT平台、工业大数据平台设计。
其中TDengine TSDB 是一款高性能、分布式的时序数据库Time Series Database同时它还带有内建的缓存、流式计算、数据订阅等系统功能TDengine IDMP 是一款AI原生工业数据管理平台它通过树状层次结构建立数据目录对数据进行标准化、情景化并通过 AI 提供实时分析、可视化、事件管理与报警等功能。