詳解使用python操作InfluxDB方法

來源:互聯網
上載者:User
環境: CentOS6.5_x64
InfluxDB版本:1.1.0
Python版本 : 2.6

準備工作

  • 啟動伺服器

  執行如下命令:

  service influxdb start

  樣本如下:

[root@localhost ~]# service influxdb startStarting influxdb...influxdb process was started [ OK ][root@localhost ~]#

  • 安裝influxdb-python

github地址:https://github.com/influxdata/influxdb-python

安裝pip :

yum install python-pip

安裝influxdb-python :

pip install influxdb

基本操作

使用InfluxDBClient類操作資料庫,樣本如下:

from influxdb import InfluxDBClientclient = InfluxDBClient('localhost', 8086, 'root', '', '') # 初始化

  • 顯示已存在的所有資料庫

  使用get_list_database函數,樣本如下:

  print client.get_list_database() # 顯示所有資料庫名稱

  • 建立新資料庫

  使用create_database函數,樣本如下:

  client.create_database('testdb') # 建立資料庫

  • 刪除資料庫

  使用drop_database函數,樣本如下:

  client.drop_database('testdb') # 刪除資料庫

資料庫操作完整樣本如下:

#! /usr/bin/env python#-*- coding:utf-8 -*-from influxdb import InfluxDBClientclient = 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() # 顯示所有資料庫名稱

表操作

InfluxDBClient中要指定串連的資料庫,樣本如下:

client = InfluxDBClient('localhost', 8086, 'root', '', 'testdb') # 初始化(指定要操作的資料庫)

  • 顯示指定資料庫中已存在的表

  可以通過influxql語句實現,樣本如下:

result = client.query('show measurements;') # 顯示資料庫中的表print("Result: {0}".format(result))

  • 建立新表並添加資料

InfluxDB沒有提供單獨的建表語句,可以通過並添加資料的方式建表,樣本如下:

json_body = [    {        "measurement": "students",        "tags": {            "stuid": "s123"        },        #"time": "2017-03-12T22:00:00Z",        "fields": {            "score": 89        }    }]client = InfluxDBClient('localhost', 8086, 'root', '', 'testdb') # 初始化(指定要操作的資料庫)client.write_points(json_body) # 寫入資料,同時建立表

  • 刪除表

可以通過influxql語句實現,樣本如下:

client.query("drop measurement students") # 刪除表

資料表操作完整樣本如下:

#! /usr/bin/env python#-*- coding:utf-8 -*-from influxdb import InfluxDBClientjson_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('localhost', 8086, 'root', '', 'testdb') # 初始化(指定要操作的資料庫)showDBNames(client)client.write_points(json_body) # 寫入資料,同時建立表showDBNames(client)client.query("drop measurement students") # 刪除表showDBNames(client)

資料操作

InfluxDBClient中要指定串連的資料庫,樣本如下:

client = InfluxDBClient('localhost', 8086, 'root', '', 'testdb') # 初始化(指定要操作的資料庫)

  • 添加

可以通過write_points實現,樣本如下:

json_body = [    {        "measurement": "students",        "tags": {            "stuid": "s123"        },        #"time": "2017-03-12T22:00:00Z",        "fields": {            "score": 89        }    }]client.write_points(json_body) # 寫入資料

  • 查詢

可以通過influxql語句實現,樣本如下:

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

  • 更新

tags 和 timestamp相同時資料會執行覆蓋操作,相當於InfluxDB的更新操作。

  • 刪除

使用influxql語句實現,delete文法,樣本如下:

client.query('delete from students;') # 刪除資料

資料操作完整樣本如下:

#! /usr/bin/env python#-*- coding:utf-8 -*-from influxdb import InfluxDBClientjson_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('delete from students;') # 刪除資料showDatas(client)  # 查詢資料

好,就這些了,希望對你有協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.