当前位置:网站首页>InfluxDB语法
InfluxDB语法
2022-08-09 17:12:00 【_小笼包_】
目录
influxDB 时序数据库
时序数据库:
opentsdb 基于HBASE
TimeScaleDB 基于postgreSQL
KairosDB 基于Cassandra
通用数据库
kudu
CreateDB 基于ElasticSearch
InfluxDB是一个由InfluxData开发的开源时序型数据库,它由
Go语言写成,着力于高性能地查询与存储时序型数据。InfkuxDB被广
泛应用与存储系统的监控数据,loT行业的实时数据等场景。
InfluxDB有如下三大特性:
* 基于时间序列
* 可度量性
* 基于事件
InfluxDB数据模型
Measurement(表)
Tags(维度列)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-APXDkWkX-1659933382527)(influxDB_files/1.jpg)]
device = dev1 building = b1
device = dev2 building = b1
device = dev2 building = b2
device = dev1 building = b2
类似于主键,不唯一
Field 数值列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BmmsK6um-1659933382528)(influxDB_files/2.jpg)]
point
相当于数据库中的一条记录
InfluxDB时间线(Series)
Series = Measurement + Tags
时间线:一个数据源采集的一个指标随着时间的流逝而源源不断吐出数据,这样形成的一条数据线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lgIYYNp8-1659933382528)(influxDB_files/3.jpg)]
InfluxDB系统架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4O3eDce-1659933382529)(influxDB_files/4.jpg)]
DataBase
create database test;
RP (数据保留策略)
RP是数据库级别的,不是表级别的属性
每个数据库有多个保留策略,但是只能有一个默认策略
– 查看库数据的过期策略
show retention policies on telegraf
ShardGroup
每个ShardGroup只存储指定时间段的数据。
不同的ShardGroup对应的时间段不会重合
为什么这样划分?
* InfluxDB中数据过期删除的执行力度就是ShardGroup
* 可以有效根据时间维度选择目标分区,淘汰部分数据
Shard
shard才是真正存储数据的部分
influxdb命令行命令
systemctl status influxdb #查看influxdb状态
systemctl start influxdb #启动influxdb
systemctl status influxdb #查看状态
systemctl enable influxdb #开启开机启动
cd /usr/bin
influxd #influxdb服务器
influx #influxdb命令行客户端
influx_inspect #查看工具
influx_stress #压力测试工具
influx_tsm #数据库转换工具(将数据库从b1或bz1格式转换为tsm1格式)
cd /var/lib/influxdb
data #存放最终存储的数据,文件以.tsm结尾
meta #存放数据库元数据
wal #存放预写日志文件
cd /var/log/influxdb 日志存储位置
cd /etc/influxdb 配置文件位置
vim influxdb.conf
systemctl start telegraf *
service grafana-server start *
systemctl status telegraf --查看telegraf状态
systemctl stop telegraf --停止telegraf
– 重启 telegraf 服务,使配置文件生效
service telegraf restart
– Linux 不同系统服务的启动方式不同
systemctl start telegraf
– 查看telegraf状态
systemctl status telegraf
wget https://dl.influxdata.com/chronograf/releases/chronograf-1.8.6.x86_64.rpm
influxdb语法
– 插入
measurement:表名
tag:维度列
field:数值列
insert [,=…] =[,=…] [unix-nano-timestamp]
insert test,host=127.0.0.1,monitor_name=test1,app=ios count=2,num=3
– 查看所有维度列
show tag keys from 表名
– distinct的字段只能是数值列,不能是维度列
select distinct(数值列) from 表名
– group by 只能对维度列使用,不能对数值列使用
select * from test group by 维度列
– 查看某个维度列的value值
show tag values from 表名 with key=“维度列”
– 模糊查询
-- =~/字符串/ 包含指定字符串的
select * from 表名 where 维度列|数值列 = ~/aaa/
-- =~/^字符串/ 以指定字符串开始
select * from 表名 where 维度列|数值列 = ~/^aaa/
-- =~/aaa$/ 以指定字符串结尾
select * from 表名 where 维度列|数值列 = ~/aaa$/
– 分页
– 从第2条记录开始,显示2条
limit 2 offset 2
– 没有IN操作,有OR操作
select * from cpu where cpu =‘aa’ or cpu=‘bb’
influxdb函数
– count()函数 数值列
返回一个字段中的非空值的数量
语法:
SELECT COUNT(<field_key>) FROM <measurement_name> [WHERE ] [GROUP BY ]
示例:
select count(usage_idle) from cpu where time > xxx and time < xxx
注意:influxdb中的函数如果没有指定时间的话,
会默认以1970年1月1日00时00分00秒作为时间
– MEAN()函数 数值列
返回一个字段(数值列)中的值的算术平均值,字段类型必须是长整型或float64
语法:
SELECT MEAN(<field_key>) FROM <measurement_name> [WHERE ] [GROUP BY ]
示例:
select MEAN(usage_idle) from cpu
– MEDIAN()函数 数值列
从单个字段(数值列)中的排序值返回中间值(中位数)。
字段值的类型必须是长整型或float64
语法:
SELECT MEDIAN(<field_key>) FROM <measurement_name> [WHERE ] [GROUP BY ]
示例:
select MEDIAN(usage_idle) from cpu
– SPREAD()函数 数值列
返回字段的最小值和最大值之间的差值
数据的类型必须是长整型或float64
语法:
SELECT SPREAD(<field_key>) FROM <measurement_name> [WHERE ] [GROUP BY ]
示例:
select SPREAD(usage_idle) from cpu
– SUM()函数 数值列
返回一个字段中的所有值的和
字段的类型必须是长整型或float64
语法:
SELECT SUM(<field_key>) FROM <measurement_name> [WHERE ] [GROUP BY ]
示例:
select SUM(usage_idle) from cpu
– 给文件权限才能下载
chmod 777 log_info.log
边栏推荐
- The principle implementation of handwritten flexible.js, I finally understand the multi-terminal adaptation of the mobile terminal
- How tall is the B+ tree of the MySQL index?
- 解决启动项目初始化报错required a bean of type ‘int‘ that could not be found.的问题
- 从事软件测试一年,只会基础的功能测试,怎么进一步学习?
- 体验远超Hue,这才是技术人员最喜欢的SQL工具
- 进行知识管理的好处有哪些?
- HarmonyOS - 基于ArkUI (JS) 实现图片旋转验证
- 谭中意:你知道 “开源女王” 是谁吗?
- 学长告诉我,大厂MySQL都是通过SSH连接的
- win10 uwp 自定义控件 SplitViewItem
猜你喜欢

