91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

influxdb的原理和用法是什么

發布時間:2021-11-30 18:40:45 來源:億速云 閱讀:256 作者:柒染 欄目:數據庫

今天就跟大家聊聊有關influxdb的原理和用法是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

influxdb是什么

influxdb是一個由go語言開發的、用于存儲和分析時間序列數據的開源數據庫。特點如下:

  內置HTTP接口,使用方便

  數據可以打標記,查讓查詢可以很靈活

  類SQL的查詢語句

  安裝管理很簡單,并且讀寫數據很高效

  能夠實時查詢,數據在寫入時被索引后就能夠被立即查出

  支持數據存儲策略(RP)和數據歸檔(CQ)

  更多的描述,可以看influxdb官方描述。

influxdb安裝

我們可以直接從官方下載二進制安裝,也可以基于docker鏡像來安裝。基于docker鏡像安裝,執行如下命令即可

  docker run -d --name influxdb -p 8860:8086 \

  -v $PWD/influxdb.conf:/usr/local/influxdb/influxdb.conf:ro \

  -v $PWD:/data/influxdb \

  influxdb -config /usr/local/influxdb/influxdb.conf

參數描述:

  -d :在后臺運行容器,并打印出容器id

  --name influxdb 指定容器的名字

  -p 8081:8082 指定端口映射,將宿主機的8860端口,映射到容器的8086端口

  -v $PWD/influxdb.conf:/usr/local/influxdb/influxdb.conf:ro 將當前目錄下面influxdb.conf掛載到容器的/usr/local/influxdb/influxdb.conf目錄。因為默認掛載的路徑權限為讀寫,通過ro,可以限制權限為只讀,防止容器中修改配置文件。

  -v $PWD:/data/influxdb 將當前目錄,掛載到容器的 /data/infludb目錄。這樣,我們可以指定infludb的數據文件,寫到 /data/infludb這個目錄,這樣可以實現數據的落盤。

influxdb相關概念

  在使用infludb之前,我們先了解一波它的一些概念,比如database、Retention Policy、measurement、Continuous Query、point、field、tag等。首先,整體認識一下:

  1、database

  database即數據庫,可以類比mysql、mongo等數據庫。

  create database "test" --創建數據庫

  show databases --展示所有數據庫

  use test --選擇使用的數據庫

  2、Retention Policy

  retention policy,即存儲策略,簡稱RP,用來控制數據庫的存儲時間。 InfluxDB會比較服務器本地的時間戳和你數據的時間戳,并刪除比RP里面的持續時間更老的數據。單個數據庫中可以有多個RP,但是每個數據的RP是唯一的。RP的相關操作如下:

  查看數據庫 test的rp

  SHOW RETENTION POLICIES ON "test"

  給test數據庫創建新的rp

  CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 3w REPLICATION 1 DEFAULT

  rp_name:RP策略名

  db_name:具體的數據庫名

  3w:設置數據保存3個星期,3個星期之前的數據將被刪除,infludb它具有各種時間參數,比如:h(小時), d(天),w(星期)

  REPLICATION 1:副本個數,這里填1就可以了。

  DEFAULT 設為默認的策略。

  修改數據庫的rp

  修改rp使用如下命令:

  CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 3d DEFAULT

  刪除數據庫的rp

  DROP RETENTION POLICY "rp_name" ON "db_name"

  3、measurement

  measurement,可以類比傳統數據庫中的表。傳統額數據庫,支持增刪改查,infludb僅僅支持增和查,刪除可以同RP來實現。

  數據的插入

  influxdb支持http和rpc方式來插入數據,當然也支持命令行方式插入數據,如下:

  use test --使用 test數據庫

  insert weather,altitude=1000,area=北 temperature=11,humidity=-4

  其中:

  weather : 表名,即measurement的名字

  altitude=1000,area=北 為tag,可以把tag理解為mysql中帶索引的列。

  temperature=11,humidity=-4 為field,,可以把field理解為mysql中不帶索引的列。

  針對每條插入的數據,influxdb,會自動加一列,列的名字為time,用于記錄當前數據的時間。

  數據的查詢

  influxdb支持 where、group、order、limit等字句。如下:

  select * from weather order by time desc limit 5

  4、連續查詢(Continuous Queries)

  influxdb中的數據,當超過保存策略里指定的時間之后,就會被刪除。如果我們不想刪除掉,但是又擔心容量過大怎么辦呢?可以對數據采用更大的粒度,進行歸檔,即以降低精度為代價。比如把原先每秒的數據,歸檔存為分鐘的數據,把原先分鐘的數據,歸檔存為每小時或每天的數據等,這樣在容量固定的情況下,可以存儲更多的數據。在influxdb中,這種操作,叫連續查詢(Continuous Queries)。

  查看數據庫的Continuous Queries

  SHOW CONTINUOUS QUERIES

  創建Continuous Queries

  1CREATE CONTINUOUS QUERY cq_3d ON testDb BEGIN SELECT mean(age) as age INTO test_3days FROM test GROUP BY time(3d), * END

其中:cq_3d:連續查詢的名字

  testDb:具體的數據庫名。

  mean(age) as age: 計算age的平均值,后并字段名改為age

  test: measurement名稱,即基數據庫哪個表進行歸檔

  test_3days: measurement名稱,數據歸檔后,存儲的表名。

  3d:歸檔的頻率,即每間隔3天,歸檔一次。

  * :針對所有的tag進行group by操作,當然我們也可以基于特定的tag來group by操作。需要注意,針對哪些tags進行group by操作,那么歸檔后的表test_3days中,就會有哪些tags。

  刪除Continuous Queries

  刪除操作命令如下:

  DROP CONTINUOUS QUERY ON

看完上述內容,你們對influxdb的原理和用法是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南郑县| 阳曲县| 霍城县| 视频| 揭东县| 新化县| 虎林市| 甘孜| 济阳县| 巴林左旗| 仲巴县| 襄汾县| 万盛区| 温宿县| 容城县| 新巴尔虎右旗| 绥德县| 游戏| 阜康市| 蒲城县| 大化| 南江县| 修文县| 公安县| 都昌县| 绥芬河市| 新绛县| 裕民县| 英德市| 抚顺县| 兴安县| 阿拉善左旗| 哈尔滨市| 两当县| 岱山县| 山丹县| 山东省| 宁远县| 富平县| 延吉市| 中方县|