InfluxDB——python使用手册
InfluxDB——python使用手册

准备工作
安装InfluxDB:
请参考笔者相关博文:Centos7安装InfluxDB1.7
安装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
InfluxDB——python使用手册的更多相关文章
- (转)Python实例手册
原文地址:http://hi.baidu.com/quanzhou722/item/cf4471f8e23d3149932af2a7 实在是太好的资料了,不得不转 python实例手册 #encodi ...
- 《Python学习手册》读书笔记
之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...
- 《Python学习手册》读书笔记【转载】
转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...
- 《python参考手册(第四版)》【PDF】下载
<python参考手册(第四版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382222 内容介绍 本书是权威的Python语 ...
- 转载 python实例手册
python实例手册 #encoding:utf8# 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请 ...
- 转载-《Python学习手册》读书笔记
转载-<Python学习手册>读书笔记 http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html
- global语句(python学习手册422页)
# -*- coding: cp936 -*- #python 27 #xiaodeng #global语句(python学习手册422页) #实际上就是一个名为__builtin__的模块,但是必须 ...
- 【转载】python实例手册
今天写爬虫的时候遇到了问题,在网上不停地查找资料,居然碰到两篇好文章: 1.python实例手册 作者:没头脑的土豆 另一篇在这:shell实例手册 python实例手册 #encoding:ut ...
- 《Python学习手册》(二)
<Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...
随机推荐
- C#图片操作公共库
存一下,以后找起来方便 包括图片加载.压缩.base64等 public static class ImageFun { #region 图片 public static EncoderParamet ...
- mysql中replace替换字符串更改方法
MySQL中update替换部分字符串replace的简单用法 近日,遇到了需要将部分字符串替换为另外的字符,平时用的最多的是直接update整个字段值,在这种情况下效率比较低,而且容易出错.其实my ...
- 常见Web攻击
一.SQL注入 1. sql注入的危害 非法读取.篡改.删除数据库中的数据 盗取用户的各类敏感信息,获取利益 通过修改数据库来修改网页上的内容 注入木马等 2. 实例 MYSQLDB # 通过在用户名 ...
- Docker:手动制作镜像 [五]
一.制作docker镜像的步骤 1.启动容器安装软件服务 2.将安装好服务的容器commit提交为镜像 3:.启动新容器来测试新提交的镜像 二.制作支持ssh远程登录的docker镜像 1.启动容器安 ...
- openJDK之如何下载各个版本的openJDK源码
如果我们需要阅读openJDK的源码,那么需要下载,那么该去哪下载呢? 现在JDK已经发展到版本10了,11已经处于计划中,如果需要特定版本的openJDK,它们的下载链接在哪呢? 1.openJDK ...
- Object is not a function
如图报了一个这样的错,百度好多都说是函数名和html元素重名的问题.可是这个问题我想我这里是不存在的 可以看到就一个绑定事件,而且id名不是关键字 报错是在$.ajax这一行,索性就把submit-i ...
- SQL Server数据库读写分离提高并发性
在一些大型的网站或者应用中,单台的SQL Server 服务器可能难以支撑非常大的访问压力.很多人在这时候,第一个想到的就是一个解决性能问题的利器——负载均衡.遗憾的是,SQL Server 的所有版 ...
- DUMP3 企业级电商项目
[开发模式]controller - service(合法校验问题) - dao 反过来也没问题 用户模块 登录 注册 用户名验证(实时反馈前端) 忘记密码 重置密码 退出登录 更新用户信息 获取 ...
- 013_RomanToInteger
#####solution1####faster#### def romanToInt(s): d={ 'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, ...
- wget无法正确下载jdk解决方案
1 去官网复制下载链接 https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/ ...