docker部署influxdb(influxdb的基本用法介绍)

Influxdb安装

1 拉取镜像

首先确认是否安装Docker,并执行docker ps。看docker服务是否启动。

# 查看启动中的docker容器
docker ps

# 可以使用该命令启动docker服务
systemctl start docker

docker pull 拉取镜像,influxdb以1.6.3版本为例

# 版本号可以自由变更
docker pull influxdb:1.6.3

在这里插入图片描述
docker images可以看到拉取的镜像包

2 启动influxdb

# 启动influxdb容器
docker run -d -p 8086:8086 --name influxdb influxdb:1.6.3

# 进入容器
docker exec -it influxdb bash

# 启动influx客户端
influx

最终界面如图,可以在其中使用查询等操作了。
在这里插入图片描述

Influxdb使用

3配置文件地址

# 容器部署的influxdb的配置文件地址为:
vi /etc/influxdb/influxdb.conf

4 基本操作

库 database

-- 库操作
- show databases;    		查看所有库
- create databases test;	创建一个库
- drop database test;		删除一个库
- use test;					选中一个库
- clear databases|db;		清除当前上下文的库

表 measurement

注意:表不能显示创建,插入数据时自动插入表中数据

-- 表操作
- show measurements;		查看所有表
- drop measurement "test";	删除一个表

插入

-- 基本语法
- insert into <retention policy> measurement,tagKey=tagValue fieldKey=fieldValue timestamp
- 如:
  insert user,name=blr,phone=100,id=20,email="111@163.com"
  从上面的输出,简单小结一下插入的语句写法:
  1)insert + measurement + "," + tag=value,tag=value + + field=value,field=value
  2)tag与tag之间用逗号分隔;field与field之间用逗号分隔
  3)tag与field之间用空格分隔
  4)tag都是string类型,不需要引号将value包围
  5)field如果是string类型,需要加引号

查询

  • 测试数据
insert test,person_name=blr age=23,name="xiaochen",address="beijing";
  • 普通查询
0、查询所有
- select * from test;

1、查询所有的tag和field
- select * from test where person_name='blr'
- select * from test where "name"='xiaochen'  #name为influxdb关键字需要加入双引号区分

2、从单个measurement查询所有的field,不查tag
- select *::field from test

3、从单个measurement查询特定的field和tag。  #注意:查询时至少要带上一个field key,如果只查询tag字段的话是查不到数据的
- select * from test,sutdent 

4、同时查询多张表  #注意:返回是将每张表不同记录返回
- select * from test,student

5、模糊查询
# 前缀匹配,相当于mysql的like ‘%blr’
- select * from test where person_name=~/blr$/

# 前后匹配,相当于mysql的like ‘%abc%’
- select * from test where person_name=~/blr/
  • 聚类函数
    • 注意事项:聚合函数只能对field字段进行操作,不能对tag字段操作,否则查询出来的列表是空的
0、如果我就要对tag字段进行聚合函数计算怎么办?那我们可以通过子查询来实现:
- select distinct(person_name) from (select * from test);

1、count()统计
# 查询某个field字段中的非空值数量
- select count(age) from test;

2、DISTINCT()去重
- select distinct(age) from test;

3、MEAN()求平均值,这个平均值必须是数字类型
- select mean(age) from test;

4、MEDIAN() 求中位数,从单个字段(field)中的排序值返回中间值
# 中位数统计学中的专有名词,是按顺序排列的一组数据中位于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。

5、SPREAD()返回字段的最小值和最大值之间的差值。数据的类型必须是长整型或float64
- select spread(age) from test;

6、SUM()求和
- select sum(age) from test;

7、BOTTOM()返回一个字段中最小的N个值。字段类型必须是长整型或float64类型。
- select bottom(age,3) from test;

8、FIRST()返回一个字段中时间最早取值
- select first(age) from test;

9、LAST()返回一个字段中时间最晚取值
- select last(age) from test;

10、MAX()求最大值
- select max(age) from test
  • 分组聚合
1、基于时间分组
# 查询所有数据,并对其划分为每200毫秒一组
select count(age) from test group by time(200ms)
  • 分页查询
LIMIT 用法有2种:
	1. limit 10:查询前10条数据
	2. limit size offset N:size表示每页 大小,N表示第几条记录开始查询
	
