Python Connector

安装准备

Python客户端安装

Linux

用户可以在源代码的src/connector/python文件夹下找到python2和python3的安装包。用户可以通过pip命令安装:

pip install src/connector/python/linux/python2/

pip install src/connector/python/linux/python3/

Windows

在已安装Windows TDengine 客户端的情况下, 将文件”C:\TDengine\driver\taos.dll” 拷贝到 “C:\windows\system32” 目录下, 然后进入Windwos cmd 命令行界面

  1. cd C:\TDengine\connector\python\windows
  2. pip install python2\

  1. cd C:\TDengine\connector\python\windows
  2. pip install python3\

*如果机器上没有pip命令,用户可将src/connector/python/python3或src/connector/python/python2下的taos文件夹拷贝到应用程序的目录使用。 对于windows 客户端,安装TDengine windows 客户端后,将C:\TDengine\driver\taos.dll拷贝到C:\windows\system32目录下即可。

使用

代码示例

  • 导入TDengine客户端模块
  1. import taos
  • 获取连接
  1. conn = taos.connect(host="127.0.0.1", user="root", password="taosdata", config="/etc/taos")
  2. c1 = conn.cursor()

*host 是TDengine 服务端所有IP, config 为客户端配置文件所在目录

  • 写入数据
  1. import datetime
  2. # 创建数据库
  3. c1.execute('create database db')
  4. c1.execute('use db')
  5. # 建表
  6. c1.execute('create table tb (ts timestamp, temperature int, humidity float)')
  7. # 插入数据
  8. start_time = datetime.datetime(2019, 11, 1)
  9. affected_rows = c1.execute('insert into tb values (\'%s\', 0, 0.0)' %start_time)
  10. # 批量插入数据
  11. time_interval = datetime.timedelta(seconds=60)
  12. sqlcmd = ['insert into tb values']
  13. for irow in range(1,11):
  14. start_time += time_interval
  15. sqlcmd.append('(\'%s\', %d, %f)' %(start_time, irow, irow*1.2))
  16. affected_rows = c1.execute(' '.join(sqlcmd))
  • 查询数据
  1. c1.execute('select * from tb')
  2. # 拉取查询结果
  3. data = c1.fetchall()
  4. # 返回的结果是一个列表,每一行构成列表的一个元素
  5. numOfRows = c1.rowcount
  6. numOfCols = len(c1.description)
  7. for irow in range(numOfRows):
  8. print("Row%d: ts=%s, temperature=%d, humidity=%f" %(irow, data[irow][0], data[irow][1],data[irow][2]))
  9. # 直接使用cursor 循环拉取查询结果
  10. c1.execute('select * from tb')
  11. for data in c1:
  12. print("ts=%s, temperature=%d, humidity=%f" %(data[0], data[1],data[2])
  • 创建订阅
  1. # 创建一个主题为 'test' 消费周期为1000毫秒的订阅
  2. # 第一个参数为 True 表示重新开始订阅,如为 False 且之前创建过主题为 'test' 的订阅,则表示继续消费此订阅的数据,而不是重新开始消费所有数据
  3. sub = conn.subscribe(True, "test", "select * from meters;", 1000)
  • 消费订阅的数据
  1. data = sub.consume()
  2. for d in data:
  3. print(d)
  • 取消订阅
  1. sub.close()
  • 关闭连接
  1. c1.close()
  2. conn.close()

帮助信息

用户可通过python的帮助信息直接查看模块的使用信息,或者参考code/examples/python中的示例程序。以下为部分常用类和方法:

  • TDengineConnection

    参考python中help(taos.TDengineConnection)。

  • TDengineCursor

    参考python中help(taos.TDengineCursor)。

  • connect方法

    用于生成taos.TDengineConnection的实例。