安装InfluxDB:html
请参考笔者相关博文:Centos7安装InfluxDB1.7python
安装pip :数据库
yum install python-pip
安装influxdb-python :缓存
pip install influxdb
实际上py的influx官方包的doc也已经足够详细,值得过一遍:py-influxdbbash
使用InfluxDBClient类操做数据库,示例以下:函数
# 初始化 client = InfluxDBClient('localhost', 8086, 'your_username', 'yuor_password', 'your_dbname')
使用get_list_database函数,示例以下:测试
print client.get_list_database() # 显示全部数据库名称
code
使用create_database函数,示例以下:orm
client.create_database('testdb') # 建立数据库
htm
使用drop_database函数,示例以下:
client.drop_database('testdb') # 删除数据库
数据库操做完整示例以下:
from influxdb import InfluxDBClient # 初始化(指定要操做的数据库) client = InfluxDBClient('localhost', 8086, 'your_username', 'yuor_password', 'your_dbname') print(client.get_list_database()) # 显示全部数据库名称 client.create_database('testdb') # 建立数据库 print(client.get_list_database()) # 显示全部数据库名称 client.drop_database('testdb') # 删除数据库 print(client.get_list_database()) # 显示全部数据库名称
InfluxDBClient中要指定链接的数据库,示例以下:
client = InfluxDBClient('localhost', 8086, 'your_username', 'yuor_password', 'your_dbname')
能够经过influxql语句实现,示例以下:
result = client.query('show measurements;') # 显示数据库中的表 print("Result: {0}".format(result))
InfluxDB没有提供单独的建表语句,能够经过并添加数据的方式建表,示例以下:
current_time = datetime.datetime.utcnow().isoformat("T") body = [ { "measurement": "students", "time": current_time, "tags": { "class": 1 }, "fields": { "name": "Hyc", "age": 3 }, } ] res = client.write_points(body)
能够经过influxql语句实现,示例以下:
client.query("drop measurement students") # 删除表
数据表操做完整示例以下:
import datetime from influxdb import InfluxDBClient client = InfluxDBClient('localhost', 8086, 'your_username', 'yuor_password', 'your_dbname') current_time = datetime.datetime.utcnow().isoformat("T") body = [ { "measurement": "students", "time": current_time, "tags": { "class": 1 }, "fields": { "name": "Hyc", "age": 3 }, } ] res = client.write_points(body) client.query("drop measurement students")
InfluxDBClient中要指定链接的数据库,示例以下:
# 初始化(指定要操做的数据库) client = InfluxDBClient('localhost', 8086, 'your_username', 'yuor_password', 'your_dbname')
通过笔者测试write_points至关于其它数据库的批量写入操做,建议处理大量数据是对数据进行缓存后利用write_points一次批量写入。
能够经过write_points实现,示例以下:
body = [ { "measurement": "students", "time": current_time, "tags": { "class": 1 }, "fields": { "name": "Hyc", "age": 3 }, }, { "measurement": "students", "time": current_time, "tags": { "class": 2 }, "fields": { "name": "Ncb", "age": 21 }, }, ] res = client.write_points(body)
能够经过influxql语句实现,示例以下:
result = client.query('select * from students;') print("Result: {0}".format(result))
tags 和 timestamp相同时数据会执行覆盖操做,至关于InfluxDB的更新操做。
使用influxql语句实现,delete语法,示例以下:
client.query('delete from students;') # 删除数据
InfluDB官方文档:https://docs.influxdata.com/influxdb/v1.7/introduction/installation/
python-influx doc:https://influxdb-python.readthedocs.io/en/latest/include-readme.html
Mike_Zhang:使用python操做InfluxDB