InfluxDB入门

InfluxDB 简介

InfluxDB 是采用Golang编写的一款时间序列数据库,负责高效处理实时数据。目前市面上比较流行的时序数据库还有Open TSDB(Hbase)、Prometheus等。各时序数据库都有自己的适用场景,在做技术选型的时候需要结合业务需求进行选择。

官网:https://www.influxdata.com/
下载:https://portal.influxdata.com/downloads/

目前官方InfluxData免费提供单机版,但是对于集群版需要收费,集群版会提供负载均衡、数据同步等集群高可用的功能。线上生产环境如需大规模使用,还是比较推荐使用集群版来保证高可用的。

特色功能

  • 基于时间序列,支持与时间有关的相关函数
  • 可度量性:实时对大量数据进行计算
  • 基于事件:支持任意的事件数据

主要特点

  • 无结构(无模式):可以是任意数量的列
  • 支持min, max, sum, count, mean, median 等一系列函数,方便统计
  • 原生的HTTP支持,内置HTTP API
  • 强大的类SQL语法
  • 自带管理界面,也方便与Grafana等整合进行图表展示

influxDB安装

安装方式

(1)OS X

1
2
brew update
brew install influxdb

(2)Docker Image

1
docker pull influxdb

(3)Ubuntu & Debian

1
2
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.7.7_amd64.deb
sudo dpkg -i influxdb_1.7.7_amd64.deb

(4)RedHat & CentOS

1
2
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7.x86_64.rpm
sudo yum localinstall influxdb-1.7.7.x86_64.rpm

(5)Standalone Windows Binaries (64-bit)

1
2
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7_windows_amd64.zip
unzip influxdb-1.7.7_windows_amd64.zip

(6)Standalone Linux Binaries (64-bit)

1
2
3
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7_linux_amd64.tar.gz
tar -zxf influxdb-1.7.7_linux_amd64.tar.gz -C /usr/local/
mv /usr/local/influxdb-1.7.7-1 /usr/local/influxdb

(7)Standalone Linux Binaries (32-bit)

1
2
3
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7_linux_i386.tar.gz
tar -zxf influxdb-1.7.7_linux_amd64.tar.gz -C /usr/local/
mv /usr/local/influxdb-1.7.7-1 /usr/local/influxdb

(8)Standalone Linux Binaries (ARM)

1
2
3
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7_linux_armhf.tar.gz
tar -zxf influxdb-1.7.7_linux_amd64.tar.gz -C /usr/local/
mv /usr/local/influxdb-1.7.7-1 /usr/local/influxdb

配置文件

配置文件位置:

1
2
/etc/influxdb/influxdb.conf  //rpm安装
/usr/local/influxdb/etc/influxdb/influxdb.conf //bin安装

在配置文件中,可以修改InfluxDB的缓存大小等参数。

InfluxDB启动

服务端启动

如果是通过包安装的,可以使用如下语句启动:

1
sudo service influxdb start

如果直接下载的二进制包,则通过如下方式启动

编写如下脚本influxdb_start.sh

1
2
#!/bin/bash
/usr/local/influxdb/usr/bin/influxd -config /usr/local/influxdb/etc/influxdb/influxdb.conf &

运行上述脚本:

1
2
chmod +x influxdb_start.sh
sh influxdb_start.sh

即可以后台运行的方式启动influxdb的服务端

客户端启动

创建软链接并执行influx即可登入Influx服务器

1
2
3
4
5
# ln -s /usr/local/influxdb/usr/bin/influx /usr/bin/
# influx
Connected to http://localhost:8086 version 1.7.7
InfluxDB shell version: 1.7.7
>

新版本已经删除web管理界面,访问:http://ip/8086 显示404即代表安装成功

熟悉基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# influx 
Connected to http://localhost:8086 version 1.7.7
InfluxDB shell version: 1.7.7
> show databases;
name: databases
name
----
_internal
> create database test;
> create retention policy "default_policy" on "test" duration 90d replication 2 default;
> use test;
Using database test
> show retention policies;
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 false
default_policy 2160h0m0s 24h0m0s 2 true
> insert cpu,uuid=123456,projectId=10086d usr=1,idle=12
> select * from cpu;
name: cpu
time idle projectId usr uuid
---- ---- --------- --- ----
1563845542369889051 12 10086d 1 123456
> insert cpu,uuid=123456,projectId=2s2d usr=12,idle=27,sys=13
> select mean(idle) from cpu group by projectId;
name: cpu
tags: projectId=10086d
time mean
---- ----
0 12

name: cpu
tags: projectId=2s2d
time mean
---- ----
0 27
> precision rfc3339
> select mean(idle) from cpu group by projectId;
name: cpu
tags: projectId=10086d
time mean
---- ----
1970-01-01T00:00:00Z 12

name: cpu
tags: projectId=2s2d
time mean
---- ----
1970-01-01T00:00:00Z 27
> drop database test
>

客户端工具

推荐Windows平台下的开源数据库管理工具InfluxDBStudio,简化查询数据库的步骤,提高工作效率。

软件下载:https://github.com/CymaticLabs/InfluxDBStudio/releases

软件使用

(1)创建连接

APP开发技术博客

(2)查询数据

![APP开发技术博客](http://www.yezhou.me/AppBlog/images/数据库/InfluxDB Query.jpg)

使用感受

InfluxDBStudio支持删除数据库,删除表,导出数据等功能,目前该工具还在开发中,可能跟成熟的Oracle工具PLSQL或Mysql的Navicat等工具还有一些差距,但可以满足在Windows环境上对InfluxDB的常规操作,刚接触InfluxDB的开发者,可以用此体验。

目前使用看来,还算流畅,只在查询全表千万条数据的时候,没有分页功能,会导致卡顿,所以大表查询,推荐用limit 1000语句加以限制,防止卡死。

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :