news 2026/9/5 19:05:50

TDengine Python 连接器入门指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TDengine Python 连接器入门指南

TDengine Python 连接器入门指南

本文面向 TDengine 初学者,目标是让你在 5~10 分钟内完成:安装连接器 → 建立连接 → 建库建表 → 写入 → 查询,并掌握连接器的基本使用方式与常见问题排查。

说明:TDengine 官方 Python 连接器为taospy。其中:

  • 原生连接对应taospy包的taos模块。
  • WebSocket 连接对应可选包taos-ws-py,使用taosws模块(推荐)。

1. 选择连接方式

taospy提供两种连接方式,建议优先使用WebSocket 连接

  • WebSocket 连接(推荐):通过taosAdapter的 WebSocket 接口访问 TDengine,依赖更轻且在并发/IO 密集场景更友好。
  • 原生连接(Native):Python 进程需加载 TDengine 客户端驱动(libtaos.so/taos.dll),本地依赖更多。

连接方式的详细介绍见:

  • 连接方式

2. 环境准备

在运行示例前,请确认:

  • TDengine TSDB 服务端已启动,并且你的程序能访问到它。
  • 若使用WebSocket 连接:确保taosAdapter的 WebSocket 服务可用(示例默认localhost:6041)。
  • 若使用原生连接:确保已安装 TDengine TSDB 客户端驱动,且 Python 能正确加载。

3. 安装连接器

# 原生连接pip3installtaospy# WebSocket 连接(推荐,可选装)pip3installtaos-ws-py

4. 第一个程序:建库建表、写入、查询

下面提供两份“最小可运行”示例,你可以任选其一。

4.1 WebSocket(推荐)

保存为quickstart_ws.py并运行。

importtaoswsdefmain()->None:# WebSocket 连接依赖 taosAdapter 的 WebSocket 服务。conn=Nonehost="localhost"port=6041try:conn=taosws.connect(user="root",password="taosdata",host=host,port=port,)conn.execute("CREATE DATABASE IF NOT EXISTS demo")conn.execute("USE demo")conn.execute("CREATE STABLE IF NOT EXISTS meters (ts TIMESTAMP, current FLOAT, voltage INT) TAGS (location BINARY(24))")conn.execute("CREATE TABLE IF NOT EXISTS d0 USING meters TAGS('beijing')")conn.execute("INSERT INTO d0 VALUES (NOW, 10.2, 220) (NOW + 1s, 10.3, 221)")result=conn.query("SELECT * FROM meters LIMIT 5")forrowinresult:print(row)finally:ifconnisnotNone:conn.close()if__name__=="__main__":main()

运行:

python3 quickstart_ws.py

4.2 原生连接(Native)

保存为quickstart_native.py并运行。

importtaosdefmain()->None:# 原生连接依赖 TDengine 客户端驱动(libtaos.so/taos.dll)。conn=Nonehost="localhost"port=6030try:conn=taos.connect(user="root",password="taosdata",host=host,port=port,)conn.execute("CREATE DATABASE IF NOT EXISTS demo")conn.execute("USE demo")conn.execute("CREATE STABLE IF NOT EXISTS meters (ts TIMESTAMP, current FLOAT, voltage INT) TAGS (location BINARY(24))")conn.execute("CREATE TABLE IF NOT EXISTS d0 USING meters TAGS('beijing')")conn.execute("INSERT INTO d0 VALUES (NOW, 10.2, 220) (NOW + 1s, 10.3, 221)")result=conn.query("SELECT * FROM meters LIMIT 5")forrowinresult.fetch_all():print(row)finally:ifconnisnotNone:conn.close()if__name__=="__main__":main()

运行:

python3 quickstart_native.py

5. 连接器基本用法速记

  • 建立连接:
    • WebSocket:taosws.connect(user=..., password=..., host=..., port=...)
    • 原生:taos.connect(user=..., password=..., host=..., port=...)
  • 执行 SQL:conn.execute(sql)
  • 查询:conn.query(sql)
    • WebSocket 返回结果可直接迭代for row in result:
    • 原生示例里通过result.fetch_all()获取全部记录

6. 异常与排查(最常见)

TDengine Python 连接器的数据库操作如果出现异常,会直接抛出给应用层处理。常见排查路径:

  • ConnectionError(连接失败):检查服务端是否启动、账号密码是否正确、host/port 是否可达;WebSocket 还需要确认taosAdapter是否可用。
  • InterfaceError(原生接口/驱动不兼容):通常是taosc或客户端驱动版本过低或不匹配,升级 TDengine 客户端组件。
  • ProgrammingError/QueryError(SQL/查询错误):检查 SQL 是否正确、库表是否存在、数据类型是否匹配;结合错误码定位。

参考:

  • 错误码

7. 下一步(进阶能力入口)

当你能跑通上面的“建库建表、写入、查询”后,建议按需求继续:

  • 高效批量写入:了解参数绑定(stmt / stmt2)。
  • 无模式写入:了解schemaless写入。
  • 消息订阅:了解 TMQ(创建 Consumer、subscribe、poll、commit)。
  • 连接参数与 URL 规范:了解 WebSocket DSN(ws://...)与超时/重试/时区等参数。

关于TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 14:38:51

内网渗透中的“眼睛”与“耳朵”:工作组信息收集技术全解析

内网渗透中的“眼睛”与“耳朵”:工作组信息收集技术全解析在授权渗透测试中,高效的信息收集是横向移动的基石。掌握这些命令,你就能像管理员一样“看见”整个系统。前言:为何信息收集如此重要? 在内网渗透测试中&…

作者头像 李华
网站建设 2026/9/2 23:30:12

基于SpringBoot的养老院管理系统毕设

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一套基于SpringBoot框架的养老院管理系统,以提升养老院管理效率和服务质量。具体研究目的如下:优化养老院管理流程&…

作者头像 李华
网站建设 2026/9/2 21:50:23

基于SpringBoot的新能源充电系统毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在深入探讨基于SpringBoot框架的新能源充电系统的设计与实现,以应对当前新能源汽车产业发展中充电基础设施不足、充电效率低下以及用户体验不…

作者头像 李华