-
InfluxDB(官网 维基百科 github )
用go写成;时序数据库;用于存储系统的监控、IoT行业的实时数据等场景。
Errplane公司在2013年开始开源项目的形式开发InfluxDB,2015年公司更名为InfluxData。
InfluxDB存储的数据从逻辑上由 Measurement, tag组以及 field组以及一个时间戳组成的:
- Measurement: 由一个字符串表示该条记录对应的含义。比如它可以是监控数据"cpu_load",也可以是测量数据"average_temperature"
- tag组: 由一组键值对组成,表示的是该条记录的一系列属性信息。同样的measurement数据所拥有的tag组不一定相同,它是无模式的(Schema-free)。tag信息是默认被索引的。
- field组:也是由一组键值对组成,表示的是该条记录具体的value信息(有名称)。field组中可定义的value类型包括:64位整型,64位浮点型,字符串以及布尔型。Field信息是无法被索引的。
- 时间戳:就是该条记录的时间属性。如果插入数据时没有明确指定时间戳,则默认存储在数据库中的时间戳则为该条记录的入库时间。
-
使用教程
-
在Ubuntu用docker运行InfluxDB
-
下载镜像
> docker images # 查看本地是否有influxdb镜像,如果没有 > docker search influxdb # 查看Docker Hub镜像列表,找到OFFICIAL的版本,一般就是第一个 > docker pull influxdb # 下载镜像
下载镜像可能出现如下错误:
-
制作docker-compose
version: '3' services: influxdb: image: influxdb container_name: influxdb1 environment: - INFLUXDB_ADMIN_ENABLED:"true" ports: - "8083:8083" - "8086:8086" volumes: - /本地路径:/var/lib/influxdb
-
运行
docker-compose up -d
-
进入docker
docker exec -it <container_id> /bin/bash
-
启动InfluxDB
influxd
这个命令其实是
influxd run init-influxdb.sh
的缩写。这样就启动了,可以在localhost:8083看到。
-
命令行进入influxDB
influxd这样是命令行进入操作influxDB,与localhost:8083等价。
-
-
基础命令
-
InfluxDB概念
时序数据库,主键永远是时间time(自动生成的)。
-
database
数据库。
-
measurement
数据库中的表。
-
points
表里面的一行数据。根据timestamp+series保证唯一。
points由:
- measurement
- 标签(tags):有索引的属性
- 数据(field):没有索引的属性
- timestamp
组成。
每个point就是时间轴上的一个点;tag用来检索;field用来记录信息,measurement用于将相同类型的数据归集。
-
series
一个series就是一个测点,或者说一条曲线,retention policy, measurement, tagset就共同组成了一个定位测点序列的唯一标识,这三者有多少种组合就有多少个series。
point就是某个series的同一个时刻的多个field的value,也就是一般曲线上的一个点。
InfluxDb不需要做schema定义,这意味着你可以随意的添加measurements, tags, fields。
单从tag角度思考,有几种tag组合就有几个series,tag有索引作为分类标准就清楚了。
-
continuous queries持续查询
-
retention policy存储策略
-
subscription订阅
-
-
InfluxDB存储数据的格式
influxDB储存数据所采用的是Line Protocol格式。
-
Reference
docker运行InfluxDB流程及InfluxDB概念
猜你喜欢
转载自blog.csdn.net/The_Time_Runner/article/details/105610650
今日推荐
周排行