TDengine Python原生连接使用指南

TDengine Python原生连接使用指南

【免费下载链接】TDengine TDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps. 【免费下载链接】TDengine 项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine

概述

本文将详细介绍如何使用Python原生接口连接和操作TDengine时序数据库。TDengine是一款高性能、分布式的时序数据库管理系统,特别适合物联网、工业互联网、车联网等场景下的海量时序数据处理。

环境准备

在使用Python连接TDengine前,需要确保:

  1. 已安装TDengine服务端
  2. 已安装taospy库(pip install taospy

基本连接操作

建立连接

import taos
conn = taos.connect()

这行代码会使用默认配置连接到本地运行的TDengine服务。如果需要指定主机、用户名、密码等参数,可以使用:

conn = taos.connect(host="127.0.0.1", user="root", password="taosdata")

数据库操作

# 删除数据库(如果存在)
conn.execute("DROP DATABASE IF EXISTS test")

# 创建数据库,设置数据保留36500天
conn.execute("CREATE DATABASE test keep 36500")

# 切换当前数据库
conn.select_db("test")

execute()方法用于执行SQL语句并返回受影响的行数,适合执行DDL和DML语句。

数据表操作

创建超级表

conn.execute("CREATE STABLE weather(ts TIMESTAMP, temperature FLOAT) TAGS (location INT)")

这里创建了一个名为weather的超级表(Super Table),包含:

  • 时间戳字段ts
  • 温度值字段temperature
  • 标签字段location(用于分组)

插入数据

affected_row = conn.execute("INSERT INTO t1 USING weather TAGS(1) VALUES (now, 23.5) (now+1m, 23.5) (now+2m, 24.4)")
print("affected_row", affected_row)

这段代码展示了如何:

  1. 创建子表t1并指定标签值location=1
  2. 一次性插入三条记录,时间戳分别为当前时间、1分钟后和2分钟后
  3. 获取并打印受影响的行数

数据查询

执行查询

result = conn.query("SELECT * from weather")

query()方法用于执行查询语句并返回结果集对象,适合执行SELECT语句。

获取字段信息

fields = result.fields
for field in fields:
    print(field)  # 输出字段信息

输出示例:

{name: ts, type: 9, bytes: 8}
{name: temperature, type: 6, bytes: 4}
{name: location, type: 4, bytes: 4}

每个字段包含名称、类型和字节大小信息。

获取查询结果

# 方式1:获取元组列表
data = result.fetch_all()
print(data)

# 方式2:获取字典列表(注释中示例)
# map_data = result.fetch_all_into_dict()
# print(map_data)

fetch_all()返回元组列表,每个元组代表一行数据。输出示例:

[(datetime.datetime(2022, 4, 27, 9, 4, 25, 367000), 23.5, 1), 
 (datetime.datetime(2022, 4, 27, 9, 5, 25, 367000), 23.5, 1), 
 (datetime.datetime(2022, 4, 27, 9, 6, 25, 367000), 24.399999618530273, 1)]

连接关闭

conn.close()

使用完毕后应关闭连接以释放资源。

最佳实践

  1. 批量插入:如示例所示,使用单条INSERT语句插入多条数据可显著提高性能
  2. 连接池:在生产环境中,建议使用连接池管理数据库连接
  3. 异常处理:在实际应用中应添加try-except块处理可能的异常
  4. 数据类型映射:注意TDengine数据类型与Python数据类型的对应关系

总结

本文介绍了使用Python原生接口操作TDengine的基本方法,包括连接管理、数据库操作、表操作和数据查询等核心功能。TDengine的Python接口设计简洁高效,能够很好地满足时序数据存储和分析的需求。

【免费下载链接】TDengine TDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps. 【免费下载链接】TDengine 项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值