4.InfluxDB学习之InfluxDB的基本概念
4.1.与传统数据库中的名词做比较
4.2.InfluxDB中独有的概念
4.2.1.Point
4.2.2.series
4.3.InfluxDB学习之InfluxDB的基本操作
4.3.1.InfluxDB操作方式
4.3.2.InfluxDB数据库操作
4.3.3.InfluxDB数据表操作
4.4.数据操作
4.4.1.增加数据
4.4.2.查询数据
4.4.3.修改和删除数据
4.5.series操作
转自:http://www.linuxdaxue.com/noun-interpretation-of-influxdb.html
InfluxDB中的名词 | 传统数据库中的概念 |
---|---|
database | 数据库 |
measurement | 数据库中的表 |
points | 表里面的一行数据 |
Point由时间戳(time)、数据(field)、标签(tags)组成。
Point相当于传统数据库里的一行数据,如下表所示:
Point属性 | 传统数据库中的概念 |
---|---|
time | 每个数据记录时间,是数据库中的主索引(会自动生成) |
fields | 各种记录值(没有索引的属性)也就是记录的值:温度,湿度 |
tags | 各种有索引的属性:地区,海拔 |
所有在数据库中的数据,都需要通过图表来展示,而这个series表示这个表里面的数据,可以在图表上画成几条线:通过tags排列组合算出来。
如下所示:
>show series from cpu
key
cpu,cpu=cpu-total,host=ResourcePool-0246-billing07
cpu,cpu=cpu-total,host=billing07
cpu,cpu=cpu0,host=ResourcePool-0246-billing07
cpu,cpu=cpu0,host=billing07
cpu,cpu=cpu1,host=ResourcePool-0246-billing07
cpu,cpu=cpu1,host=billing07
cpu,cpu=cpu10,host=ResourcePool-0246-billing07
cpu,cpu=cpu10,host=billing07
cpu,cpu=cpu11,host=ResourcePool-0246-billing07
cpu,cpu=cpu11,host=billing07
cpu,cpu=cpu12,host=ResourcePool-0246-billing07
cpu,cpu=cpu12,host=billing07
cpu,cpu=cpu13,host=ResourcePool-0246-billing07
cpu,cpu=cpu13,host=billing07
cpu,cpu=cpu14,host=ResourcePool-0246-billing07
cpu,cpu=cpu14,host=billing07
cpu,cpu=cpu15,host=ResourcePool-0246-billing07
cpu,cpu=cpu15,host=billing07
cpu,cpu=cpu16,host=ResourcePool-0246-billing07
cpu,cpu=cpu17,host=ResourcePool-0246-billing07
转自:http://www.linuxdaxue.com/influxdb-basic-operation.html
InfluxDB提供三种操作方式:
1)客户端命令行方式
2)HTTP API接口
3)各语言API库
今天主要以命令行为例,为大家介绍下InfluxDB的基本操作,HTTP API接口和各种语言API库会在以后的文章中为大家详细介绍。
如同MYSQL一样,InfluxDB提供多数据库支持,对数据库的操作也与MYSQL相同。
1)显示数据库:
[root@node1 bin]# pwd
/root/installed/influxdb/usr/bin
[root@node1 bin]# ./influx -port 8085
Connected to http://localhost:8085 version 1.8.0
InfluxDB shell version: 1.8.0
> show databases;
name: databases
name
----
_internal
>
2)新建数据库:
> create database test
> show databases;
name: databases
name
----
_internal
test
>
3)删除数据库
> drop database test
> show databases;
name: databases
name
----
_internal
>
4)使用某个数据库
> create database xk_name;
> use xk_name;
Using database xk_name
>
在InfluxDB当中,并没有表(table)这个概念,取而代之的是MEASUREMENTS,MEASUREMENTS的功能与传统数据库中的表一致,因此我们也可以将MEASUREMENTS称为InfluxDB中的表。
1)显示所有表
> SHOW MEASUREMENTS
name: measurements
------------------
name
weather
2)新建表
InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表。如下所示:
> use xk_name
Using database xk_name
> insert disk_free,hostname=server01 value=442221834240i 1435362189575692182
>
其中disk_free就是表名,hostname是索引,value=xx是记录值,记录值可以有多个,最后是指定的时间
执行后结果如下:
> select * from disk_free
name: disk_free
time hostname value
---- -------- -----
1435362189575692182 server01 442221834240
>
3)删除表
> drop measurement disk_free
> show measurements
>
增加数据采用insert的方式,要注意的是InfluxDB的insert中,表名与数据之间用逗号(,)分隔,tag和field之间用 空格分隔,多个tag或者多个field之间用逗号(,)分隔。
> insert disk_free,hostname=server01 value=442221834240i 1435362189575692182
> show measurements
name: measurements
name
----
disk_free
>
在这条语句中,disk_free是表名,hostname=server01是tag,属于索引,value=xx是field,这个可以随意写,随意定义。
查询语句与SQL一样,在此不再赘述。
InfluxDB属于时序数据库,没有提供修改和删除数据的方法。
但是删除可以通过InfluxDB的数据保存策略(Retention Policies)来实现,这个会在以后的文章中讲到。
series表示这个表里面的数据,可以在图表上画成几条线,series主要通过tags排列组合算出来。
我们可以查询表的series, 如下所示:
> show series from mem
key
mem,host=ResourcePool-0246-billing07
mem,host=billing07