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 "<user_name>" -password "<password>"

# 创建数据库
> create database "your_name"

# 显示所有数据库
> show databases

# 删除指定的数据库
> drop database "your_name"

# 使用指定的数据库:如使用_internal数据库
> use _internal

# 创建表
# influxdb是无模式的,所以不需要跟mysql一样预先创建表名和结构,直接插入数据会自动创建表
# insert <table_name>,tagname=xxx,field=value field=value
> insert <table_name>,name=bob,age=3 ip=127.0.0.1 

# 显示当前数据库下有哪些表/时间段
> show measurements

# 删除表/删除时间段
> drop measurement "your_name"

# 查询表数据
> select * from <your_measurement_name>

# 按时间排序查询
> select * from <your_measurement_name> order by time asc/desc

# 显示数据系列,有点像统计分类groupby之后的数据
> show series from <your_measurement_name>

# 创建用户,但无权限
> create user "<user_name>" with password "<your_passwor>"
# 创建用户,含所有权限
> create user "<user_name>" with password "<password>" with all privileges
# 如创建一个用户名为root,密码为123456的用户
> create user "root" with password "123456" 

# 设置/修改用户密码
> set password for <user_name>="<password>"

# 显示所有用户
> show users;

# 删除用户
> drop user "<user_name>"

是不是很像 sql 的操作, 但influxdb不是sql操作, 只是提供了sql-like类sql的方式方便我们操作.

tips:需要注意的是influxdb没有对数据的更新和删除操作

posted @ 2020-11-14 14:10  taadis  阅读(509)  评论(0编辑  收藏  举报