InfluxDB
...
- github.com/influxdata/influxdb
InfluxDB 是一个开源的时序型数据库,使用 Go 语言编写, 安装配置方便,被广泛应用于存储系统的设备数据采集/监控数据/等IoT行业的实时数据等场景.
有以下特性:
- 部署简单, 无外部依赖.
- 内置 http 支持, 可以使用 http 读写.
- 类 sql 的操作, max/min/sum/...
名词解释
influxdb | 解釋 |
---|---|
database | 数据库 |
measurement | 时间段,类似mysql中的数据表table |
point | 时间点,类似mysql中的数据行row |
而point又由时间戳time,字段数据field,标签tags组成
- time:是每条数据的记录时间,也是数据库自动生成的主索引
- field:各种字段记录的值,无索引
- tag:各种有索引的属性
另外 influxdb 中还有一个系列 serises 的概念, 通常由retention policy,measurement,tagset组成
配置
默认配置文件为 influxdb.conf 应该是yaml格式的
Clients
influxdb多种方式方式可以进行操作
- HTTP API 接口
- influx CLI
- c/c++/c#/go/java/python/...等各种语言的客户端库
- 基于客户端桌面操作
- 基于web管理页面操作
默认的的influx.exe是默认命令行形式的客户端工具。
基本操作
# 终端下直接输入influxdb进入交互模式
influxdb
# 使用指定用户登陆
influx -username "" -password ""
# 创建数据库
> create database "your_name"
# 显示所有数据库
> show databases
# 删除指定的数据库
> drop database "your_name"
# 使用指定的数据库:如使用_internal数据库
> use _internal
# 创建表
# influxdb是无模式的,所以不需要跟mysql一样预先创建表名和结构,直接插入数据会自动创建表
# insert ,tagname=xxx,field=value field=value
> insert ,name=bob,age=3 ip=127.0.0.1
# 显示当前数据库下有哪些表/时间段
> show measurements
# 删除表/删除时间段
> drop measurement "your_name"
# 查询表数据
> select * from
# 按时间排序查询
> select * from order by time asc/desc
# 显示数据系列,有点像统计分类groupby之后的数据
> show series from
# 创建用户,但无权限
> create user "" with password ""
# 创建用户,含所有权限
> create user "" with password "" with all privileges
# 如创建一个用户名为root,密码为123456的用户
> create user "root" with password "123456"
# 设置/修改用户密码
> set password for =""
# 显示所有用户
> show users;
# 删除用户
> drop user ""
是不是很像 sql 的操作, 但influxdb不是sql操作, 只是提供了sql-like类sql的方式方便我们操作.
tips:需要注意的是influxdb没有对数据的更新和删除操作