InfluxDB 常用命令

Background

这里整理方便自己以后翻阅。具体可参考 官方文档

进入数据库命令行

influx -username admin -password '123456'

用户管理

可以直接在web管理页面操作,也可以命令行操作。下面以用户wlf为例介绍:

# 显示用户
> SHOW users
 
# 创建普通用户
> CREATE USER "wlf" WITH PASSWORD '123'
 
# 修改用户密码
> SET PASSWORD FOR "wlf" = '456'
 
# 为普通用户赋管理员权限
> GRANT ALL PRIVILEGES TO "wlf"
 
# 查看用户拥有的权限
> SHOW GRANTS FOR "wlf"
 
# 撤销普通用户的管理员权限
> REVOKE ALL PRIVILEGES FROM  "wlf"

# 给用户赋hhtl数据库的只读权限
> GRANT READ ON "hhtl" TO "wlf"

# 取消用户对hhtl数据库的写权限
> REVOKE WRITE ON "hhtl" FROM "wlf"

# 直接创建管理员权限用户
> CREATE USER "wlf" WITH PASSWORD '123' WITH ALL PRIVILEGES
 
# 删除用户
> drop USER "wlf"

查看数据库

> show databases
name: databases
name
----
_internal
test

查看所有数据库的shards分布情况

> show shards
name: _internal
id  database  retention_policy shard_group start_time           end_time             expiry_time          owners
--  --------  ---------------- ----------- ----------           --------             -----------          ------
625 _internal monitor          625         2021-03-30T00:00:00Z 2021-03-31T00:00:00Z 2021-04-07T00:00:00Z
628 _internal monitor          628         2021-03-31T00:00:00Z 2021-04-01T00:00:00Z 2021-04-08T00:00:00Z
629 _internal monitor          629         2021-04-01T00:00:00Z 2021-04-02T00:00:00Z 2021-04-09T00:00:00Z
649 _internal monitor          649         2021-04-02T00:00:00Z 2021-04-03T00:00:00Z 2021-04-10T00:00:00Z
650 _internal monitor          650         2021-04-03T00:00:00Z 2021-04-04T00:00:00Z 2021-04-11T00:00:00Z
651 _internal monitor          651         2021-04-04T00:00:00Z 2021-04-05T00:00:00Z 2021-04-12T00:00:00Z
652 _internal monitor          652         2021-04-05T00:00:00Z 2021-04-06T00:00:00Z 2021-04-13T00:00:00Z
659 _internal monitor          659         2021-04-06T00:00:00Z 2021-04-07T00:00:00Z 2021-04-14T00:00:00Z

name: cloudansys
id  database   retention_policy shard_group start_time           end_time             expiry_time          owners
--  --------   ---------------- ----------- ----------           --------             -----------          ------
109 cloudansys autogen          109         1969-12-29T00:00:00Z 1970-01-05T00:00:00Z 1970-01-05T00:00:00Z
175 cloudansys autogen          175         1970-10-12T00:00:00Z 1970-10-19T00:00:00Z 1970-10-19T00:00:00Z
114 cloudansys autogen          114         2016-05-16T00:00:00Z 2016-05-23T00:00:00Z 2016-05-23T00:00:00Z
178 cloudansys autogen          178         2020-01-13T00:00:00Z 2020-01-20T00:00:00Z 2020-01-20T00:00:00Z
179 cloudansys autogen          179         2020-01-20T00:00:00Z 2020-01-27T00:00:00Z 2020-01-27T00:00:00Z
176 cloudansys autogen          176         2020-08-10T00:00:00Z 2020-08-17T00:00:00Z 2020-08-17T00:00:00Z
113 cloudansys autogen          113         2020-09-07T00:00:00Z 2020-09-14T00:00:00Z 2020-09-14T00:00:00Z
129 cloudansys autogen          129         2020-09-14T00:00:00Z 2020-09-21T00:00:00Z 2020-09-21T00:00:00Z
148 cloudansys autogen          148         2020-09-21T00:00:00Z 2020-09-28T00:00:00Z 2020-09-28T00:00:00Z
163 cloudansys autogen          163         2020-09-28T00:00:00Z 2020-10-05T00:00:00Z 2020-10-05T00:00:00Z
167 cloudansys autogen          167         2020-10-05T00:00:00Z 2020-10-12T00:00:00Z 2020-10-12T00:00:00Z
171 cloudansys autogen          171         2020-10-12T00:00:00Z 2020-10-19T00:00:00Z 2020-10-19T00:00:00Z
184 cloudansys autogen          184         2020-10-19T00:00:00Z 2020-10-26T00:00:00Z 2020-10-26T00:00:00Z
192 cloudansys autogen          192         2020-10-26T00:00:00Z 2020-11-02T00:00:00Z 2020-11-02T00:00:00Z
202 cloudansys autogen          202         2020-11-02T00:00:00Z 2020-11-09T00:00:00Z 2020-11-09T00:00:00Z
174 cloudansys autogen          174         2020-11-30T00:00:00Z 2020-12-07T00:00:00Z 2020-12-07T00:00:00Z
292 cloudansys autogen          292         2020-12-07T00:00:00Z 2020-12-14T00:00:00Z 2020-12-14T00:00:00Z
408 cloudansys autogen          408         2020-12-14T00:00:00Z 2020-12-21T00:00:00Z 2020-12-21T00:00:00Z
423 cloudansys autogen          423         2020-12-21T00:00:00Z 2020-12-28T00:00:00Z 2020-12-28T00:00:00Z

使用\切换数据库

> use test
Using database test

查看当前数据库的保存策略 Retention Policies

autogen为默认保存策略,时间永久。
当首次创建数据库没有创建保存策略时,系统会默认给创建autogen策略,并设置其为默认策略;但如果首次创建数据库时同时创建了保存策略,系统就不会再创建autogen策略了,而且还会把创建的策略设置为默认策略。

> show retention policies on test
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true

为数据库 test 创建新的保存策略 RP

> CREATE RETENTION POLICY "one_hour_only" ON "test" DURATION 1h REPLICATION 1 DEFAULT
> show retention policies on test
name          duration shardGroupDuration replicaN default
----          -------- ------------------ -------- -------
autogen       0s       168h0m0s           1        false
one_hour_only 1h0m0s   1h0m0s             1        true
  • one_hour_only:策略名
  • test:具体的数据库名
  • 1h:保存1小时,1小时之前的数据将被删除,其它时间参数例如:h(小时),d(天),w(星期)
  • replication 1:副本个数,一般为1就可以了,除非你掏钱使用的是集群版
  • default:设置为默认策略

修改当前数据库的保存策略 RP

策略名还是原来的,所以要修改时可以删除后再新建策略,当然如果是策略名像我这包含时间含义的话。

> ALTER RETENTION POLICY "one_hour_only" ON "test" DURATION 1w REPLICATION 1 DEFAULT
> show retention policies on test
name          duration shardGroupDuration replicaN default
----          -------- ------------------ -------- -------
autogen       0s       168h0m0s           1        false
one_hour_only 168h0m0s 1h0m0s             1        true

删除当前数据库的保存策略 RP

删除了我们自己建的策略,同时把原来的autogen设置为默认,要不到时你使用的时候会报错。

> DROP RETENTION POLICY "one_hour_only" ON "test"
> show retention policies on test
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        false
> ALTER RETENTION POLICY "autogen" ON "test" DEFAULT
> show retention policies on test
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true

为当前数据库创建autogen默认策略

CREATE RETENTION POLICY "autogen" ON "wlf" DURATION 0s REPLICATION 1 DEFAULT

查看所有表

> show measurements
name: measurements
name
----
add_test

查看所有表中的索引 tag

> show tag keys
name: add_test
tagKey
------
name
phone
> show tag values from add_test with key = "phone"
name: add_test
key     value
---     -----
phone 110

查看表中有哪些字段 field

> show field keys from add_test
name: add_test
fieldKey fieldType
-------- ---------
age      integer
boy      boolean
user_id  float

查询表中的点 series

> show series from add_test
key
---
add_test,name=YiHui,phone=110

查看表中数据

> select * from add_test limit 5
name: add_test
time                age boy  name  phone user_id
----                --- ---  ----  ----- -------
1606284216425943576 19  true YiHui 110   2

