influxdb 保留策略

2023-07-19 06:00:35

轉載請註明出處:

  InfluxDB 中的保留策略用於定義時間序列資料在資料庫中的保留期限。保留策略決定了資料在 InfluxDB 中的儲存持續時間和精度。以下是 InfluxDB 的保留策略型別以及如何設定和檢視它們的詳細說明:

保留策略型別:

  1. 預設保留策略(Default Retention Policy):每個資料庫都有一個預設的保留策略,用於儲存未指定保留策略的資料。預設保留策略名稱為 autogen

  2. 使用者定義的保留策略(User-defined Retention Policy):使用者可以自定義保留策略,併為特定的測量表指定不同的保留策略名稱。使用者定義的保留策略可以有任意名稱。

設定保留策略:

  1.建立保留策略:

  使用以下語法建立使用者定義的保留策略:

CREATE RETENTION POLICY "<policy_name>" ON "<database_name>" DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>]
  • <policy_name>: 保留策略的名稱。

  • <database_name>: 要應用保留策略的資料庫名稱。

  • <duration>: 資料的保留期限,例如 1d 表示一天。

  • <replication_factor>: 資料的複製因子,指定資料在叢集中的副本數量。

  • <shard_duration>(可選): 如果要自定義分片持續時間,則可以指定分片的持續時間。

  2.修改保留策略:

    使用以下語法修改保留策略的引數:

ALTER RETENTION POLICY "<policy_name>" ON "<database_name>" DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>]:

  3.刪除保留策略:

  使用以下語法刪除保留策略:

DROP RETENTION POLICY "<policy_name>" ON "<database_name>"

  4.檢視保留策略:

  使用以下語法檢視資料庫中的所有保留策略和其詳細資訊:

SHOW RETENTION POLICIES ON "<database_name>"

  5.範例:

  假設我們有一個名為 mydb 的資料庫,並希望為其中的測量表 temperature 建立一個名為 one_week 的保留策略,保留期限為一週,複製因子為 1。以下是相關的 InfluxQL 查詢範例:

-- 建立保留策略
CREATE RETENTION POLICY "one_week" ON "mydb" DURATION 7d REPLICATION 1

-- 修改保留策略
ALTER RETENTION POLICY "one_week" ON "mydb" DURATION 8d REPLICATION 1

-- 檢視保留策略
SHOW RETENTION POLICIES ON "mydb"

-- 刪除保留策略
DROP RETENTION POLICY "one_week" ON "mydb"

  保留策略確定了資料在 InfluxDB 中的儲存週期和資料的複製副本數量,可以根據需求進行靈活調整。