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

brew update
brew install influxdb

(2)Docker Image

docker pull influxdb

(3)Ubuntu & Debian

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

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)

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)

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)

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)

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

配置文件

配置文件位置:

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

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

InfluxDB启动

服务端启动

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

sudo service influxdb start

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

编写如下脚本influxdb_start.sh

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

运行上述脚本:

chmod +x influxdb_start.sh
sh influxdb_start.sh

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

客户端启动

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

# 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即代表安装成功

熟悉基本操作

# 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语句加以限制,防止卡死。

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/12/getting-started-with-influxdb/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
InfluxDB入门
InfluxDB 简介 InfluxDB 是采用Golang编写的一款时间序列数据库,负责高效处理实时数据。目前市面上比较流行的时序数据库还有Open TSDB(Hbase)、Prometheus……
<<上一篇
下一篇>>
文章目录
关闭
目 录