设置时间显示格式

在influxDB的CLI界面执行precision rfc3339即可,但是显示是UTC的时区,与中国时区差了8个小时,需要在查询语句的最后加上tz('Asia/Shanghai'),这样查询的时间才是纠正为中国时区显示。

> precision rfc3339
> select * from add_test limit 5 tz('Asia/Shanghai')
name: add_test
time                                age boy  name  phone user_id
----                                --- ---  ----  ----- -------
2020-11-25T14:03:36.425943576+08:00 19  true YiHui 110   2

条件查询

> select * from add_test where time >= '2020-11-23 14:30:39' and time <= '2020-11-26 14:32:32' limit 5 tz('Asia/Shanghai')
name: add_test
time                                age boy  name  phone user_id
----                                --- ---  ----  ----- -------
2020-11-25T14:03:36.425943576+08:00 19  true YiHui 110   2

数据库数据迁移

这里我们把数据库dky_cft的数据复制到了数据库wlf中。
注意:保存策略需要一致。

> SELECT * INTO "wlf"."autogen".:MEASUREMENT FROM "dky_cft"."autogen"./.*/ GROUP BY *
name: result
time written
---- -------
0    892797

表数据迁移到另一个表中

四十万条数据大概5秒左右。

> SELECT * INTO "db_hbjm_zhgr_test"."autogen"."raw_jmdb_copy" FROM "db_hbjm_zhgr_test"."autogen"."raw_jmdb_bk" GROUP BY *
name: result
time                 written
----                 -------
1970-01-01T00:00:00Z 390345

更改 influxdb 默认的日志输出位置

我们可以在 /etc/rsyslog.d/influxdb.conf 中创建一个简单的规则来更改日志生成的位置:

cat <<EOF> /etc/rsyslog.d/influxdb.conf
### InfluxDB Rules ###
if $programname == 'influxd' then {
   action(type="omfile" file="/var/log/influxdb/influxd.log")
   stop
}
EOF
  • 然后重启 rsyslog 和 influxd 服务
systemctl restart rsyslog
systemctl restart influxd

序列基数

cardinality反应了series的维度,即不同的series的数量。
序列基数是影响内存(RAM)使用量的主要因素。

  • 计算公式

cardinality=tag1count * tag2count * ...

在这里插入图片描述

  • 查看命令
SHOW SERIES CARDINALITY ON mydb
SHOW SERIES EXACT CARDINALITY ON mydb

在这里插入图片描述

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
InfluxDB v2 是一款开源的时序数据库管理系统。相比于 InfluxDB v1,InfluxDB v2 提供了许多新的命令和功能。 首先,InfluxDB v2 引入了 InfluxDB CLIs 工具包,其中包括了多个命令,用于管理和操作 InfluxDB 实例。其中一些常用的命令包括: 1. influx setup:用于设置 InfluxDB 实例的基本配置,包括主机名、端口号、用户名和密码等。 2. influx auth create:用于创建新的鉴权令牌,该令牌用于对 InfluxDB 进行身份验证和授权。 3. influx bucket create:用于创建一个新的数据存储桶,数据将按照指定的策略进行保存。 4. influx org create:用于创建一个新的组织,允许将多个用户和数据存储桶进行组织和管理。 5. influx org list:用于列出所有已创建的组织。 6. influx dashboard create:用于创建一个新的仪表盘,以可视化展示存储在 InfluxDB 中的数据。 7. influx query:用于执行 InfluxDB 查询语句,并返回查询结果。 除了上述命令外,InfluxDB v2 还提供了更多高级的命令和功能,例如: 1. influx task create:用于创建一个定时任务,可以定期执行指定的操作,如数据备份、数据清理等。 2. influx telegraf create:用于创建一个 Telegraf 配置文件,该文件可以与 Telegraf 代理集成,以便收集和上传数据到 InfluxDB。 通过这些命令和功能,InfluxDB v2 提供了更加灵活和强大的数据管理和操作方式,方便用户进行数据存储、查询和可视化展示。同时,InfluxDB v2 还提供了更好的扩展性和性能,以满足日益增长的数据存储和分析需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WaiSaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值