RP是告訴influxdb資料要保留多久,只要資料過期將自動刪除,完全自動化無須人工介入。
influxdb不管在資料寫入、讀取和吞吐量都遠勝Elasticsearch,
處理大量資料批次寫入和資料彙總分析簡直是一塊蛋糕,
而且所需硬體資源相當低(CPU:2G*2,RAM:8G,SSD:256GB),
實務上,我選擇influxdb來儲存相關Server的metric(每10秒收集所有Server資料) ,
telegraf是我的logagent,使用grafana為UI,建立現代化儀表板,
了解每個SERVER的效能狀況,如果發生效能低落時也能自動通知(我測試過Email和Line),
同時你也正在建立每個系統效能基準線(baseline),
老兄我得告訴你,目前為止這一切真的很美好,anyway~~~讓我們回到RP主題:)
RP是一個容器,用來定義influxdb資料存放時間,一個資料庫可以有多個RP,但每個RP必須唯一,
我就來簡單說明一下RP
SHARD:
每個RP下會有很多SHARD,SHARD是實際存放influxdb的地方。
每個SHARD都會屬於一個SHARD Group,當然所有point也都在裡面。
SHOW RETENTION POLICIES ON "TST"
SHOW SHARDS
透過上面我這裡簡單解釋ID:28如下
TST資料庫資料保留時間約4個月(2856h0m0s),timestamp between 2017-05-08T00:00:00Z and 2017-05-15T00:00:00Z,
資料都存放在SHARD Group28,資料過期時間為2017-09-11T00:00:00Z,replicaN是指定資料備份數量(N:表示節點數量)
只要時間一到,influxdb將會自動移除,因實務上Server Log無須永久保存。
實際資料存放路徑
一些語法如下
-- Change duration and replication factor.
ALTER RETENTION POLICY "autogen" ON "TST" DURATION 17w REPLICATION 1
--Drop RP
DROP RETENTION POLICY "2_hours" ON "TST"
-- Set default retention policy for mydb to 1h.cpu.
ALTER RETENTION POLICY "1h.cpu" ON "mydb" DEFAULT
參考
https://docs.influxdata.com/influxdb/v1.2//troubleshooting/frequently-asked-questions/#retention-policies
InfluxDB Tops Cassandra in Time-Series Data & Metrics Benchmark
InfluxDB Markedly Outperforms Elasticsearch in Time-Series Data & Metrics Benchmark
influxdata/influxdb-comparisons