美文网首页
InfluxDB 使用笔记

InfluxDB 使用笔记

作者: 走在成长的道路上 | 来源:发表于2019-02-27 11:56 被阅读0次

    环境安装

    这里使用的是 centos 7 为系统基础环境, 安装 influxdb 1.7.2

    # cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
    [influxdb]
    name = InfluxDB Repository - RHEL \$releasever
    baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
    enabled = 1
    gpgcheck = 1
    gpgkey = https://repos.influxdata.com/influxdb.key
    EOF
    # yum install influxdb
    # systemctl start influxdb
    # systemctl enable influxdb
    

    安装完之后,默认无用户,因此可以直接使用如下命令进行查看:

    $ influx -precision rfc3339
    Connected to http://localhost:8086 version 1.7.4
    InfluxDB shell version: 1.7.4
    Enter an InfluxQL query
    > 
    

    默认链接本地 8086 端口

    用户权限

    # 显示用户
    show users
    
    # 创建用户
    create user "developer" with password '123456'
    
    # 创建管理员权限的用户
    create user "admin" with password 'admin123' with all privileges
    
    # 给普通用户授予管理员权限
    GRANT ALL PRIVILEGES TO "developer"
    
    # 给用户指定数据库操作权限
    GRANT [READ,WRITE,ALL] ON <database_name> TO <username>
    
    GRANT ALL ON test TO "developer"
    
    # 撤回用户的管理员权限
    REVOKE ALL PRIVILEGES FROM "developer"
    
    # 查看用户权限
    show grants for "developer"
    
    # 修改密码
    set password for "developer" = '123456789'
    
    # 删除用户
    DROP USER "developer"
    

    数据操作

    启动链接到远程 influxdb 数据库,进行如下操作即可:

    # influx -host 172.xxx.xxx.xxx -username admin -password 'admin123' -precision rfc3339
    Connected to http://localhost:8086 version 1.7.4
    InfluxDB shell version: 1.7.4
    Enter an InfluxQL query
    # 显示所有数据库
    > show databases
    # 创建数据库
    > create database <数据库名>
    # 使用数据库
    > use <数据库名>
    # 显示所有数据表
    > SHOW measurements
    # 查看当前数据库所有表的字段
    > SHOW FIELD KEYS
    # 查看数据
    >  SHOW series from <表> 
    # 删除 key 
    > DROP SERIES FROM <表名> WHERE tag_key='<tag_value>'
    # 删除表内数据,表也不存在咯
    > DELETE FROM <表名>
    # 删除表
    

    1. 数据插入

    influxdb 中表结构可以不用建立,通过 insert 即可自动构建表结构。具体语法如下:

    insert <measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [timestamp]
    

    group by 聚合条件中仅仅能对 tag 字段进行操作。tag 字段可以理解为索引操作

    • 插入多个 tag
    > insert cpu,host=192.168.1.1,service="A" used=0.23
    > insert cpu,host=192.168.1.1,service="B" used=0.33
    > insert cpu,host=192.168.1.1,service="C" used=0.35
    > insert cpu,host=192.168.1.1,service="B" used=0.34
    

    更新表结构时,直接插入新格式的数据即可

    • 查询最新/旧数据
    # 查询单服务最新的 cpu 使用数据
    > select last(used),* from cpu group by service
    # 查询单服务最旧的 cpu 使用数据
    > select first(used),* from cpu group by service
    

    2. 存储策略

    存储策略,InfluxDB 会自动清理数据,可以设置数据保留的时间,默认会创建存储策略 autogen (保留时间为永久),之后用户可以自己设置,例如保留最近 30 天的数据。

    # 查看数据保持策略  
    > show retention policies on "数据库名称"
    name    duration shardGroupDuration replicaN default
    ----    -------- ------------------ -------- -------
    autogen 0s       168h0m0s           1        true
    

    存储策略有点类似于分区数据块,修改了策略,新策略里不会有旧策略的数据。
    要想查看旧策略下的数据,需要在 measurement 前加上策略名称。

    # 查看默认策略中的数据
    select * from "autogen".cpu
    # 创建新的策略
    create retention policy "rp_day_30" on "test" duration 30d replication 1 default
    # 修改策略
    alter retention policy "rp_day_30" on "test" duration 20d replication 1 default
    # 删除策略
    drop retention policy "rp_day_30" on "test"
    

    相关文章

      网友评论

          本文标题:InfluxDB 使用笔记

          本文链接:https://www.haomeiwen.com/subject/qjuxuqtx.html