ITPub博客

首页 > 数据库 > > InfluxDB之python使用手册

InfluxDB之python使用手册

作者:飘絮絮絮丶 时间:2022-02-07 11:37:21 0 删除 编辑

准备工作

安装pip :

yum install python-pip

安装influxdb-python :

pip install influxdb 

实际上py的influx官方包的doc也已经足够详细,值得过一遍:py-influxdb

基本操作

使用InfluxDBClient类操作数据库,示例如下:

# 初始化
client = InfluxDBClient('localhost', 8086, 'your_username', 'yuor_password', 'your_dbname') 

显示已存在的所有数据库

使用get_list_database函数,示例如下:

print client.get_list_database() # 显示所有数据库名称`

创建新数据库

使用create_database函数,示例如下:

client.create_database('testdb') # 创建数据库`

删除数据库

使用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



作者:地位极低的测试
链接:https://www.jianshu.com/p/866a4bd35f2c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3160529/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-09

  • 博文量
    2646
  • 访问量
    42281