zoukankan      html  css  js  c++  java
  • influx时序数据库

    influx时序数据库

     

    InfluxDB简介:

    1. InfluxDB 是一个开源分布式时序、事件和指标数据库。使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。 它有三大特性:

      1. Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等);

      2. Metrics(度量):你可以实时对大量数据进行计算;

      3. Eevents(事件):它支持任意的事件数据。

        官网:https://influxdata.com/

    登录

     influx -port 8086

    目录结构

    Linux版本的数据文件位于/var/lib/influxdb/,Windows位于C:/用户/.influxd/下。主要有三个目录,分别是 meta, wal 以及 data 。meta 用于存储数据库的一些元数据,meta.db 文件。wal 目录存放预写日志文件,以 .wal 结尾。data 目录存放实际存储的数据文件,以 .tsm 结尾。整体结构如下所示:

     influxdb/
      ├── data/
      |   └── [DB name]/
      |       └── [retention policy]/
      |       |   └── [shard group id]/
      |       |       ├── 000000001-0000000001.tsm
      |       |       └── fields.idx
      |       |   └── index/
      |       |     └── 0/
      |       |         └── L0-000001.tsl
      |       |         └── MANIFEST
      |       |     └── .../
      |       |     └── 7/
      |       └── _series
      |           └──0/
      |             └──0000
      |           └──.../
      |           └──7/
      ├── meta/
      |   └── meta.db
      └── wal/
          └── [DB Name]/
              └── [retention policy]/
                  └── [shard group id]/
                      └── _00001.wal
     

    常用命令

     -- 查看所有的数据库
     show databases;
     -- 使用特定的数据库
     use database_name;
     -- 查看所有的measurement
     show measurements;
     -- 查询10条数据
     select * from measurement_name limit 10;
     -- 数据中的时间字段默认显示的是一个纳秒时间戳,改成可读格式
     precision rfc3339; -- 之后再查询,时间就是rfc3339标准格式
     -- 或可以在连接数据库的时候,直接带该参数
     influx -precision rfc3339
     -- 查看一个measurement中所有的tag key
     show tag keys
     -- 查看一个measurement中所有的field key
     show field keys
     -- 查看一个measurement中所有的保存策略(可以有多个,一个标识为default)
     show retention policies;

     

    InfluxDB数据保留策略(Retention Policies)

    一、InfluxDB 数据保留策略 说明

    InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。

    一个数据库可以有多个保留策略,但每个策略必须是独一无二的。

    二、InfluxDB 数据保留策略 目的

    InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。

    因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据,从而更高效的处理数据。

    三、InfluxDB 数据保留策略 操作

    1)查询策略

    可以通过如下语句查看数据库的现有策略:

     > SHOW RETENTION POLICIES ON jmeter
     name             duration shardGroupDuration replicaN default
     ----              --------  ------------------ -------- -------
     autogen           4800h0m0s 168h0m0s           1        true
     strategy_20200117 4320h0m0s 168h0m0s           1        false

    可以看到,jmeter有两个策略,各字段的含义如下:

    name--策略名称

    duration--持续时间,0s代表无限制

    shardGroupDuration--shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。

    replicaN--全称是REPLICATION,副本个数

    default--是否是默认策略

    2)新建策略

     > CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
     > SHOW RETENTION POLICIES ON telegraf
     name   duration   shardGroupDuration   replicaN   default
     default   0       168h0m0s       1       false
     2_hours   2h0m0s       1h0m0s           1       true

    通过上面的语句可以添加策略,本例在 telegraf 库添加了一个2小时的策略,名字叫做 2_hours, duration为2小时,副本为1,设置为默认策略。

    因为名为default的策略不再是默认策略,因此,在查询使用default策略的表时要显式的加上策略名 “default”。

    复制代码

     > select * from "default".cpu limit 2
     name: cpu
     ---------
     time           cpu       host               host_id   usage_guest   usage_guest_nice   usage_idle   usage_iowait       usage_irq   usage_nice       usage_softirq   usage_steal   usage_system       usage_user
     1467884670000000000   cpu-total   ResourcePool-0246-billing07       0       0           99.79994164175388   0           0       0.06251823446523729   0       0       0.12920435125646068   0.008335764603451727
     1467884670000000000   cpu9       billing07               0       0           97.79338014069532   1.8054162487519367   0       0           0       0       0.10030090272883943   0.3009027081135398

    复制代码

     

    3)修改策略

    修改策略使用如下语句修改

     > ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
     > show retention POLICIES on telegraf
     name   duration   shardGroupDuration   replicaN   default
     default   0       168h0m0s       1       false
     2_hours   4h0m0s       1h0m0s           1       true

    可以看到,修改后的策略发生了变化。

    4)删除策略

    InfluxDB中策略的删除操作如下所示:

     > drop retention POLICY "2_hours" ON "telegraf"
     > show retention POLICIES on telegraf
     name   duration   shardGroupDuration   replicaN   default
     default   0       168h0m0s       1       false

     

    可以看到,名为2_hours的策略已经被删除了。

    四、其他说明

    策略这个关键词“POLICY”在使用是应该大写,小写应该会出错。

    当一个表使用的策略不是默认策略时,在进行操作时一定要显式的指定策略名称,否则会出现错误。

     

    https://www.cnblogs.com/byron-123/p/10432241.html

  • 相关阅读:
    收音机 德生
    Ubuntu14.04+安卓系统4.3+JDK6编译源码
    springboot2.0+redis实现消息队列+redis做缓存+mysql
    万能命令
    分享个强大的抓包工具
    Vue之Mustache语法
    Vue之vbind基本使用
    Centos7.3环境下安装最新版的Python3.8.4
    Vue之vonce、vhtml、vtext、vpre、vcloak的基本使用
    Centos7.3安装最新版本git
  • 原文地址:https://www.cnblogs.com/Oxyy/p/14692029.html
Copyright © 2011-2022 走看看