欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

influxdb基本操作记录

程序员文章站 2024-01-30 16:39:40
...
1.概念
InfluxDB里存储的数据被称为时间序列数据,InfluxDB存储方式跟传统关系型数据库不同的是:
传统关系型数据库通过数据库+表+字段组织数据,InfluxDB通过指标、标签、字段组织数据,
时间戳是默认的索引列,标签跟字段其实就相当于关系型数据库中的字段,只不过标签会被索
引,而字段不会。
(1)database:数据库
(2)measurement:度量,相当于table;例如:cpu
(3)tags:标签,相当于field,会被索引;例如:host
(4)field:字段,不会被索引,例如:cpu_load


2.安装
sudo yum install -y influxdb


3.启动
sudo systemctl start influxdb  #启动
sudo systemctl enable influxdb  #配置开机启动


4.防火墙
firewall-cmd --state
firewall-cmd --add-port=8086/tcp --permanent  #开放端口
firewall-cmd --reload   #重载防火墙配置


5.操作
(1)进入influxdb
语法:$ influx
(2)插入
语法:INSERT cpu,host=192.168.1.1 load=0.1,usage=0.2
Insert的时候如果没有带时间戳,InfluxDB会自动添加本地的当前时间作为它的时间戳。
(3)查询
语法:SELECT * FROM "cpu"
语法:SELECT "host","load","usage" FROM "cpu"
语法:SELECT "host","load","usage" FROM "cpu" WHERE "host" = '192.168.1.1'
语法:SELECT "host","load","usage" FROM "cpu" WHERE "usage" > 0.1
(4)创建数据库
语法:CREATE DATABASE "db_name"
(5)显示所有数据库
语法:SHOW DATABASES
(6)删除数据库
语法:DROP DATABASE "db_name"
(7)使用数据库
语法:USE mydb
(8)显示该数据库中的表
语法:SHOW MEASUREMENTS
(9)删除表
语法:DROP MEASUREMENT "t_name"



参考:
https://ken.io/note/centos7-influxdb-install-introduction (CentOS 7下InfluxDB部署与使用入门)
if __name__ == '__main__':
    # https://github.com/influxdata/influxdb-python
    # pip install influxdb
    from influxdb import InfluxDBClient
    from datetime import datetime

    client = InfluxDBClient(host='xx.xx.xx.xx', port=8086, database='xxx')
    json_body = [{
        "measurement": "xxx",
        "tags": {
            "host": "server01",
            "region": "us-west"
        },
        "time": datetime.utcnow(),
        "fields": {
            "value": 0.64,
            'name': 'xxx',
            'age': 'xxx',
        }
    }]
    client.write_points(json_body)
    result = client.query('select * from xxx;')
    logger.info("Result: {0}".format(result))