日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

InfluxDB 简介、安装和简单使用

發布時間:2023/12/10 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 InfluxDB 简介、安装和简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

InfluxDB是一個由InfluxData開發的開源時序型數據庫。它由Go寫成,著力于高性能地查詢與存儲時序型數據。InfluxDB被廣泛應用于存儲系統的監控數據,IoT行業的實時數據等場景。可以理解為按時間記錄一些數據(常用的監控數據、埋點統計數據等),然后做統計
  • 與傳統數據庫的概念對比
influxDB中的名詞傳統數據庫中的概念
database數據庫
measurement數據庫中的表
points表中的一行數據
  • Point

    Point由時間戳(time)、數據(field)、標簽(tags)組成。
Point屬性傳統數據庫中的概念
time每個數據記錄時間,是數據庫中的主索引(會自動生成)
field各種記錄值(沒有索引的屬性)
tags各種有索引的屬性
  • Series

    Series 相當于是 InfluxDB 中一些數據的集合。 在同一個 database 中,retention policy、measurement、tag sets 完全相同的數據同屬于一個 series。 同一個 series 的數據在物理上會按照時間順序排列存儲在一起。
  • 組件

    TSM 存儲引擎主要由幾個部分組成: cache、wal、tsm file、compactor。
  • Cache:

    cache 相當于是 LSM Tree 中的 memtabl。插入數據時,實際上是同時往 cache 與 wal 中寫入數據,可以認為 cache 是 wal 文件中數據在內存中的緩存。當 InfluxDB 啟動時,會遍歷所有的 wal 文件,重新構造 cache,這樣即使系統出現故障,也不會導致數據的丟失。

    cache 中的數據并不是無限增長的,有一個 maxSize 參數(默認為 25MB)用于控制當 cache 中的數據占用多少內存后就會將數據寫入 tsm 文件。每當 cache 中的數據達到閥值后,會將當前的 cache 進行一次快照,之后清空當前 cache 中的內容,再創建一個新的 wal 文件用于寫入,剩下的 wal 文件最后會被刪除,快照中的數據會經過排序寫入一個新的 tsm 文件中。

  • WAL

    wal 文件的內容與內存中的 cache 相同,其作用就是為了持久化數據,當系統崩潰后可以通過 wal 文件恢復還沒有寫入到 tsm 文件中的數據。

  • TSM File

    單個 tsm file 大小最大為 2GB,用于存放數據。

  • Compactor

    compactor 組件在后臺持續運行,每隔 1 秒會檢查一次是否有需要壓縮合并的數據。

    主要進行兩種操作,一種是 cache 中的數據大小達到閥值后,進行快照,之后轉存到一個新的 tsm 文件中。

    另外一種就是合并當前的 tsm 文件,將多個小的 tsm 文件合并成一個,使每一個文件盡量達到單個文件的最大大小,減少文件的數量,并且一些數據的刪除操作也是在這個時候完成。

    • 目錄與文件結構

      InfluxDB 的數據存儲主要有三個目錄。默認情況下是 meta, wal 以及 data。

      meta 用于存儲數據庫的一些元數據,meta 目錄下有一個 meta.db 文件。

      wal 目錄存放預寫日志文件。

      data 目錄存放實際存儲的數據文件。

    安裝及配置

    • 環境

      ubuntu 20.04

    • 安裝

      sudo apt install influxdb

      sudo apt install influxdb-client

    • 查看狀態、啟動、關閉

      // 查看狀態 q退出 / 啟動 / 關閉 / 重啟
      sudo service influxdb status / start / stop / restart

      以服務方式啟動 sudo service influxdb start

      以非服務方式啟動 sudo influxd

    • 查看配置文件

      influxd config

    influxdb默認使用內存索引,所以在使用過程中內存占用會越來越大,并且導致查詢越來越慢 修改為tsi 磁盤索引: index-version="tsi1"


    官方詳細配置文件

    • 進入命令行客戶端
    influxinflux -precision rfc3339 (數據顯示時間而非時間戳)

    簡單使用

    • 數據庫與表的操作
    # 查詢所有數據庫 show databases# 創建數據庫 create database testDb; # 刪除數據庫 drop database testDb; # 選擇數據庫 use testDb1;# 查看該數據庫下的全部表 show measurements;# 創建表,直接在插入數據的時候指定表名 insert test,host=127.0.0.1,monitor_name=test count=1 # 刪除表 drop measurement "test"
    • 增查
    # 增 insert test,host=127.0.0.1,monitor_name=test count=1表名:test tag :(只能為字符串類型)host=127.0.0.1,monitor_name=test field :(類型無限制)count=1# 查 select * from test order by time desc
    • 數據保存策略(Retention Policies)
    # InfluxDB本身不提供數據的刪除操作,因此用來控制數據量的方式就是定義數據保留策略。 # 查看當前數據庫 Retention Policies show retention policies on "db_name"

    # name--名稱,此示例名稱為 autogen # duration--持續時間,0代表無限制 # shardGroupDuration--shardGroup的存儲時間,shardGroup是InfluxDB的一個基本儲存結構,應該大于這個時間的數據在查詢效率上應該有所降低。 # replicaN--全稱是REPLICATION,副本個數 # default--是否是默認策略# 創建新的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"注: # 策略這個關鍵詞“POLICY”在使用時應該大寫,小寫會出粗。 # 當一個表使用的策略不是默認策略時,在進行操作時一定要顯式的指定策略名稱,否則會出現錯誤。
    • 連續查詢(Continuous Queries)
    # 當數據超過保存策略里指定的時間之后就會被刪除,但是這時候可能并不想數據被完全刪掉,怎么辦? # influxdb提供了連續查詢,可以做數據統計采樣。 # InfluxDB的連續查詢是在數據庫中自動定時啟動的一組語句,語句中必須包含 SELECT 關鍵詞和 GROUP BY time() 關鍵詞。 # 查看數據庫的Continous Queries show continuous queries# 創建新的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:連續查詢名 # group by time(30m) 每三十分鐘取一個 sum(count) # InfluxDB會將查詢結果放在指定的數據表中:new_table_name# 刪除Continous Queries drop continous query cp_name on db_name

    添加用戶認證

    • 首先創建一個admin用戶
    # 顯示用戶 SHOW USERS# 創建用戶 CREATE USER "username" WITH PASSWORD 'password'# 創建管理員權限的用戶 CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES# 修改用戶(密碼) SET PASSWORD FOR "username" = 'new_password'# 刪除用戶 DROP USER "username"
    • 默認情況下,認證在配置文件是禁用的

      需要在配置文件里把 [http] 下的 auth-enabled 選項設置為 true 。

    • 重啟 influxd

      進入influx : influx -username username -password password

    總結

    以上是生活随笔為你收集整理的InfluxDB 简介、安装和简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。