InfluxDB 是一个开源分布式时序、事件和指标数据库。
使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。
它有三大特性:
1. Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)
2. Metrics(度量):你可以实时对大量数据进行计算
3. Eevents(事件):它支持任意的事件数据
特点
schemaless(无结构),可以是任意数量的列
Scalable
min, max, sum, count, mean, median 一系列函数,方便统计
Native HTTP API, 内置http支持,使用http读写
Powerful Query Language 类似sql
Built-in Explorer 自带管理工具
安装好influxdb后通过终端登录到数据库,http api over 8086,页面为8083
[root@mycat ~]# inf
influx influx_inspect influx_tsm infocmp infotocap
influxd influx_stress info infokey
通过influx登陆终端
[root@mycat ~]# influx
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:8086 version 0.13.0
InfluxDB shell version: 0.13.0
1、Creating a database,注意关键词的大小写
> CREATE DATABASE mydb;
> SHOW DATABASES;
name: databases
---------------
name
telegraf
_internal
mytab
mydb
2、切换库,有的关键字也没那么规范
> use mydb
Using database mydb
> USE mydb
Using database mydb
3、Writing and exploring data,写入一条数据需要基础格式
1、a short primer on the datastore#存放数据的实体对象,相当在关系型数据的表名
数据在时序数据库(influxDB)是有组织的时间序列,包含一个 测量值(即在RMDB中的字段),在INFLUXDB中如cpu_load或者temperature,
Points are written to InfluxDB using the Line Protocol, which follows the following format:
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
The following lines are all examples of points that can be written to InfluxDB:
cpu,host=serverA,region=us_west value=0.64
payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230
stock,symbol=AAPL bid=127.46,ask=127.48
temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000
这3条例子具体写法:
InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表。如下所示:
insert disk_free,hostname=server01 value=442221834240i 1435362189575692182
其中 disk_free 就是表名,hostname是索引,value=xx是记录值,记录值可以有多个,最后是指定的时间
> insert cpu,host=serverA,region=us_west value=0.64
> select host,region ,value from cpu ##官方写法是把这些测量值加引号
name: cpu
---------
timehostregionvalue
1481203149917071248serverAus_west0.64
insert disk_free,hostname=server01 value=442221834240i 1435362189575692182
在这条语句中,disk_free是表名,hostname=server01是tag,属于索引,value=xx是field,这个可以随意写,随意定义。
A point with the measurement name of cpu and tags host and region has now been written to the database, with the measured value of 0.64.
另一种类型的数据存储,在相同的测量两个字段:
相同的测量值包含两个字段类型的数据
INSERT temperature,machine=unit42,type=assembly external=25,internal=37
> select * from temperature
name: temperature
-----------------
timeexternalinternalmachinetype
14812037975306309012537unit42assembly
删除一个度量值
delete from cpu
show 支持的方法
CONTINUOUS, DATABASES, DIAGNOSTICS, FIELD, GRANTS, MEASUREMENTS, QUERIES,
RETENTION, SERIES, SHARD, SHARDS, STATS, SUBSCRIPTIONS, TAG, USERS
SHOW TAG KEYS FROM "temperature" 显示度量值的标签===show create table aa
influxdb支持正则
series操作
series表示这个表里面的数据,可以在图表上画成几条线,series主要通过tags排列组合算出来
show series from mem
本文转自 DBAspace 51CTO博客,原文链接:http://blog.51cto.com/dbaspace/1880952