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实例目前仅限于一个组织。

阅读剩余部分...

Ubuntu下安装时序数据库InfluxDB安装可视化工具Chronograf

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

InfluxBD所有下载预览

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

ubuntu下安装influxdb

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.8.3_amd64.deb 
dpkg -i influxdb_1.8.3_amd64.deb

启动和关闭

service influxdb startservice influxdb stop

默认情况下回占用8088和8086两个端口,很多人的服务器nginx可能回配置这个端口导致服务启动失败,注意下这种情况。

配置和数据目录

数据文件夹:/var/lib/influxdb

data            存放最终存储的数据,文件以.tsm结尾
meta            存放数据库元数据
wal             存放预写日志文件


配置文件: /etc/influxdb/influxdb.conf

阅读剩余部分...

PHP的InfluxDB客户端库使用

Publish: October 16, 2020 Category: 代码分享 No Comments

这是一个influxdb的1.新版本客户端
https://github.com/influxdata/influxdb-php
如果使用的是2.x版本,请使用找个客户端
https://github.com/influxdata/influxdb-client-php

概览

一个易于使用的库,用于将inflexdb与PHP结合使用。由 @thecodeassassin, @gianarb. 维护。inflexdbphp库是为了拥有python influxdb客户机的php端口而创建的。这样,不同编程语言之间将有一个通用的抽象库。

安装

可以使用composer完成安装:

$ composer require influxdb/influxdb-php

PHP 5.3 和 PHP 5.4 用户请zhu'yi
如果使用php5.3和php5.4,0.1.x版本仍然受支持(bug修复和新版本修复)。0.1.x分支将在php5.3和php5.4上运行,但不包含1.0.0版本所具有的所有特性,例如UDP支持。

开始使用

初始化一个新的客户端对象

$client = new InfluxDB\Client($host, $port);

这将创建一个新的客户机对象,您可以使用它来读写InfluxDB的点。还可以从DSN(数据源名称)创建客户端:

// 直接获取数据库句柄
$database = InfluxDB\Client::fromDSN(sprintf('influxdb://user:pass@%s:%s/%s', $host, $port, $dbname));

// 使用客户端检索其他数据库
$client = $database->getClient();

重要提示:当使用DSN时,不要忘记urlencode()password(和username),尤其是当它包含非字母数字字符时。不这样做可能会引发异常。





阅读剩余部分...