php网站开发案例,杭州效果图制作,响应式旅游网站模板,嘉鱼网站建设哪家好TDengine 小白入门指南
#x1f4d8; TDengine 是什么#xff1f;
TDengine 是一款开源、高性能、云原生、AI 驱动的时序数据库#xff08;Time-Series Database#xff0c;简称 TSDB#xff09;。简单来说#xff0c;它是一个专门为时间序列数据设计的数据库系统…TDengine 小白入门指南 TDengine 是什么TDengine 是一款开源、高性能、云原生、AI 驱动的时序数据库Time-Series Database简称 TSDB。简单来说它是一个专门为时间序列数据设计的数据库系统特别擅长处理按时间顺序生成的大量数据。与传统数据库如 MySQL、PostgreSQL不同TDengine 针对时序数据的特点进行了深度优化在写入速度、查询性能和存储效率方面都有显著优势。 TDengine 用在哪儿TDengine 广泛应用于以下领域物联网IoT智能家居、智慧城市、工业传感器数据采集工业互联网设备监控、生产线数据分析、预测性维护车联网车辆位置追踪、驾驶行为分析、车况监测IT 运维服务器监控、应用性能管理APM、日志分析金融领域股票行情、交易数据、风险监控能源行业电力监控、能耗分析、智能电网 TDengine 能解决什么问题1.海量数据写入难题传统数据库面对每秒数百万次的数据写入会力不从心TDengine 通过创新的存储引擎设计写入性能比通用数据库快 10 倍以上。2.存储成本高昂时序数据通常数据量巨大TDengine 采用高效的压缩算法存储空间仅为通用数据库的 1/10。3.系统架构复杂传统方案需要集成 Kafka消息队列、Redis缓存、Spark流式计算等多个组件TDengine内置这些功能大幅降低系统复杂度。4.实时查询性能差TDengine 针对时序数据特点优化了查询引擎提供超快的聚合查询和时间范围查询能力。5.难以扩展TDengine 采用云原生分布式架构支持水平扩展可轻松应对数据量和并发量的增长。 什么场景适合使用 TDengine✅ 适合的场景数据具有时间戳特征每条数据都有明确的时间属性写多读少数据持续写入查询相对较少数据量大每天产生 GB 到 TB 级别的数据实时性要求高需要实时采集、处理和展示数据多个数据源有大量设备或传感器持续产生数据❌不太适合的场景数据没有时间维度如用户账号信息、商品库存等频繁更新历史数据时序数据通常只追加不修改复杂的关系型查询如多表 JOIN、事务处理等数据量很小每天只有几千条数据 Hello World快速上手下面通过一个简单的例子演示如何使用 TDengine 存储和查询温度传感器数据。1. 安装 TDenginemacOS 用户下载地址https://www.taosdata.com/tdengine-resources启动服务taosd**Linux 用户** bash # 下载安装包以 Ubuntu 为例 wget https://www.taosdata.com/assets-download/3.0/TDengine-server-3.3.6.0-Linux-x64.tar.gz tar -xzvf TDengine-server-3.3.6.0-Linux-x64.tar.gz cd TDengine-server-3.3.6.0 sudo ./install.sh # 启动服务 sudo systemctl start taosdWindows 用户下载地址https://www.taosdata.com/tdengine-resources2. 连接 TDengine打开命令行终端输入taos看到类似下面的提示说明连接成功taos3. 创建数据库-- 创建一个名为 sensor_db 的数据库CREATEDATABASEIFNOTEXISTSsensor_db;-- 使用这个数据库USEsensor_db;4. 创建超级表模板超级表是 TDengine 的特色功能相当于一个数据模板用于定义相同类型设备的数据结构。-- 创建温度传感器超级表-- ts: 时间戳-- temperature: 温度值-- humidity: 湿度值-- location: 传感器位置标签-- device_id: 设备编号标签CREATESTABLEIFNOTEXISTStemp_sensor(tsTIMESTAMP,temperatureFLOAT,humidityFLOAT)TAGS(locationBINARY(50),device_idBINARY(20));5. 创建子表实际设备-- 为办公室的温度传感器创建子表CREATETABLEoffice_sensorUSINGtemp_sensor TAGS(办公室,SENSOR001);-- 为仓库的温度传感器创建子表CREATETABLEwarehouse_sensorUSINGtemp_sensor TAGS(仓库,SENSOR002);6. 插入数据-- 向办公室传感器插入数据INSERTINTOoffice_sensorVALUES(NOW,25.5,60.2),(NOW1s,25.6,60.5),(NOW2s,25.4,60.1);-- 向仓库传感器插入数据INSERTINTOwarehouse_sensorVALUES(NOW,18.3,75.8),(NOW1s,18.5,75.5),(NOW2s,18.2,76.1);7. 查询数据-- 查询办公室最新的温度数据SELECT*FROMoffice_sensorORDERBYtsDESCLIMIT5;-- 查询所有传感器的最新温度SELECTLAST(*)FROMtemp_sensorGROUPBYtbname;-- 查询最近1小时内温度超过20度的记录SELECTts,temperature,location,device_idFROMtemp_sensorWHEREtsNOW-1hANDtemperature20;-- 查询每个传感器的平均温度SELECTlocation,device_id,AVG(temperature)asavg_temp,AVG(humidity)asavg_humidityFROMtemp_sensorWHEREtsNOW-1hGROUPBYlocation,device_id;8. 使用 Python 连接 TDengine首先安装 Python 连接器pipinstalltaospy创建一个 Python 脚本hello_tdengine.py#!/usr/bin/env python3# -*- coding: utf-8 -*- TDengine Hello World 示例 演示如何使用 Python 连接 TDengine 并进行基本操作 importtaosfromdatetimeimportdatetimedefmain():# 1. 连接到 TDengine 服务器print(正在连接 TDengine...)conntaos.connect(host127.0.0.1,# TDengine 服务器地址userroot,# 用户名passwordtaosdata,# 密码databasesensor_db# 数据库名)print(✓ 连接成功\n)# 2. 创建游标对象cursorconn.cursor()# 3. 创建数据库如果不存在print(创建数据库...)cursor.execute(CREATE DATABASE IF NOT EXISTS sensor_db)cursor.execute(USE sensor_db)print(✓ 数据库准备就绪\n)# 4. 创建超级表如果不存在print(创建超级表...)cursor.execute( CREATE STABLE IF NOT EXISTS temp_sensor ( ts TIMESTAMP, temperature FLOAT, humidity FLOAT ) TAGS ( location BINARY(50), device_id BINARY(20) ) )print(✓ 超级表创建成功\n)# 5. 创建子表print(创建子表...)cursor.execute(CREATE TABLE IF NOT EXISTS room_sensor USING temp_sensor TAGS (会议室, SENSOR003))print(✓ 子表创建成功\n)# 6. 插入数据print(插入数据...)current_timeint(datetime.now().timestamp()*1000)# 毫秒级时间戳foriinrange(5):temp22.0i*0.2humidity55.0i*0.5cursor.execute(fINSERT INTO room_sensor VALUES ({current_timei*1000},{temp},{humidity}))print(f✓ 成功插入 5 条数据\n)# 7. 查询数据print(查询数据...)cursor.execute(SELECT * FROM room_sensor ORDER BY ts DESC LIMIT 5)# 获取列名column_names[desc[0]fordescincursor.description]print(f列名:{column_names})print(-*80)# 获取并显示数据rowscursor.fetchall()forrowinrows:tsdatetime.fromtimestamp(row[0]/1000).strftime(%Y-%m-%d %H:%M:%S)print(f时间:{ts}, 温度:{row[1]:.2f}°C, 湿度:{row[2]:.2f}%)print(\n*80)# 8. 统计查询print(\n统计分析...)cursor.execute( SELECT AVG(temperature) as 平均温度, MAX(temperature) as 最高温度, MIN(temperature) as 最低温度, AVG(humidity) as 平均湿度 FROM room_sensor )resultcursor.fetchone()print(f平均温度:{result[0]:.2f}°C)print(f最高温度:{result[1]:.2f}°C)print(f最低温度:{result[2]:.2f}°C)print(f平均湿度:{result[3]:.2f}%)# 9. 关闭连接cursor.close()conn.close()print(\n✓ 连接已关闭)print(\n Hello TDengine 示例运行完成)if__name____main__:main()运行脚本python hello_tdengine.py预期输出正在连接 TDengine... ✓ 连接成功 创建数据库... ✓ 数据库准备就绪 创建超级表... ✓ 超级表创建成功 创建子表... ✓ 子表创建成功 插入数据... ✓ 成功插入 5 条数据 查询数据... 列名: [ts, temperature, humidity] -------------------------------------------------------------------------------- 时间: 2025-12-26 10:30:04, 温度: 22.80°C, 湿度: 57.00% 时间: 2025-12-26 10:30:03, 温度: 22.60°C, 湿度: 56.50% 时间: 2025-12-26 10:30:02, 温度: 22.40°C, 湿度: 56.00% 时间: 2025-12-26 10:30:01, 温度: 22.20°C, 湿度: 55.50% 时间: 2025-12-26 10:30:00, 温度: 22.00°C, 湿度: 55.00% 统计分析... 平均温度: 22.40°C 最高温度: 22.80°C 最低温度: 22.00°C 平均湿度: 56.00% ✓ 连接已关闭 Hello TDengine 示例运行完成 核心概念解释1.超级表Super Table超级表是 TDengine 的核心概念它定义了一类设备的数据结构模板。通过超级表可以方便地管理成千上万个相同类型的设备。2.子表Sub Table子表代表具体的设备或数据采集点继承超级表的结构并通过标签TAGS区分不同设备。3.标签TAGS标签是设备的静态属性如位置、型号、编号等用于过滤和分组查询。4.时间戳TIMESTAMP每条记录的主键TDengine 会自动按时间排序和优化存储。 TDengine 的独特优势极简架构一个数据库搞定消息队列、缓存、流式计算等功能高压缩比相同数据量存储空间仅为传统数据库的 1/10超高性能写入和查询速度远超传统时序数据库易于使用支持标准 SQL学习成本低云原生支持 Kubernetes 部署弹性扩展AI 智能内置 TDgpt 智能体提供预测、异常检测等功能 进一步学习官方文档https://docs.taosdata.comGitHub 仓库https://github.com/taosdata/TDengine云服务体验https://cloud.taosdata.com社区支持https://www.taosdata.com/community 常见问题Q1: TDengine 是免费的吗A: TDengine 的核心功能包括集群完全开源免费企业版提供更多高级功能和技术支持。Q2: TDengine 支持哪些编程语言A: 支持 C/C、Java、Python、Go、Rust、Node.js、C#、PHP、R 等主流语言。Q3: TDengine 可以用于生产环境吗A: 当然可以全球已有超过 135,000 个运行实例广泛应用于工业、金融等关键领域。Q4: 如何从其他数据库迁移到 TDengineA: TDengine 提供了数据导入工具和迁移指南支持从 InfluxDB、OpenTSDB 等时序数据库迁移。Q5: TDengine 如何保证数据可靠性A: 支持多副本机制、数据持久化、故障自动切换等企业级特性。恭喜你 你已经完成了 TDengine 的入门学习。现在你可以开始使用 TDengine 构建自己的时序数据应用了。祝你使用愉快如有问题欢迎访问 TDengine 社区交流。