influxdb 文档_时序数据库 应用场景
大家好,又见面了,我是你们的朋友全栈君。
InfluxDB是一个由InfluxData开发的开源时序型 数据 。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。
InfluxDB有三大特性:
- Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)
- Metrics(度量):你可以实时对大量数据进行计算
- Eevents(事件):它支持任意的事件数据
InfluxDB详解_顺其自然~的博客-CSDN博客_influxdb
database:数据库;
measurement:数据库中的表;
points:表里面的一行数据。
influxDB中独有的一些概念:Point由时间戳(time)、数据(field)和标签(tags)组成。
series
:一些数据结合,同一个database下,
retention policy、measurement、tag sets
完全相同的数据同属于一个 series,同一个series的数据物理上会存放在一起;
在influxdb中,字段必须存在。因为字段是没有索引的。如果使用字段作为查询条件,会扫描符合查询条件的所有字段值,性能不及tag。类比一下,fields相当于SQL的没有索引的列。 tags是可选的,但是强烈建议你用上它,因为tag是有索引的,tags相当于SQL中的有索引的列。tag value只能是string类型。
常用InfluxQL
-- 查看所有的数据库
show databases;
-- 使用特定的数据库
use database_name;
-- 查看所有的measurement
show measurements;
-- 查询10条数据
select * from measurement_name limit 10;
-- 数据中的时间字段默认显示的是一个纳秒时间戳,改成可读格式
precision rfc3339; -- 之后再查询,时间就是rfc3339标准格式
-- 或可以在连接数据库的时候,直接带该参数
influx -precision rfc3339
-- 查看一个measurement中所有的tag key
show tag keys
-- 查看一个measurement中所有的field key
show field keys
-- 查看一个measurement中所有的保存策略(可以有多个,一个标识为default)
show retention policies;
create database db1 -- 创建数据库db1
drop database db1 -- 删除数据库db1
drop measurement mt1 -- 删除表mt1
delete from measurement [WHERE <tag_key> <operator>]
drop shard <shard_id_num> 删除分片
influxdbV1 和influxdbV2 1. 查询方法变更 原来使用InfluxQL方式查询,现在使用内置的Flux方式查询
2. 底层数据结构变更 原来的bucket+时间保留计划=现在的bucket
3. task取代连续查询