Explication détaillée du fonctionnement d'InfluxDB en utilisant Python

高洛峰
Libérer: 2017-03-14 15:28:01
original
11374 Les gens l'ont consulté

Environnement : CentOS6.5_x64
Version InfluxDB : 1.1.0
Python version : 2.6

Préparation

  • Démarrez le serveur

Exécutez la commande suivante :

  service influxdb start
Copier après la connexion

L'exemple est le suivant :

[root@localhost ~]# service influxdb start
Starting influxdb...
influxdb process was started [ OK ]
[root@localhost ~]#
Copier après la connexion

gitadresse du hub : https : //github.com/influxdata/influxdb-python

Installer pip :

yum install python-pip
Copier après la connexion

Installer influxdb-python :

pip install influxdb
Copier après la connexion

Opérations de base

Utilisez la classe InfluxDBClient pour faire fonctionner la base de données, l'exemple est le suivant :

from influxdb import InfluxDBClient
client = InfluxDBClient('localhost', 8086, 'root', '', '') # 初始化
Copier après la connexion

  • Afficher toutes les bases de données existantes

Utiliser la fonction get_list_database, l'exemple est le suivant :

 print client.get_list_database() # Afficher tous les noms de bases de données

  • Créer une nouvelle base de données

Utilisez la fonction create_database, l'exemple est le suivant :

client.create_database('testdb') # Créer une base de données

Utiliser la fonction drop_database, l'exemple est le suivant :

client.drop_database( 'testdb') # Supprimer la base de données

Opération de base de donnéesL'exemple complet est le suivant :

#! /usr/bin/env python
#-*- coding:utf-8 -*-

from influxdb import InfluxDBClient
client = InfluxDBClient('localhost', 8086, 'root', '', '') # 初始化
print client.get_list_database() # 显示所有数据库名称
client.create_database('testdb') # 创建数据库
print client.get_list_database() # 显示所有数据库名称
client.drop_database('testdb') # 删除数据库
print client.get_list_database() # 显示所有数据库名称
Copier après la connexion

Opération de table

La base de données à connecter est spécifiée dans InfluxDBClient. Un exemple est le suivant :

client = InfluxDBClient('localhost', 8086, 'root', '', 'testdb') # 初始化(指定要操作的数据库)
Copier après la connexion
Copier après la connexion

<. 🎜>
  • Afficher les tables existantes dans la base de données spécifiée

Cela peut être réalisé via l'instruction influxql L'exemple est le suivant :

<🎜. >

result = client.query(&#39;show measurements;&#39;) # 显示数据库中的表print("Result: {0}".format(result))
Copier après la connexion

    Créer une nouvelle table et ajouter des données
  • InfluxDB ne fournit pas d'instruction de création de table distincte. Vous pouvez. créer un tableau en ajoutant des données L'exemple est le suivant :

json_body = [
    {
        "measurement": "students",
        "tags": {
            "stuid": "s123"
        },
        #"time": "2017-03-12T22:00:00Z",
        "fields": {
            "score": 89
        }
    }
]

client = InfluxDBClient(&#39;localhost&#39;, 8086, &#39;root&#39;, &#39;&#39;, &#39;testdb&#39;) # 初始化(指定要操作的数据库)
client.write_points(json_body) # 写入数据,同时创建表
Copier après la connexion

    Supprimer un tableau
  • peut être réalisé via l'instruction influxql, l'exemple est le suivant :

client.query("drop measurement students") # 删除表
Copier après la connexion

L'exemple complet d'opération de table de données

est la suivante :

#! /usr/bin/env python
#-*- coding:utf-8 -*-

from influxdb import InfluxDBClient

json_body = [
    {
        "measurement": "students",
        "tags": {
            "stuid": "s123"
        },
        #"time": "2017-03-12T22:00:00Z",
        "fields": {
            "score": 89
        }
    }
]

def showDBNames(client):
        result = client.query('show measurements;') # 显示数据库中的表
        print("Result: {0}".format(result))

client = InfluxDBClient(&#39;localhost&#39;, 8086, &#39;root&#39;, &#39;&#39;, &#39;testdb&#39;) # 初始化(指定要操作的数据库)
showDBNames(client)
client.write_points(json_body) # 写入数据,同时创建表
showDBNames(client)
client.query("drop measurement students") # 删除表
showDBNames(client)
Copier après la connexion

Opération sur les données

La base de données à connecter est spécifiée dans InfluxDBClient. L'exemple est le suivant :

client = InfluxDBClient(&#39;localhost&#39;, 8086, &#39;root&#39;, &#39;&#39;, &#39;testdb&#39;) # 初始化(指定要操作的数据库)
Copier après la connexion
Copier après la connexion

    L'ajout de
  • peut être réalisé via write_points, l'exemple est le suivant suit :

json_body = [
    {
        "measurement": "students",
        "tags": {
            "stuid": "s123"
        },
        #"time": "2017-03-12T22:00:00Z",
        "fields": {
            "score": 89
        }
    }
]

client.write_points(json_body) # 写入数据
Copier après la connexion

  • La requête

  • peut être implémenté via l'instruction influxql, les exemples sont les suivants :

result = client.query(&#39;select * from students;&#39;)    
print("Result: {0}".format(result))
Copier après la connexion

  • Mise à jour

  • tags Lorsqu'il s'agit de la même chose que l'horodatage, les données effectueront une opération d'écrasement, ce qui équivaut à l'opération de mise à jour d'InfluxDB.

    Delete
  • est implémenté à l'aide de l'instruction influxql, la syntaxe
delete

, l'exemple est le suivant :

client.query(&#39;delete from students;&#39;) # 删除数据
Copier après la connexion

Un exemple complet d'opération de données est le suivant :

#! /usr/bin/env python
#-*- coding:utf-8 -*-

from influxdb import InfluxDBClient

json_body = [
    {
        "measurement": "students",
        "tags": {
            "stuid": "s123"
        },
        #"time": "2017-03-12T22:00:00Z",
        "fields": {
            "score": 89
        }
    }
]

def showDatas(client):
        result = client.query('select * from students;')
        print("Result: {0}".format(result))

client = InfluxDBClient('localhost', 8086, 'root', '', 'testdb') # 初始化
client.write_points(json_body) # 写入数据
showDatas(client)  # 查询数据
client.query(&#39;delete from students;&#39;) # 删除数据
showDatas(client)  # 查询数据
Copier après la connexion

D'accord, c'est tout, j'espère que c'est utile pour vous.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal