天天看點

大資料之時序資料庫InfluxDB安裝及使用小結

大資料之時序資料庫InfluxDB安裝及使用小結

InfluxDB安裝和簡單使用小結

InfluxDB是一個時序性資料庫,因為工作需求,安裝後使用測試下是否支援大資料下的業務場景

說明:

  • 安裝最新版本 v1.6.0
  • 叢集版本要收費,單機版本免費
  • 内部內建的web控制台被ko掉了

I. 安裝

直接到官網,查詢對應的下載下傳安裝方式

  • Installing InfluxDB OSS

安裝方式

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

服務啟動指令

# 啟動指令service influxdb start# 關閉指令service influxdb stop
# 啟動指令service influxdb start# 關閉指令service influxdb stop      

注意

預設占用8086/8088兩個端口号,可以根據自己的實際場景進行替換,進入配置檔案 ​

​/etc/influxdb/influxdb.conf​

查詢 bind-address,其中端口号對應的用處說明如下

# 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"
# 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的一些概念性問題,放在下一篇專門給與說明

首先進入控制台

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

1. database相關

這個資料庫和我們平常接觸比較多的mysql中的資料庫差不多,使用姿勢也相差無幾

a. 顯示所有的資料庫

說明: ​

​>後面跟的是指令,後面的是輸出結果​

> show databases
name: databases
name
----
_internal
hh_test
> show databases
name: databases
name
----
_internal
hh_test      

b. 建立資料庫

和mysql文法一緻, ​

​create database xxx​

> create database mytest
> show databases
name: databases
name
----
_internal
hh_test
mytest
> create database mytest
> show databases
name: databases
name
----
_internal
hh_test
mytest      

c. 删除資料庫

使用drop進行删除,​

​drop database xxx​

> drop database mytest
> show databases
name: databases
name
----
_internal
hh_test
> drop database mytest
> show databases
name: databases
name
----
_internal
hh_test      

d. 選擇資料庫

> use hh_testUsing database hh_test

> use hh_testUsing database hh_test      

2. 表相關

在influxDB中,表不是我們傳統了解的table,在這裡,專業術語叫做 ​

​measurement​

​ (度量?)

檢視所有的measurement的指令

show measurements;
name: measurements
name
----
trade
show measurements;
name: measurements
name
----
trade      

不同于mysql,沒有提供專門的建立表,新插入資料,就會自動建立一個不存在的表

1. 新增資料

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

說明:

  • tbname : 資料表名稱
  • tags : 表的tag域
  • values : 表的value域
  • timestamp :目前資料的時間戳(可選,沒有提供的話系統會自帶添加)
> insert students,addr=wuhan phone=124> select * from students
name: students
time                addr  phone
----                ----  -----
1532514647456815845 wuhan 124
> insert students,addr=wuhan phone=124> select * from students
name: students
time                addr  phone
----                ----  -----
1532514647456815845 wuhan 124      

2. 查詢

查詢和sql類似,基本結構如下,但是有很多的限制,後面詳解

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

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

一個執行個體case

> 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
> 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相等的即可

> select * from students
name: students
time                addr     phone
----                ----     -----1532515052664001894 wuhan    1241532515056470523491 wuhan    1231532515064351295620 changsha 15> insert students,addr=wuhan phone=111123 1532515052664001894> select * from students
name: students
time                addr     phone
----                ----     -----1532515052664001894 wuhan    1111231532515056470523491 wuhan    1231532515064351295620 changsha 15

> select * from students
name: students
time                addr     phone
----                ----     -----1532515052664001894 wuhan    1241532515056470523491 wuhan    1231532515064351295620 changsha 15> insert students,addr=wuhan phone=111123 1532515052664001894> select * from students
name: students
time                addr     phone
----                ----     -----1532515052664001894 wuhan    1111231532515056470523491 wuhan    1231532515064351295620 changsha 15      

删除一條記錄,用delete指令

> select * from students
name: students
time                addr     phone
----                ----     -----1532515052664001894 wuhan    1111231532515056470523491 changsha 1231532515056470523491 wuhan    123> delete from students where time=1532515056470523491> select * from students
name: students
time                addr  phone
----                ----  -----1532515052664001894 wuhan 111123
> select * from students
name: students
time                addr     phone
----                ----     -----1532515052664001894 wuhan    1111231532515056470523491 changsha 1231532515056470523491 wuhan    123> delete from students where time=1532515056470523491> select * from students
name: students
time                addr  phone
----                ----  -----1532515052664001894 wuhan 111123      
drop measurement students
drop measurement students      

III. 其他

1. 一灰灰Blog: https://liuyueyi.github.io/hexblog

2. 聲明

  • 微網誌位址: 小灰灰Blog