Influxdb时序数据库使用的部分坑

InfluxDB 是一个开源时列数据库,其针对运营监控、应用程序指标、物联网传感器数据和实时分析等领域中的时间序列数据在速度、高可用存储和检索方面进行了优化。具体的表结构和一些数据存储与mysql的区别其它帖子有许多,在这不在介绍,本文主要记录自己在项目上踩的一些坑,其具体介绍可以参照官网官网链接

1.安装

安装具体按照官网介绍很详细,附上官网链接:influxdb在不同平台上的安装介绍

2.使用本地客户端连接远程服务(坑1)

在Windows环境,利用客户端连接线上数据库进行操作时,直接运行 influx.exe时,默认直接连接本地,如下图:Influxdb时序数据库使用的部分坑_第1张图片
直运行默认接连接本地库
Influxdb时序数据库使用的部分坑_第2张图片
经过一番折腾,想要使用自带的客户端连接远程库,在该文件所在路径下执行:

.\influx.exe  -username <username> -password <password> -host <主机host> -port <port>

即可连上远程库,如下图:
连上远程服务

3.建指定保留策略(坑2)

在数据存储时需要指定储存策略和过期策略具体参考策略官网介绍链接,查看策略:

show retention policies on "test_tag"

显示结果:
显示策略
创建策略:

create retention policy "rp_name" on "db_name" duration 3w replication 1 default

说明:

  • rp_name:策略名;
  • db_name:具体的数据库名;
  • 3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天), w(星期);
  • replication 1:副本个数,一般为1就可以了;
  • default:设置为默认策略

4.代码中添加tag坑

Map<String, String> tags = new HashMap<>();
tags.put("id", data.getDeviceId());
tags.put("type", data.getDeviceLogType());
Point p = Point.measurementByPOJO(data.getClass()).tag(tags).addFieldsFromPOJO(data).build();

添加tag时,id字段可以不与deviceId同 type不与 LogType同,相同会自动变为别名。 并且要使用.tag(tags)方法

5.查询中‘’坑

查询索引时要使用单引号。参考官网:查询语法官网链接
Single quote tag values in the WHERE clause. Queries with unquoted tag values or double quoted tag values will not return any data and, in most cases, will not return an error.

以上就是在使用过程中遇到的坑,在使用过程中多看官网。

你可能感兴趣的:(BigData)