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使用手册的更多相关文章

  1. (转)Python实例手册

    原文地址:http://hi.baidu.com/quanzhou722/item/cf4471f8e23d3149932af2a7 实在是太好的资料了,不得不转 python实例手册 #encodi ...

  2. 《Python学习手册》读书笔记

    之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...

  3. 《Python学习手册》读书笔记【转载】

    转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...

  4. 《python参考手册(第四版)》【PDF】下载

    <python参考手册(第四版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382222 内容介绍 本书是权威的Python语 ...

  5. 转载 python实例手册

    python实例手册 #encoding:utf8# 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请 ...

  6. 转载-《Python学习手册》读书笔记

    转载-<Python学习手册>读书笔记 http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html

  7. global语句(python学习手册422页)

    # -*- coding: cp936 -*- #python 27 #xiaodeng #global语句(python学习手册422页) #实际上就是一个名为__builtin__的模块,但是必须 ...

  8. 【转载】python实例手册

    今天写爬虫的时候遇到了问题,在网上不停地查找资料,居然碰到两篇好文章: 1.python实例手册   作者:没头脑的土豆 另一篇在这:shell实例手册 python实例手册 #encoding:ut ...

  9. 《Python学习手册》(二)

    <Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...

随机推荐

  1. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc

    在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件

  2. WS_TABSTOP 与 BS_DEFPUSHBUTTON 第一次使有

    关于 WS_TABSTOP,我一直没搞明白,为何加了 WS_TABSTOP ,当按下 Tab 键时,窗口中的控件还是不能自动的切换焦点. 为何 SetFocus(hwnd); 后,虽然按钮已获得焦点, ...

  3. PTA数组作业一查找整数

    代码 #include<stdio.h> int main(void){ int a[20],n,flag=0,x; int i; scanf("%d%d",& ...

  4. mysql加速导入数据的简单设置

    mysql加速导入数据的简单设置 # 修改前查询参数值 show variables like 'foreign_key_checks'; show variables like 'unique_ch ...

  5. 浅谈js中的this关键字

    ---恢复内容开始--- this是JavaScript中的关键字之一,在编写程序的时候经常会用到,正确的理解和使用关键字this尤为重要.接下来,笔者就从作用域的角度粗谈下自己对this关键字的理解 ...

  6. 更换gcc工具链

    title: 更换gcc工具链 date: 2019/1/16 19:27:51 toc: true --- 更换gcc工具链 下载后解压到一个临时目录先看看文件结构 mkdir tmp tar xj ...

  7. NOI-OJ 2.2 ID:6261 汉诺塔

    思路 汉诺塔是递归思想最经典的例子,通过递归不断缩小问题,将n个盘子的问题简化n-1个,直至1个. 三个盘子,分别为A:from,B:to,C:by(A为起点盘,B为目标盘,C为中转盘) 过程 将1- ...

  8. Hibernate 4.3.11 下问题的解决

    2017.01.09 问题:hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hib ...

  9. Highcharts开发图表

    1.折线图 显示一个静态的折线图,显示如下数据 星期 温度 周一 9~14 周二 4~10 周三 1~7 周四 4~9 周五 5~11 周六 8~13 周天 7~10 新建demo1.html < ...

  10. 求逆序对常用的两种算法 ----归并排 & 树状数组

    网上看了一些归并排求逆序对的文章,又看了一些树状数组的,觉得自己也写一篇试试看吧,然后本文大体也就讲个思路(没有例题),但是还是会有个程序框架的 好了下面是正文 归并排求逆序对 树状数组求逆序对 一. ...