美文网首页
InfluxDB (一)安装与简介

InfluxDB (一)安装与简介

作者: 46f31ed46b17 | 来源:发表于2018-01-02 22:04 被阅读366次

    InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖

    其主要特色功能

    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访问

    相关文章

      网友评论

          本文标题:InfluxDB (一)安装与简介

          本文链接:https://www.haomeiwen.com/subject/emhfnxtx.html