Influxdb2.0 存储引擎体积过大排查解决过程记录

Publish: January 18, 2021 Category: 运维 No Comments

现状

device_traffic 表所在的bucket已经设置了 Retention Policy 为 3d仍然整体的占用体积超过20G。tsm存储引擎文件过大严重超出预期,影响其他业务。通过简单分析主要是tsm文件过大,也就是说确实是存储的内容过多。

排查过程

通过简单分析,总体的思路是找到存储引擎位置,逐一分析具体是哪个bucket体积过大,然后分析原因。
在存储目录通过命令

cd /usr/local/influxdb/engine/data
du -sh ./*

逐一排查具体是哪个buckt所占的目录体积较大。目前来看是 “/” bucket体积特别大。“/”主要是influxdb系统相关的数据,并不会影响业务。


阅读剩余部分...

Inflxudb2 任务使用简介之1.0版本中连续查询如何转换为任务

Publish: December 1, 2020 Category: 编程,运维 No Comments

influxdb1.x版本中支持的CQs(连续查询)在influxdb2.x中被task取代,全新定义了一套新的规则,我们暂且称之为任务规则。
如果你是从1.x版本中迁移数据,可以直接将1.x中的CQs直接转换成task来执行比如我之前的一段CQs:

create continuous query flow_rx_cq on multiwan 
begin  
    select sum(value) 
    into "multiwan_inf"."autogen"."flow_rx_cq_result" 
    from multiwan_raw_rx 
    group by time(30m), flashid,imei,imsi,iccid 
end

转换之后对应的是

from(bucket: "multiwan/")
  |> range(start: -3d)
  |> filter(fn: (r) => r._measurement == "multiwan_raw_rx")
  |> filter(fn: (r) => r._field == "value")
  |> aggregateWindow(every: 1m, fn: sum)
  |> set(key: "_measurement", as: "flow_rx_cq_result")
  |> to(
    org: "example-org",
    bucket: "multiwan/flow_rx_cq"
  )

上面的命令是如下意思:
在multiwan的bucket中,创建一个连续查询结果存放在multiwan_rx_cq_result中,数据来源是multiwan_raw_rx 每一分钟执行一次计算value字段的累计结果值。
在命令行中执行

使用raw Flux创建一个任务

influx task create --org my-org - # <return> to open stdin pipe


options task = {
  name: "flow_rx_task_result",
  every: 6
}

# <ctrl-d> to close the pipe and submit the command 按ctrl+d 关闭管道并提交

influxdb continuous query连续查询和retention policy保留策略入门和应用实战

Publish: October 29, 2020 Category: 编程,数据分析 No Comments

基本概念:

连续查询(Continuous Query)简称CQ,是influxdb中的一种查询类型,其会按照用户指定的查询规则,自动的、周期性的查询实时数据并执行指定运算,然后将结果保存到指定的表(Measurement)。

持续查询中用户可以指定的查询规则包括:查询时间间隔、单次查询时间范围、查询规则。InlfuxDB会根据用户指定的规则,定期的将过去一段时间内的原始数据以用户所期望的方式保存至用户新的结果表(Measurement)中,极大的减少了新表中的数据量。并且,新数据表中数据是跟用户业务高度贴近的方式存储,在新表中查询数据会提升查询速度,降低复杂度。

创建连续查询语法:

创建连续查询的基础语法如下

CREWATE CONTINUOUS QUERY <cq_name> ON <database_name>
BEGIN
    <cq_query>
END
  • cq_name: 连续查询名称
  • database_name: 连续查询所在数据库的名字
  • cq_query: 连续查询规则语句,该块的语法是 InfluxQL格式具体格式如下

    SELECT <functions[s]>
    INTO <destination_measurement>
    FROM <source_measurement>
    [WHERE <stuff>]
    GROUP BY time(<interval>)[,<tag_key[s]>]
    

其中SELECT、INTO、FROM、GROUP BY time()字句是必选设置项,具体参数如下

  • <functions[s]>: 要查询的字段以及数据处理的内置函数
  • <destinaion_measurement>: 用于保存查询结果的目标数据表,如果表不存在InfluxDB会自动创建。
  • <source_measurement>: 连续查询语句所要查询的数据表
  • <stuff>: 具体的查询条件,可选
  • <interval>: 连续查询语句执行的时间间隔和查询的时间范围,实际使用中要注意,不应在where条件中指定时间范围,即使指定也会被系统忽略。
  • <tag_key[s]>: 归类的标签字段,可选参数

阅读剩余部分...

influxdb1.8 开启用户名密码认证并授权

Publish: October 28, 2020 Category: 运维 No Comments

influxdb分为授权和认证两部分,认证简单理解就是:开启认证后,influxdb只会执行发送带有有效用户凭据的http请求,非法请求被禁止执行。
授权指的是对某个数据库是否有读或者写的权限。

本次用到的认证方式是最简单的认证方式,用户名密码认证方式。
默认情况下安装的influxdb是不开启认证的,因此在终端中直接执行如下命令就可以接入到influxdb的命令行控制。

#进入命令行
influx

#查看所有用户
show users;

#显示如下
root@influxdb2:/etc/influxdb# influx
Connected to http://localhost:8086 version 1.8.3
InfluxDB shell version: 1.8.3
> SHOW USERS;
user admin
---- -----

从结果中可以看到,没有任何用户。



阅读剩余部分...

InfluxDB Cloud和InfluxDB OSS的区别

Publish: October 26, 2020 Category: 运维 No Comments

InfluxDB Cloud 2.0与InfluxDB OSS 2.0兼容,在功能上也兼容。InfluxDB OSS 2.0和InfluxDB Cloud 2.0的主要区别是:

  • 用于指定目标收集数据的InfluxDB scraper在InfluxDB Cloud中不可用。
  • InfluxDB cloud实例目前仅限于一个组织。

阅读剩余部分...