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. SMB(Server Message Block) Protocal Research

    catalogue . 什么是SMB . 基础SMB协议 . SMB Clients and Servers 1. 什么是SMB 全世界有很多的客户端和服务端软件实现了SMB协议,全部windows工 ...

  2. JS异步加载的三种方案

    js加载的缺点:加载工具方法没必要阻塞文档,个别js加载会影响页面效率,一旦网速不好,那么整个网站将等待js加载而不进行后续渲染等工作. 有些工具方法需要按需加载,用到再加载,不用不加载. 一.def ...

  3. 第一节:.Net版基于WebSocket的聊天室样例

    一. 说在前面的话 该篇文章为实时通讯系列的第一节,基于WebSocket编写了一个简易版聊天样例,主要作用是为引出后面SignalR系列的用法及其强大方便之处,通过这个样例与后续的SignalR对比 ...

  4. 树链剖分详解(洛谷模板 P3384)

    洛谷·[模板]树链剖分 写在前面 首先,在学树链剖分之前最好先把 LCA.树形DP.DFS序 这三个知识点学了 emm还有必备的 链式前向星.线段树 也要先学了. 如果这三个知识点没掌握好的话,树链剖 ...

  5. Centos7 安装 scrapy

    Centos7 安装 scrapy ( *:此python版本为 2.7 ) 1.先安装 python (2.7) 在安装 scrapy 要先安装 python 和 pip,  链接:https:// ...

  6. 网络学习day01_计算机网络与分层思想

    2018.9.1 网络学习day01_计算机网络与分层思想 网络安全 计算机网络 分层思想    LAN与WAN   LAN(Local Area Network)--局域网   局域网(Local ...

  7. 设计模式九: 观察者模式(Observer Pattern)

    简介 观察者属于行为型模式的一种, 又叫发布-订阅模式. 如果一个对象的状态发生改变,依赖他的对象都将发生变化, 那么这种情况就适合使用观察者模式. 它包含两个术语,主题(Subject),观察者(O ...

  8. 菜鸟博客装饰分享CSS+HTML+js

    博客布局更改,各种百度,自己修改,搞成现在这样,有兴趣的朋友可以复制我下面的把自己博客覆盖了,然后在进行更改 不懂可加群问我:675678830 如果想开通打赏,用到js,需要在 下列中 博客侧边栏公 ...

  9. laravel 跨库执行原生 sql 语句

    执行原生 sql 返回结果集

  10. JS禁用浏览器退格键、禁止右键、禁止全选、复制、粘贴

    一.禁用浏览器退格键 摘抄自:https://www.cnblogs.com/wanggd/p/3164536.html 我们在真实的项目开发中经常会使用JS 对键盘上的一些按键进行禁用,常见的比如说 ...