InfluxDB 基本認識


一、InfluxDB 簡介
  InfluxDB 是用Go語言編寫的一個開源分布式時序、事件和指標數據庫,無需外部依賴。類似的數據庫有Kairosdb、OpenTsdb等。
  三大特性:
      時序性(Time Series):與時間相關的函數的靈活使用(諸如最大、最小、求和等);
      度量(Metrics):對實時大量數據進行計算;
      事件(Event):支持任意的事件數據,換句話說,任意事件的數據我們都可以做操作。

有以下七大特點:
  1)schemaless(無結構),可以是任意數量的列;
  2)可拓展的;
  3)支持min, max, sum, count, mean, median 等一系列函數,方便統計;
  4)原生的HTTP支持,內置HTTP API;
  5)強大的類SQL語法;
  6)自帶管理界面,方便使用,Built-in Explorer 自帶管理工具;
  7)Powerful Query Language 類似sql;

influxdb的兩個http端口:
  port 8083:管理頁面端口,訪問localhost:8083可以進入你本機的influxdb管理頁面;
  port 8086:http連接influxdb client端口,一般使用該端口往本機的influxdb讀寫數據。

二、基本操作:
  influxdb相關名詞
    database:數據庫;
    measurement:數據庫中的表;
    points:表里面的一行數據。

  influxDB中獨有的一些概念
    Point由時間戳(time)、數據(field)和標簽(tags)組成。
    time:每條數據記錄的時間,也是數據庫自動生成的主索引;
    fields:各種記錄的值;
    tags:各種有索引的屬性

  數據庫與表的操作:
    #進入influxDB數據庫
    influx
    #創建數據庫
    create database "db_name"
    #顯示所有的數據庫
    show databases
    #刪除數據庫
    drop database "db_name"
    #使用數據庫
    use db_name
    #顯示該數據庫中所有的表
    show measurements
    #創建表,直接在插入數據的時候指定表名
    insert test,host=127.0.0.1,monitor_name=test count=1
    #刪除表
    drop measurement "measurement_name"

    #清空數據庫表里面的數據
    delete from tbname

    InfluxDB中既有顯式的新建表的語句,也有通過insert數據的方式來建立新表
    insert tbname,hostname=server01 value=4422
    其中 tbname就是表名,hostname是索引(tag),value=xx是記錄值(field),記錄值可以有多個,系統自帶追加時間戳或者添加數據時,自己寫入時間戳
    insert tbname,hostname=server01 value=442221834240i 1435362189575692182

    show retention policies on "db_name"     查看當前數據庫Retention Policies
    創建新的Retention Policies
    create retention policy "rp_name" on "db_name" duration 3w replication 1 default

    查看measurement里面的tags和fields
    show tag keys from measurement_name
    show field keys from measurement_name
    select * from measurement_name

    創建新的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:設置為默認策略

    創建新的Continous Queries
    create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end
      - cq_name:連續查詢名字;
      - db_name:數據庫名字;
      - sum(count):計算總和;
      - table_name:當前表名;
      - new_table_name:存新的數據的表名;
      - 30m:時間間隔為30分鍾

三、數據錄入
InfluxDB三種操作方式:

客戶端命令行方式
  插入數據:
  curl -i -X POST 'http://localhost:8086/write?db=monitor' --data-binary 'monitor,host=server01,region=us-west value=0.60'
查詢數據:
  curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=monitor" --data-urlencode "q=SELECT * FROM measurement_name "

HTTP API接口
插入數據
  Postman: http://localhost:8086/write?db=monitor&u=root&p=123456
  Body: measurement_name,host=localhost,name=zhangsan sex=male,age=20
  measurement_name相當於表名,host=localhost,name=zhangsan 是tagset,類似索引,sex=male,age=20 是filed字段,也就是存到數據庫里面的數據。
查詢數據: 查詢結果以Json的數據格式返回
  http://localhost:8086/query?db=monitor&q=SELECT * FROM measurement_name

各種語言API庫
Influxdb有針對各種語言的API
Java maven依賴

<dependency>
  <groupId>org.influxdb</groupId>
  <artifactId>influxdb-java</artifactId>
  <version>2.7</version>
</dependency>

Influxdb的數據保留策略:

  InfluxDB的數據保留策略(RP)用來定義數據在InfluxDB中存放的時間,或者定義保存某個期間的數據。一個數據庫可以有多個保留策略,但每個策略必須是獨一無二的。
  show retention policies on dbName 可以查看指定數據庫的數據保留策略.
  其中duration是數據保留時間,shardGroupDuration是每個shard上的數據的時間跨度,replicaN是數據的副本數量,default是指這個retention policy是否是指定數據庫的默認數據保留策略
  創建數據保留策略並設置為默認數據保留策略
  create retention policy "2_hours" on "monitor" duraption 2h replication 1 default
  修改數據保留策略
  alter retention policy "2_hours" on "monitor" duraption 4h default
  刪除數據保留策略
  drop retention policy "2_hours" on "monitor"

四、用戶管理
  #顯示用戶
  show users
  #創建用戶
  create user "username" with password 'password'
  #創建管理員權限用戶
  create user "username" with password 'password' with all privileges
  #刪除用戶
  drop user "username"

InfluxDB參考官方文檔: https://docs.influxdata.com/influxdb/v1.4/

 


免責聲明!

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



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