InfluxDB(一) 安装与简介

其主要特色功能

  1. 基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)
  2. 可度量性:你可以实时对大量数据进行计算
  3. 基于事件:它支持任意的事件数据

InfluxDB安装

一,下载InfluxDB(windows版本)

https://portal.influxdata.com/downloads

点击按钮可看到各版本下载

我们可以根据我们的需要来选择相应的版本下载,在这里我们选择windows binaries 版本下载,直接将下载地址复制到浏览器中即可下载。

influxdb各个版本稍有不同,新版本8083web端管理已经被取代(需配合其他产品才能使用,个人觉得web端对于学习influxdb还是很有帮助的,可惜被去掉了)

二,安装

InfluxDB是绿色版,因此并不需要安装,只需要解压到相应的目录即可。

三,运行

打开命令窗口后,cd到主目录运行如下命令:

influxd.exe -config influxdb.conf

四,客户端

我们先用InfluxDB客户端测试下InfluxDB是否正常运行,保持启动InfluxDB服务端的cmd窗口运行,然后再在InfluxDB目录下启动一个cmd窗口。 输入influx.exe命令然后回车,程序会默认连接本地的InfluxDB服务端。 然后输入命令 show databases; 可以看到如下输出:

五,创建一个数据库

InfluxDB采用的是一种类似sql的语法,所以很多时候他的语法与传统的数据库的语法是类似的,例如创建数据库使用的语法如下:

create databases testDB

InlfuxDB 名词解释

在上一个部门中,已经建立了一个名为testDB的数据库。在之后的演示中,都将在这个数据库上操作。

在InfluxDB中有不少名词,初学者非常容易搞混,这一节主要就是对这些名词进行解释

一,场景定义

我们有一个数据库名为testDB,里面有一张表weather用于记录:多个地区在几组海拔下的一天的温度变化,所以表中有以下字段:

  1. 时间 time
  2. 温度 temperature
  3. 湿度 humidity
  4. 地区 area
  5. 海拔 altitude

二,与传统数据库中的名词做比较

+-----------------------+-----------------------------
| influxDB中的名词      | 传统数据库中的概念                   
+-----------------------+-----------------------------
| database	          |数据库
+-----------------------+-----------------------------
| measurement           |数据库中的表
+-----------------------+-----------------------------
| points	            |表里面的一行数据
+-----------------------+-----------------------------

三,InfluxDB中独有的一些念概

Point由时间戳(time)、数据(field)、标签(tags)组成。

+-------------+--------------------------------------------------------------
| Point属性   | 传统数据库中的概念                   
+-------------+--------------------------------------------------------------
| time	    |每个数据记录时间,是数据库中的主索引(会自动生成)
+-------------+--------------------------------------------------------------
| fields      |各种记录值(没有索引的属性)也就是记录的值:温度, 湿度
+-------------+--------------------------------------------------------------
| tags	    |各种有索引的属性:地区,海拔
+-------------+--------------------------------------------------------------

这里不得不提另一个名词:series: 所有在数据库中的数据,都需要通过图表来展示,而这个 series 表示这个表里面的数据,可以在图表上画成几条线:通过 tags 排列组合算出来。 比如有如下数据:

> select* from weather
name: weather
-------------
time                    altitude        area    humidity        temperature
1456386985094000000     1000            北      18              17
1456386985094000000     5000            上      20              47
1456386985094000000     5000            北      26              68
1456386985094000000     1000            广      17              83
1456387267668000000     1000            上      12              77
1456387267668000000     1000            北      16              20
1456387267668000000     5000            广      -3              66
1456387267668000000     5000            上      19              60

它的 series 为:

> show series from weather
name: weather
-------------
_key                            altitude        area
weather,altitude=1000,area=北   1000            北
weather,altitude=5000,area=北   5000            北
weather,altitude=5000,area=上   5000            上
weather,altitude=1000,area=广   1000            广
weather,altitude=1000,area=上   1000            上
weather,altitude=5000,area=广   5000            广

基本操作

InfluxDB提供三种操作方式:

  1. 客户端命令行方式
  2. HTTP API接口
  3. 各语言API库

今天主要以命令行为例,为大家介绍下InfluxDB的基本操作,HTTP API接口和各种语言API库会在以后的文章中为大家详细介绍。

一,数据库操作

1)显示数据库:
show databases

show databases

2)新建数据库:
create database test

create database test

3)删除数据库:
drop database test

drop database test

4)使用数据库:
use testDB

二、InfluxDB数据表操作

InfluxDB 当中,并没有表(table)这个概念,取而代之的是MEASUREMENTSMEASUREMENTS 的功能与传统数据库中的表一致,因此我们也可以将 MEASUREMENTS 称为 InfluxDB 中的表。

1)显示所有表
> SHOW MEASUREMENTS
name: measurements
------------------
name
weather
2)新建表

InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表。如下所示:

insert weather,altitude=1000,area=北 temperature=11,humidity=-4

InfluxDB 储存数据所采用的是 Line Protocol 格式。 其中:

  • weather : 表名
  • altitude=1000,area=北 : tag
  • temperature=11,humidity=-4 :field
3)删除表
> drop measurement weather 
> show measurements

三、数据操作

1)增加数据

增加数据采用 insert 的方式,要注意的是 InfluxDBinsert 中,表名与数据之间用逗号(,)分隔, tagfield 之间用 空格分隔,多个 tag 或者多个 field 之间用逗号(,)分隔。

insert weather,altitude=1000,area=北 temperature=11,humidity=-4
> select * from weather
name: weather
time                altitude area humidity temperature
----                -------- ---- -------- -----------
1514863641453356700 1000     北    -4       11

在这条语句中,weather是表名,altitude=1000 ,area = 北 是tag,属于索引,humidity =-4,temperature=11是field。

2)查询数据

查询语句与SQL一样,在此不再赘述。

3)修改和删除数据

InfluxDB属于时序数据库,没有提供修改和删除数据的方法。

但是删除可以通过InfluxDB的数据保存策略 Retention Policies 来实现这个会在以后的文章中讲到。

四,series操作

series表示这个表里面的数据,可以在图表上画成几条线,series主要通过tags排列组合算出来。 我们可以查询表的series,如下所示:

> show series from weather
key
---
weather,altitude=1000,area=北
>

五,界面操作

InfluxDB还提供了管理界面,大大降低了入门难度,在启动了InfluxDB服务之后,直接输入 <IP>:8083 即可访问界面。界面如下图所示:

以下语句都可以直接在InfluxDB的Web管理界面中调用

# 创建数据库
CREATE DATABASE "db_name"
# 显示所有数据库
SHOW DATABASES
# 删除数据库
DROP DATABASE "db_name"

# 使用数据库
USE mydb

# 显示该数据库中的表
SHOW MEASUREMENTS

# 创建表
# 直接在插入数据的时候指定表名(weather就是表名)
insert weather,altitude=1000,area=北 temperature=11,humidity=-4

# 删除表
DROP MEASUREMENT "measurementName"

注意:低版本的InfluxDB自带web界面,本文下载的最新1.4.2则没有web界面,之前下载的1.2及1.3.5都有web界面,如果没有请注意配置文件 influxdb.conf 是否有允许web访问

转载于:https://my.oschina.net/bluesummer/blog/1600874

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值