# 查询前10条数据
- select * from test limit 10
# 分页,pageSize 为每页显示大小,pageIndex 为查询的页数
pageIndex = 1
pageSize = 10
- select * from test limit pageSize offset (pageIndex-1)* pageSize
  • 排序
#升序
select * from test order by time asc
#降序
select * from test order by time desc
  • in 查询
# 关系型数据库可以用in关键字来查询多个值,就像这样
select * from test where person_name in ('张三','李四','王五');
# 但是时序数据库时没有 in 查询的,虽然in是保留的关键字,但是依然有办法解决,还记得刚刚的模糊查询吗?没错就是用它来解决这个问题

# 同时匹配123和thing,因为前后都接上了 ^ 和 $ ,所以这已经不是模糊查询,而是完全匹配才会查询出来的
select * from test where person_name=~/^123$|^thing$/

保留策略

​ influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。(数据库过期策略至少一个小 时),默认保存策略为7天(168小时)

  • 查看数据保存策略
# 查看某个库的策略
show retention policies on "数据库名称"
# 查看当前库下的策略,需要先用 use database 命令指定库名
show retention policies
  • 查询结果如下
> SHOW RETENTION POLICIES ON telegraf
name	duration	shardGroupDuraion	replicaN	default
default		0			168h0m0s			1		true

name:策略名称

duration:数据保存时间,超过这个时间自动删除,0表示永久保存

shardGroupDuration:shardGroup的存储时间,shardGroup是InfluxDB的一个基本存储结构,在这个时间内插入的数据查询模块,数据存放大于168小时查询速度降低;

replicaN:全称是REPLICATION,副本个数

default:是否默认策略

  • 创建数据保留策略
#1. 创建h(小时),d(天),w(星期)
- CREATE RETENTION POLICY "保留策略名称" ON "数据库名称" DURATION "该保留策略对应的数据过期时间" REPLICATION "复制因子,开源的InfluxDB单机环境永远为1" SHARD DURATION "分片组的默认时常" DEFAULT
- create retention policy "testpolicy" on muInfluxdb duration 72h replication1 SHARD DURATION 1h default 
# 2.修改保留策略
- alter retention policy "保留策略名称" on "数据库名称" duration 1d
# 修改默认保留策略
- alter retention policy "保留策略名称" on "数据库名称" default

# 3.删除保留策略
- drop retention policy "保留策略名称" on "数据库名称"

5 权限配置

开启权限

默认情况下 InfluxDB 是没有开启配置权限的,即默认情况下所有客户端可直接连接操作 InfluxDB 服务进行相关操作,但是这在生产环境中是不可取的因此需要对 influxdb 加入权限相关配置。

1 创建用户信息

  • 首先通过客户端连接到服务,查看当前用户
- show users
  • 创建用户

    • 创建超级管理员用户

      - 语法:  create user "用户名" with password '密码' with all privileges;
      - 如:	create user "root" with password 'root' with all privileges
      
    • 创建指定库只读用户

      - create user "用户名" with password '密码'
      - grant read on 库名 to "用户名"
      
  • 删除用户

drop user "用户名"
  • 30
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了使用Docker部署InfluxDB,您可以按照以下步骤进行操作: 1. 首先,您需要在Docker上运行容器来初始化InfluxDB。您可以使用以下命令来创建和运行InfluxDB容器: ``` docker run -d -p 8086:8086 --name influxdb1.8 -v /data/docker/influxdb:/var/lib/influxdb --restart=always influxdb:1.8 ``` 这个命令将创建一个名为influxdb1.8的容器,并将InfluxDB运行在8086端口上。同时,使用`-v`参数将InfluxDB的数据存储在宿主机的`/data/docker/influxdb`目录中。 2. 然后,您可以进入InfluxDB容器来修改配置。使用以下命令进入容器: ``` docker exec -it influxdb1.8 /bin/bash ``` 这将进入到InfluxDB容器的命令行界面,您可以在其中修改InfluxDB的配置文件以满足您的需求。 这样,您就成功地使用Docker部署InfluxDB。通过运行容器并进行配置修改,您可以轻松地管理和使用InfluxDB。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Docker安装InfluxDB(1.8)以及SpringBoot整合使用](https://blog.csdn.net/qq_21875331/article/details/129477973)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [docker部署influxDB](https://blog.csdn.net/xzm2011023/article/details/121533514)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值