InfluxDB時序數據庫基本知識


InfluxDB是一個由InfluxData開發的開源時序型數據。它由Go寫成,着力於高性能地查詢與存儲時序型數據。InfluxDB被廣泛應用於存儲系統的監控數據,IoT行業的實時數據等場景。

安裝下載

官網界面打開js報錯,所以點擊下載沒有什么效果,后來在網上查了下在網頁中其實已經暴露出來了,需要用chrome瀏覽器開發者模式,搜索windows,找到influxdb,后面我要下載Chronograf也是采取了同樣的辦法。

點擊鏈接可以下載
influxdb-1.7.10_windows_amd64.zip
chronograf-1.8.0_windows_amd64.zip
kapacitor-1.5.5_windows_amd64.zip
telegraf-1.14.2_windows_amd64.zip

解壓到安裝盤

略過配圖

修改配置文件

修改conf文件,代碼如下,直接復制粘貼,注意修改路徑,帶D盤的改為你的安裝路徑就好,一共三個。

[meta]
  # Where the metadata/raft database is stored
  dir = "C:/influxdb/meta"

  # Automatically create a default retention policy when creating a database.
  # retention-autocreate = true

  # If log messages are printed for the meta service
  # logging-enabled = true

###
### [data]
###
### Controls where the actual shard data for InfluxDB lives and how it is
### flushed from the WAL. "dir" may need to be changed to a suitable place
### for your system, but the WAL settings are an advanced configuration. The
### defaults should work for most systems.
###

[data]
  # The directory where the TSM storage engine stores TSM files.
  dir = "C:/influxdb/data"

  # The directory where the TSM storage engine stores WAL files.
  wal-dir = "C:/influxdb/wal"
  ...后面省略一萬行

運行

  • 雙擊influxd.exe啟動數據庫。
  • 然后雙擊influx.exe,可以連接數據庫進行操作
  • 進入cmd命令,加載配置文件
cmd >> influxd -config influxdb.conf

建議通過nssm工具安裝成服務,這樣就不需要每次命令行啟動了。
下載地址如下:http://www.nssm.cc/download

我們選擇win64,進入文件夾后運行cmd,輸入nssm install InfluxDB 運行后出現如下界面:
重點說一下參數這一欄,Argument里輸入:-config influxdb.conf,類似上面在cmd中輸入Influxd -config influxdb.conf

安裝好后運行起來就好,Grafana的安裝類似上面的操作,只是Argument這一欄不需要輸入任何東西

Web界面管理

  • 解壓chronograf
  • 雙擊chronograf.exe,可以打開網頁管理界面,瀏覽器輸入http://localhost:8888/
    可以看到美妙的畫面,我用admin/admin可以登入,其實不輸密碼應該也可以,這里沒仔細研究。

基礎概念對比

概念 MySQL InfluxDB
數據庫(同) database database
表(不同) table measurement
列(不同) column tag(索引的,非必須)、field(不帶索引)、timestemp(唯一主鍵)
  • tag set:不同的每組tag key和tag value的集合;
  • field set:每組field key和field value的集合;
  • retention policy:數據存儲策略(默認策略為autogen)InfluxDB沒有刪除數據操作,規定數據的保留時間達到清除數據的目的;
  • series:共同retention policy,measurement和tag set的集合;
  • 示例數據如下: 其中census是measurement,butterflies和honeybees是field key,location和scientist是tag key

注意點

  • tag 只能為字符串類型
  • field 類型無限制
  • 不支持join
  • 支持連續查詢操作(匯總統計數據):CONTINUOUS QUERY
  • 配合Telegraf服務(Telegraf可以監控系統CPU、內存、網絡等數據)
  • 配合Grafana服務(數據展現的圖像界面,將influxdb中的數據可視化)

常用InfluxQL

  • 查看所有的數據庫
    show databases;
  • 使用特定的數據庫
    use database_name;
  • 查看所有的measurement
    show measurements;
  • 查詢10條數據
    select * from measurement_name limit 10;
  • 數據中的時間字段默認顯示的是一個納秒時間戳,改成可讀格式
    precision rfc3339; -- 之后再查詢,時間就是rfc3339標准格式
  • 或可以在連接數據庫的時候,直接帶該參數
    influx -precision rfc3339
  • 查看一個measurement中所有的tag key
    show tag keys
  • 查看一個measurement中所有的field key
    show field keys
  • 查看一個measurement中所有的保存策略(可以有多個,一個標識為default)
    show retention policies;

客戶端命令行方式操作

數據庫操作

  • create database 指定數據庫
  • show databases 顯示所有數據庫
  • drop database 指定數據庫
  • use 使用指定數據庫
Connected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10
>create database autocontrol
>show databases
name: databases
name
----
_internal
autocontrol

InfluxDB數據表操作

  • 當有數據插入時自動創建表
insert loop,hostname=Tag索引 value=值
  • 在insert執行語句中,tag與tag、field與field之間用都好進行分割,tag與field之間用空格分割
  • tag的value都是,String類型,不需要加雙引號
  • field的String類型數據,需要放在雙引號中,否則會報錯
  • 如果需要顯示添加時間戳,在filed后添加空格,再添加時間戳

查詢表

select * from loop
  • 刪除表
drop measurement loop

數據保存策略(Retention Policies)

influxDB是沒有提供直接刪除數據記錄的方法,但是提供數據保存策略,主要用於指定數據保留時間,超過指定時間,就刪除這部分數據。

查看當前數據庫Retention Policies

> show retention policies on autocontrol
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true
>

創建新的Retention Policies

create retention policy "rp_name" on "db_name" duration 3w replication 1 default
  • rp_name:策略名;
  • db_name:具體的數據庫名;
  • 3w:保存3周,3周之前的數據將被刪除,influxdb具有各種事件參數,比如:h(小時),d(天),w(星期);
  • replication 1:副本個數,一般為1就可以了;
  • default:設置為默認策略

修改Retention Policies

alter retention policy "rp_name" on "db_name" duration 30d default

刪除Retention Policies

drop retention policy "rp_name" on "db_name"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM