influxdb知識總結(2)--- influxdb 中的重要概念
RP(Retention Policy)
RP是資料庫級別,核心作用:
1 指定資料的過期時間
2 指定資料副本數量
3 指定shardgroup duration
shardgroup
每個shardgroup中包含多個shard,每個shardgroup只儲存指定時間段的資料。
shardgroup起到的作用是將時序資料按時間分割槽,便於根據時間緯度選擇目標資料分割槽。
shard
shard是influxdb中儲存引擎的實現,具體稱之為TSM,TSM的實現類似於LSM。shardgroup根據hash(series),將資料對映到不同的shard,所以相同series的資料肯定會處在同一個shard中。
如下圖所示,influxdb中的資料劃分形式:先按RP劃分,不同儲存策略的資料劃分到不同的RP下面,在RP下面按照時間range分割槽形成不同的shardgroup。同一個shardgroup下面的資料按照series進行hash分割槽。
influxdb的策略是典型的兩層sharding, 上層採用range sharding,下層採用hash sharding。對於時序資料而言,基於時間的range sharding是最合理的,但是這樣會存在寫入存在熱點的問題(最新的資料只會寫入最新的shard中),因此在下層採用series進行hash。
block
shard中負責具體儲存的結構稱為block。每個shard中包含若干個data block(資料檔案) 和 index block(索引檔案)。儲存結構如下所示:
時序資料在記憶體中是一個巨大的map:<key, List<TimeStamp/value>,其中key= series + fieldKey , 同一個block內只會儲存一種key對應的時序資料。datablock內部採用列式儲存,從而提高儲存效率。
TSM引擎工作原理:資料讀取
讀取原理如下所示:
1 首先根據key找到對應的indexblock。
2 利用indexblock裡面的索引資訊查詢到對應datablock在shard(即TSM檔案)中的位置
3 對查到的資訊載入到記憶體中進行進一步的過濾。
參考:初識influxdb
相關文章
- influxdb的基本概念UX
- 一次使用InfluxDB資料庫的總結UX資料庫
- influxdbUX
- Web(牛腩)概念知識總結Web
- InfluxDB中的inmem記憶體索引結構解析UX記憶體索引
- 在netcore中使用Influxdb2NetCoreUXDB2
- Vue知識總結(2)Vue
- InfluxDB入門UX
- InfluxDB 客戶端基礎操作2UX客戶端
- Influxdb的Meta data分析UX
- InfluxDB 2.x Open Source Time Series DatabaseUXDatabase
- influxdb使用入門UX
- JMeter+InfluxDB+GrafanaJMeterUXGrafana
- JS基礎知識總結(2)JS
- Vue重要知識小結Vue
- Kubernetes監控之InfluxDBUX
- Influxdb 介紹與使用UX
- influxdb 原理與應用UX
- Jmeter+Influxdb+Grafana搭建JMeterUXGrafana
- InfluxDB 管理工具UX
- InfluxDB Linux 下安裝Linux
- windows中啟動多個influxdb操作指南WindowsUX
- InfluxDB從原理到實戰 - 一篇文章搞懂InfluxDB時區UX
- 為什麼是InfluxDB | 寫在《InfluxDB原理和實戰》出版之際UX
- yii2 基礎知識總結
- 運維監控應知應會: InfluxDB 使用指南運維UX
- 開源Influxdb2高效能客戶端UXDB2客戶端
- 《MySQL重要知識點及面試總結》:推薦收藏MySql面試
- Java中IO流的知識點總結Java
- influxdb官網文件翻譯UX
- InfluxDB簡介與php用法UXPHP
- Influxdb 資料寫入流程UX
- 時序資料庫influxdb資料庫UX
- influxDB叢集模式實踐UX模式
- Influxdb中Select查詢請求結果涉及到的一些資料結構UX資料結構
- Vue知識精簡總結-更新中Vue
- servlet知識總結Servlet
- Cookie知識總結(-)Cookie