InfluxDB基礎知識解析

2021-12-30 09:27:23 字數 1957 閱讀 6396

目錄

database

rentention policy

shardgroup & shard

shardgroup

shard

sharding

database

influxdb中有database的概念, 使用者可以通過 create database 的方式建立。

乙個例項可以包含多個database,乙個database可以包含多個mesurement。

rentention policy

簡稱rp,資料保留策略。用來指定資料的保留時間、副本數量以及每個shardgroup的時間跨度。shardgroup的概念將在後文介紹。rp建立語句如下:

create retention policy on

onduration

replication [shard duration ] [default]

其中retention_policy_name表示rp的名稱,database_name表示資料庫名稱,duration表示資料保留時間,n表示資料副本數。shard duration將在後文介紹。例如在testdb建立乙個只保留一天資料且副本數為1的rp:

create retention policy "one_day"

on "testdb"

duration 1d

replication 1 shard duration 1h default

rp有如下特徵:

rp是database的屬性 乙個database可以包含多個rp,但只有乙個預設rp 寫入資料時可以指定rp寫入,不指定則使用database的預設rp,指定方式:在measurement前加指定rp的名稱,例如:rp_oneday.measurement_name

shardgroup & shard

shardgroup

shardgroup是influxdb中乙個重要的邏輯概念,它負責指定時間跨度的資料儲存,這個時間跨度就由上文提到的建立rp時指定。如果沒有指定,系統將通過rp的資料保留時間來計算:

不同shardgroup的時間跨度不會重疊。shardgroup實現了資料按時間分割槽,這樣做的目的是什麼?

1. 一定程度上緩解資料寫入熱點問題

2. 加快資料刪除效率

將資料按照時間分割成小的粒度會使得資料過期實現非常簡單,influxdb中資料過期刪除的執行粒度就是shard group,系統會對每乙個shard group判斷是否過期,而不是一條一條記錄判斷。influxdb沒有提供刪除和更新資料的介面,資料只能通過rp進行刪除

3. 加快資料按時間維度查詢的效率

實現了將資料按照時間分割槽的特性。將時序資料按照時間分割槽是時序資料庫乙個非常重要的特性,基本上所有時序資料查詢操作都會帶有時間的過濾條件,比如查詢最近一小時或最近一天,資料分割槽可以有效根據時間維度選擇部分目標分割槽,淘汰部分分割槽

shard

從前文介紹的shardgroup的字面含義可知,乙個shardgroup包含多個shard(單機版本只有1個),shard是influxdb中真正儲存資料以及提供讀寫服務的概念,shard是influxdb的儲存引擎實現,具體稱之為tsm(time sort merge tree) engine,負責資料的編碼儲存、讀寫服務等。如下圖:

shard中各個小模組的作用及結構將在接下來的幾篇文章中詳細介紹。

sharding

shard group對資料按時間進行了分割槽,那落在乙個shard group中的資料又是如何對映到哪個shard上呢?

這裡我們就要說要influxdb的sharding策略。influxdb的sharding策略,在確定資料應該寫入哪個shardgroup之後,會根據series進行hash,決定資料寫入shardgroup下的哪個shard。

關係圖示例:

本篇主要簡單介紹了influxdb中db、rp、shardgroup、shard、sharding幾個概念,這些概念對了解influxdb的儲存引擎非常重要。

使用Jquery解析Json基礎知識

在web資料傳輸過程中,json是以文字,即json字串形式傳遞的,而客戶端接收到的是json物件,所以,json物件和json字串之間的相互轉換 json資料的解析是關鍵。先明確2個概念例如 json字串 var str1 json物件 var str2 可以簡單這樣理解 json物件是直接可以使...

DNS網域名稱解析基礎知識

dns domain name system,網域名稱系統 網際網路上作為網域名稱和ip位址相互對映的乙個分布式資料庫,能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的ip數串。通過主機名,最終得到該主機名對應的ip位址的過程叫做網域名稱解析 或主機名解析 2 cname 通常稱別...

收藏向 C Deque容器基礎知識解析

deque賦值操作 deque大小操作 deque插入和刪除 deque資料訪問 deque排序 功能 deque與vector區別 deque內部工作原理 deque deqt 預設構造形式 deque beg,end 建構函式將 beg,end 區間中的元素拷貝給本身。deque n,elem ...