influxDB系列(二)influxDB常用操作

二、使用

安装

#Ubuntu
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

sudo apt-get update && sudo apt-get install influxdb
sudo service influxdb start

# CentOS
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF

sudo yum install influxdb
sudo systemctl start influxdb

docker安装

离线安装

配置用户

SHOW USERS
CREATE USER <username> WITH PASSWORD '<password>' WITH ALL PRIVILEGES
GRANT ALL ON "NOAA_water_database" TO "todd"

关键词以及常用操作

database

create database [database name]
drop database [database name]
show databases
use databases

measurement

drop measurement [database name]
show measurements

point

tags fileds timastamp
tag1='tag1',tag2='tag2',tag3='tag3' filed1="test", filed2=12,filed3=true

ps:tag必须为字符串类型

tag keys/field keys

show tag keys
show field keys

retention policy

SHOW RETENTION POLICIES ON [database]
CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
drop retention POLICY "2_hours" ON "telegraf"

ps:删除时会删掉相关数据

series

series 相当于是 InfluxDB 中一些数据的集合,在同一个 database 中,retention policy、measurement、tag sets 完全相同的数据同属于一个 series,同一个 series 的数据在物理上会按照时间顺序排列存储在一起。

show series from cpu
从单个measurement删除所有series:
DROP SERIES FROM "h2o_feet"

从单个measurement删除指定tag的series:
DROP SERIES FROM "h2o_feet" WHERE "location" = 'santa_monica'

从数据库删除有指定tag的所有measurement中的所有数据:
DROP SERIES WHERE "location" = 'santa_monica'

shard

DROP SHARD <shard_id_number>
show shard groups

shard 在 InfluxDB 中是一个比较重要的概念,它和 retention policy 相关联。每一个存储策略下会存在许多 shard,每一个 shard 存储一个指定时间段内的数据,并且不重复,例如 7点-8点 的数据落入 shard0 中,8点-9点的数据则落入 shard1 中。每一个 shard 都对应一个底层的 tsm 存储引擎,有独立的 cache、wal、tsm file。

RP duration Shard group interval
< 2 days 1 hour
>= 2 days and <= 6 months 1 day
> 6 months 7 days

查询

  1. 类似于MySQL的的语法

  2. InfluxDB tags 相当于MySQL的索引列

  3. InfluxDB fields 相当于非索引列

  4. InfluxDB points 相当于一行

写入

insert test,tag1='tag1',tag2='tag2',tag3='tag3' filed1="test", filed2=12,filed3=true timestamp

连续查询

SHOW CONTINUOUS QUERIES
DROP CONTINUOUS QUERY <cq_name> ON <database_name>

CREATE CONTINUOUS QUERY <cq_name> ON <database_name>
BEGIN
  <cq_query>
END
# 高级用法
CREATE CONTINUOUS QUERY <cq_name> ON <database_name>
RESAMPLE EVERY <interval> FOR <interval>
BEGIN
  <cq_query>
END


 CREATE CONTINUOUS QUERY test ON test 
 BEGIN 
 SELECT sum(hour) INTO test.autogen.test1 FROM test.autogen.test GROUP BY time(30s) 
 END

修改CQ

  • CQ一旦创建就不能修改了,你必须DROP再CREATE才行。

** CQ的使用场景**

  • 采样和数据保留:使用CQ与InfluxDB的保留策略(RP)来减轻存储问题。结合CQ和RP自动将高精度数据降低到较低的精度,并从数据库中移除可分配的高精度数据。

  • 预先计算昂贵的查询:通过使用CQ预先计算昂贵的查询来缩短查询运行时间。使用CQ自动将普通查询的高精度数据下采样到较低的精度。较低精度数据的查询需要更少的资源并且返回更快。

  • 替换HAVING子句:InfluxQL不支持HAVING子句。通过创建CQ来聚合数据并查询CQ结果以达到应用HAVING子句相同的功能。

猜你喜欢

转载自blog.csdn.net/lin819747263/article/details/103963466
今日推荐