Influxdb 基础学习总结

Stella981
• 阅读 732

安装与配置:

先docker influxdb docker pull influxdb 发现性能慢,加入阿里mirror,docker pull完成后,先导出配置文件: docker run --rm influxdb influxd config > influxdb.conf 修改配置文件 [http] enabled = true bind-address = ":8086" auth-enabled = false # 鉴权 false 改成 true 再启动 docker run -d -p 8086:8086 -p 8083:8083 -e INFLUXDB_ADMIN_ENABLED=true -v /Users/lys/Documents/my/influxdb/data:/var/lib/influxdb/ -v /Users/lys/Documents/my/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf:ro --name influx influxdb -config /etc/influxdb/influxdb.conf 进入容器 docker exec -it influx /bin/sh influx CREATE USER admin with PASSWORD 'admin' WITH ALL PRIVILEGES quit influx -username admin -password admin

名词解释:

database 数据库 Retention policy 存储策略 Measurement 测量指标名,相当于表 tags sets 标签 tag 是key=value, value 是 field name Timestamp 每条数据都有一个时间戳 Series 数据集合 Shard 分片存储,根据时间 与传统数据库对比:

database 数据库 measurement 数据库中的表 points 表里面的一行数据 influxdb数据的构成:

Points的属性:

Point属性 传统数据库中的概念 time 每个数据记录时间,是数据库中的主索引(会自动生成) fields 各种记录值(没有索引的属性)也就是记录的值:温度, 湿度 tags 各种有索引的属性:地区,海拔 注: 索引=time+tags InfluxDB 的端口:

8083: Web admin管理服务的端口, http://localhost:8083 (新版已废弃) 8086: HTTP API的端口 8088: 集群端口(目前还不是很清楚, 配置在全局的bind-address,默认不配置就是开启的) 数据库操作:

#创建数据库 CREATE DATABASE lys #查看数据库 SHOW DATABASES #指定数据库 use xxx #新建表(指标)记录 insert product_click_count,product_name=gl8 value1=1 insert product_click_count,product_name=gl8 value1=3,value2=5,value3=20 #格式: insert {指标表名},{index_field}={index_value},{index_field}={index_value} {value_field}={value},{value_field}={value} {time} #显示所有表(指标) SHOW MEASUREMENTS #删除表(指标) DROP MEASUREMENT "measurementName" 用户操作:

#显示用户 SHOW USERS #创建用户 CREATE USER "username" WITH PASSWORD 'password' #创建管理员权限的用户 CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES #删除用户 DROP USER "username" 数据保存策略:

查看数据库的策略 Retention Policies

show retention policies on "lys"
name    duration shardGroupDuration replicaN default ----    -------- ------------------ -------- ------- autogen 0s       168h0m0s           1        true
# 创建策略 
CREATE RETENTION POLICY "rp\_name" ON "lys" DURATION 30d REPLICATION 1 DEFAULT
show retention policies on "lys"
name    duration shardGroupDuration replicaN default ----    -------- ------------------ -------- ------- autogen 0s       168h0m0s           1        false rp\_name 720h0m0s 24h0m0s            1        true name 名称 duration 保留时间,30d=720h shardGroupDuration shardGroup的存储时间,大于这个时间查询效率会降低 replicaN 副本个数 default 是否是默认策略 # 修改策略 
ALTER RETENTION POLICY "rp\_name" ON lys" DURATION 3w DEFAUL
# 删除策略
DROP RETENTION POLICY "rp\_name" ON "lys"

连续查询(Continuous Queries):

对数据自动清洗以持久化保存,类似MySQL定时触发器 # 查看当前查询策略 SHOW CONTINUOUS QUERIES # 创建新的查询策略

CREATE CONTINUOUS QUERY "cq\_mean\_30m" ON "lys" 
    BEGIN SELECT mean(value4) INTO product\_click\_count\_mean\_30m FROM product\_click\_count GROUP BY time(30m) END mean 算平均 INFO product\_click\_count\_mean\_30m 新数据的表名 30m 间隔时间为30分钟,30分钟更新一次 # 删除连续查询 DROP CONTINUOUS QUERY <cq\_name> ON <database\_name>
DROP CONTINUOUS QUERY "cq\_mean\_30m" ON "lys"
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这