influxdb教程安装与使用

2019-08-27 宋洋葱 宋洋葱

使用influxdata的源进行安装

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

yum -y install influxdb
systemctl start influxdb
# 进入infulx
influx -precision rfc3339

创建数据库


#创建数据库
create database "sxydata"

-- 建立一个保留时间1周的默认数据保留策略(RP)
CREATE RETENTION POLICY "seven_days" ON "sxydata" DURATION 1w REPLICATION 1 DEFAULT

-- 建立一个保留时间4周的数据保留策略
CREATE RETENTION POLICY "one_month" ON "sxydata" DURATION 4w REPLICATION 1 


-- 连续查询(CQ)聚合1小时的数据,使用默认RP
CREATE CONTINUOUS QUERY "cq_Adata_1h" ON "sxydata"
BEGIN
  SELECT sum(*) INTO "Adata_1h" FROM "Adata" GROUP BY *,time(1h) tz('Asia/Shanghai')
END

-- CQ连续查询 聚合1天的数据,使用one_month的RP
CREATE CONTINUOUS QUERY "cq_1day" ON "sxydata"
BEGIN
  SELECT sum("sum_repeat") as "repeat",sum("sum_total") as "total" INTO "sxydata"."one_month"."sum_1day" FROM "sum_source_1h" GROUP BY *,time(1d) tz('Asia/Shanghai')
END

-- 查看连续查询
SHOW CONTINUOUS QUERIES

-- 删除连续查询
DROP CONTINUOUS QUERY "cq_sum_1h" ON "sxydata"

-- 查看measurements(类似于表)
show measurements

-- 查看数据
select sum(*) from sum_source_1h GROUP By time(1h) tz('Asia/Shanghai')

python的客户端可参考influxdb-python

如何唯一确定一条数据

由时间和tags确定唯一性

如果多次提交:

  • 时间+tags不一样。 – > 多条记录
  • 时间+tags一样,fields名称不一样。 –> 合并fields到时间+tag的那条记录中。
  • 时间+tags一样,fields名称一样。 –> 更新fields里的值

参考文档