image.png

InfluxDB安装和简单使用小结

InfluxDB是一个时序性数据库,因为工作需求,安装后使用测试下是否支持大数据下的业务场景

说明:

  • 安装最新版本 v1.6.0
  • 集群版本要收费,单机版本免费
  • 内部集成的web控制台被ko掉了

I. 安装

直接到官网,查询对应的下载安装方式

安装方式

1
2
3
SHA256: fa118d657151b6de7c79592cf7516b3d9fada813262d5ebe16516f5c0bf62039
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.0.x86_64.rpm
sudo yum localinstall influxdb-1.6.0.x86_64.rpm

服务启动命令

1
2
3
4
# 启动命令
service influxdb start
# 关闭命令
service influxdb stop

注意

默认占用8086/8088两个端口号,可以根据自己的实际场景进行替换,进入配置文件 /etc/influxdb/influxdb.conf

查询 bind-address,其中端口号对应的用处说明如下

1
2
3
4
5
6
7
8
9
10
11
# Bind address to use for the RPC service for backup and restore.
bind-address = "127.0.0.1:8088"

...

[http]
# Determines whether HTTP endpoint is enabled.
# enabled = true

# The bind address used by the HTTP service.
bind-address = ":8086"

II. 控制台简单使用

influx提供了一个控制台进行简单的操作,下面给出基本的使用姿势,对于influxdb的一些概念性问题,放在下一篇专门给与说明

首先进入控制台

1
2
3
4
influx

# 如果修改了端口号,则需要显示指定
# influx -port xxx

1. database相关

这个数据库和我们平常接触比较多的mysql中的数据库差不多,使用姿势也相差无几

a. 显示所有的数据库

说明: >后面跟的是命令,后面的是输出结果

1
2
3
4
5
6
> show databases
name: databases
name
----
_internal
hh_test

b. 创建数据库

和mysql语法一致, create database xxx

1
2
3
4
5
6
7
8
> create database mytest
> show databases
name: databases
name
----
_internal
hh_test
mytest

c. 删除数据库

使用drop进行删除,drop database xxx

1
2
3
4
5
6
7
> drop database mytest
> show databases
name: databases
name
----
_internal
hh_test

d. 选择数据库

1
2
> use hh_test
Using database hh_test

2. 表相关

在influxDB中,表不是我们传统理解的table,在这里,专业术语叫做 measurement (度量?)

查看所有的measurement的命令

1
2
3
4
5
show measurements;
name: measurements
name
----
trade

不同于mysql,没有提供专门的创建表,新插入数据,就会自动创建一个不存在的表

1. 新增数据

1
insert <tbname>,<tags> <values> [timestamp]

说明:

  • tbname : 数据表名称
  • tags : 表的tag域
  • values : 表的value域
  • timestamp :当前数据的时间戳(可选,没有提供的话系统会自带添加)
1
2
3
4
5
6
7
> insert students,addr=wuhan phone=124

> select * from students
name: students
time addr phone
---- ---- -----
1532514647456815845 wuhan 124

2. 查询

查询和sql类似,基本结构如下,但是有很多的限制,后面详解

1
select * from table where condition group by xxx order by time asc limit 10

一个实例case

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
> insert students,addr=wuhan phone=124
> insert students,addr=wuhan phone=123
> insert students,addr=changsha phone=15
> select * from students where phone>0 group by addr order by time desc limit 10;
name: students
tags: addr=wuhan
time phone
---- -----
1532515056470523491 123
1532515052664001894 124

name: students
tags: addr=changsha
time phone
---- -----
1532515064351295620 15

3. 更新与删除

当需要更新一个记录时,直接覆盖一个时间戳+所有的tag相等的即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> select * from students
name: students
time addr phone
---- ---- -----
1532515052664001894 wuhan 124
1532515056470523491 wuhan 123
1532515064351295620 changsha 15
> insert students,addr=wuhan phone=111123 1532515052664001894
> select * from students
name: students
time addr phone
---- ---- -----
1532515052664001894 wuhan 111123
1532515056470523491 wuhan 123
1532515064351295620 changsha 15

删除一条记录,用delete命令

1
2
3
4
5
6
7
8
9
10
11
12
13
> select * from students
name: students
time addr phone
---- ---- -----
1532515052664001894 wuhan 111123
1532515056470523491 changsha 123
1532515056470523491 wuhan 123
> delete from students where time=1532515056470523491
> select * from students
name: students
time addr phone
---- ---- -----
1532515052664001894 wuhan 111123

4. 删除表

1
drop measurement students

III. 其他

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

3. 扫描关注

一灰灰blog

QrCode

知识星球

goals