zoukankan      html  css  js  c++  java
  • InfluxDB入门

    InfluxDB是一个用于存储和分析时间序列数据的开源数据库

    时序数据是基于时间的一系列的数据

    时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能

    InfluxDB主要特性:

    • 内置HTTP接口,使用方便
    • 数据可以打标记,查让查询可以很灵活
    • 类SQL的查询语句
    • 安装管理很简单,并且读写数据很高效
    • 能够实时查询,数据在写入时被索引后就能够被立即查出

    1.安装 

      (1)windows下

      下载 https://portal.influxdata.com/downloads/

       选择

      解压

      启动服务端,打开命令窗口,到这个目录下,执行

    influxd

      启动客户端,打开命令窗口,到这个目录下,执行

    influx

      安装成功

      (2)Linux下

      下载

    wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7_linux_amd64.tar.gz

      解压

    tar xvfz influxdb-1.7.7_linux_amd64.tar.gz 

      重命名

    mv influxdb-1.7.7-1 influxdb

      influxdb/usr/bin/influxd服务端

    ./influxd

      全局使用

    ln -s /www/influxdb/usr/bin/influxd /usr/local/bin/influxd

      使用

    influxd

      influxdb/usr/bin/influxd客户端命令

    ln -s /www/influxdb/usr/bin/influx /usr/local/bin/influx

      使用

    influx

    > create database mydb
    > show databases
    name: databases
    name
    ----
    _internal
    mydb

    2.简单使用

    (1)名词介绍:

    database:数据库

    measurement:数据库中的表

    points:表里面的一行数据

    Point由时间戳(time)、数据(field)和标签(tags)组成

    time:每条数据记录的时间,也是数据库自动生成的主索引

    fields:各种记录的值

    tags:各种有索引的属性 

    (2)数据库基本操作

    #创建数据库
    > create database "test"
    #显示所有数据库
    > show databases
    name: databases
    name
    ----
    _internal
    test
    #打开数据库
    > use test
    Using database test
    #显示该数据库中所有的表
    > show measurements
    #创建表,直接在插入数据的时候指定表名test
    > insert test,host=127.0.0.1,monitor_name=test count=1
    > show measurements
    name: measurements
    name
    ----
    test
    #删除表test
    > drop measurement "test"
    > show measurements
    #删除数据库test
    > drop database test
    > show databases
    name: databases
    name
    ----
    _internal

    说明:

      insert test,host=127.0.0.1,monitor_name=test count=1

      test:表名

      host=127.0.0.1,monitor_name=test:tag

      count=1:field

    插入与查询数据

    > create database test
    > show databases
    name: databases
    name
    ----
    _internal
    test
    > show measurements
    > insert test,host=127.0.0.1,monitor_name=test count=1
    > show measurements
    name: measurements
    name
    ----
    test
    > select * from test order by time desc
    name: test
    time                count host      monitor_name
    ----                ----- ----      ------------
    1561957302455301318 1     127.0.0.1 test
    > insert test,host=127.0.0.1,monitor_name=test count=1
    > select * from test order by time desc
    name: test
    time                count host      monitor_name
    ----                ----- ----      ------------
    1561957336177679133 1     127.0.0.1 test
    1561957302455301318 1     127.0.0.1 test

    (3)数据保存策略(Retention Policies):

      influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据

      查看当前数据库Retention Policies

    > show retention policies on "test"
    name    duration shardGroupDuration replicaN default
    ----    -------- ------------------ -------- -------
    autogen 0s       168h0m0s           1        true

      创建新的Retention Policies

    > create retention policy "rp_name" on "test" duration 1w replication 1 default
    > show retention policies on "test"
    name    duration shardGroupDuration replicaN default
    ----    -------- ------------------ -------- -------
    autogen 0s       168h0m0s           1        false
    rp_name 168h0m0s 24h0m0s            1        true

      说明:

    rp_name:策略名

    test:数据库名

    1w:保存1周,1周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期)

    replication 1:副本个数,一般为1就可以了

    default:设置为默认策略

      修改Retention Policies

    > alter retention policy "rp_name" on "test" duration 5d default
    > show retention policies on "test"
    name    duration shardGroupDuration replicaN default
    ----    -------- ------------------ -------- -------
    autogen 0s       168h0m0s           1        false
    rp_name 120h0m0s 24h0m0s            1        true

      删除Retention Policies

    > drop retention policy "rp_name" on "test"
    > show retention policies on "test"
    name    duration shardGroupDuration replicaN default
    ----    -------- ------------------ -------- -------
    autogen 0s       168h0m0s           1        false

     (4)连续查询(Continous Queries)

      InfluxDB的数据保留策略,数据超过保存策略里指定的时间之后,就会被删除。但是如果我们不想完全将这些数据删除掉,就需要连续查询(Continuous Queries)的帮助了。

      连续查询主要用在将数据归档,以降低系统空间的占用率,主要是以降低精度为代价。

      连续查询是在数据库中自动定时启动的一组语句,语句中必须包含 SELECT 关键词和 GROUP BY time() 关键词。

      InfluxDB会将查询结果放在指定的数据表中

      查看Continous Queries

    > show continuous queries
    name: _internal
    name query
    ---- -----
    
    name: test
    name query
    ---- -----

      创建Continous Queries

    > show continuous queries
    name: _internal
    name query
    ---- -----
    
    name: test
    name query
    ---- -----
    > create continuous query cq_name on test begin select sum(count) into test1 from test group by time(10m) end
    > show continuous queries
    
    name: _internal
    name query
    ---- -----
    
    name: test
    name    query
    ----    -----
    cq_name CREATE CONTINUOUS QUERY cq_name ON test BEGIN SELECT sum(count) INTO test.rp_name.test1 FROM test.rp_name.test GROUP BY time(10m) END

      删除Continous Queries

    > drop continuous query cq_name on test
    > show continuous queries
    name: _internal
    name query
    ---- -----
    
    name: test
    name query
    ---- -----

    在InfluxDB中,将连续查询与数据存储策略一起使用会达到最好的效果

    (5)用户管理

    > show users
    user admin
    ---- -----
    > create user "abc" with password  '123'
    > show users
    user admin
    ---- -----
    abc  false
    > drop user "abc"
    > show users
    user admin
    ---- -----

    注:

      如果启动失败,请查看是否是端口被占用,默认端口为8088

  • 相关阅读:
    Oracle删除.dbf文件报错
    Java 7 新的 try-with-resources 语句,自动资源释放
    模式对话框提交form之后总是打开新的页面
    MyEclipse更改项目的发布目录
    IntelliJ IDEA 更换发布目录
    java.sql.SQLException: ORA-00942: 表或视图不存在
    编码那点事
    配置nginx实现windows/iis应用负载均衡
    MSMQ消息队列
    .NET 分布式技术比较
  • 原文地址:https://www.cnblogs.com/baby123/p/11084219.html
Copyright © 2011-2022 走看看