Logic unauthorized and horizontal and vertical unauthorized payment tampering, verification code bypass, interface

太细了!阿里大佬耗时39天整理出一份Redis进阶笔记,满满的干货

好的架构是进化来的,不是设计来的

低代码平台和专业开发人员——完美搭档?

方舟:生存进化开服务器端口映射教程

【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点

传统数据中台又贵又复杂?何不试一试永久免费的下一代数据中台

《.NET物联网从零开始》系列

A carnival of art and technology, cloud XR supports Anaya 2022 Sandbox Immersive Art Season

The difference between approach and method
随机推荐
win10 uwp 设置启动窗口大小 获取窗口大小
以技术御风险,护航云原生 | 同创永益 X 博云举办产品联合发布会
史上最全架构师知识图谱
谭中意:你知道 “开源女王” 是谁吗?
AI基础环境搭建和设置总文
What platform is EPIC?
GoFrame缓冲输出到客户端Flush()
秋招面试大厂总被刷下来,你这样做保准你事半功倍!
国能准能集团研发矿山数字孪生系统 填补国内采矿行业空白
MySQL索引的B+树到底有多高?
解决启动项目初始化报错required a bean of type ‘int‘ that could not be found.的问题
手写flexible.js的原理实现,我终于明白移动端多端适配
JMeter notes 6 | JMeter recording agent (configuration)
【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点
动态RDLC报表(五)
OpenCV 轮廓 —— 轮廓匹配
好的架构是进化来的,不是设计来的
Volatile:JVM 我警告你,我的人你别乱动
Apache Doris 社区 PMC 杨政国:开源项目如何在自身和社区的需求中取得平衡?
How tall is the B+ tree of the MySQL index?