[influxDB] Retention Policy 설정하기 (삭제 정책)

Retention Policy

– 설정된 시간이 지난 데이터들은 자동으로 만료(삭제) 시켜주는 정책.
– 각 database마다 정의가 되어 있습니다.


설정 주요 항목 살펴보기

/etc/influxdb/influxdb.conf 파일을 살펴봅시다.

먼저 meta라는 문자열로 검색해보면 아래와 같은 설정 내용이 나옵니다.

retention-autocreate=true
: DB가 생성될 때 자동으로 retention policy가 생성되도록 허용한다.

다음으로 retention 문자열로 검색해보면 아래와 같은 설정 내용이 나옵니다.

(retention policy를 사용하기 위해서는 주석을 해제합니다)

enabled = true
: retention policy 사용여부 true

check-interval = "30m"
: retention policy 실행 검사 주기(30분마다 retention policy를 실행해야 하는지 여부를 검사합니다)

retention policy 살펴보기

retention policy는 테이블의 형태로 생성되어 있습니다.

> use "db_name"
> show retention policies

: 현재 DB의 retention policy를 볼 수 있습니다.

  • name: retention policy 이름
  • duration: DB가 data를 얼마 기간 동안 보존하는가(1h ~ INF)
  • shardGroupDuration: 데이터를 샤드 그룹으로 묶는 시간 범위(최소값 : 1h, 기본값은 duration에 따라 자동 결정)
  • replicaN: 클러스터에 저장되는 data의 복사본 수
  • default: 현재 DB의 기본 정책인지 여부

retention policy 다루기

retention policy는 테이블로 생성되었기 때문에 influxQL문으로 다룰 수 있습니다.

1. 이미 생성된 retention policy를 수정하기

ALTER RETENTION POLICY "policy_name" ON "db_name" retention_policy_option
                                                  [ retention_policy_option ]
                                                  [ retention_policy_option ]
                                                  [ retention_policy_option ]

예를 들어 duration2시간, shardGroupDuration1시간으로 설정하고 싶다면 아래와 같이 작성합니다.

ALTER RETENTION POLICY "policy_name" ON "db_name" DURATION 2h SHARD DURATION 1h

2. 새로운 retention policy 생성하기

CREATE RETENTION POLICY "policy_name" ON "db_name" duration_option
                                                   replication_option
                                                   [ shard_group_duration_option ]
                                                   [ "DEFAULT" ]

예를 들어, test라는 DB에
one_hour라는 이름의
duartion : 60m,
replication : 1,
default
retention policy를 생성한다고 할 때는 아래와 같이 작성합니다.

CREATE RETENTION POLICY "one_hour" ON "test" DURATION 60m REPLICATION 1 DEFAULT

3. database 생성과 함께 retention policy 정의

CREATE DATABASE db_name [ WITH [ duration_option ]
                               [ replication_option ]
                               [ shard_group_duration_option ]
                               [ retention_policy_name ]]

예를 들어, rp_test0라는 이름의 DB를 생성하는데
이때, duration하루,
Replication1개,
Shard duration30m,
이름이 one_day_shard_30m이라는
retention policy를 생성하고 싶다면 아래와 같이 작성합니다.

CREATE DATABASE "rp_test0" WITH DURATION 1d REPLICATION 1 SHARD DURATION 30m NAME "one_day_shard_30m"

참고 자료

좋은 웹페이지 즐겨찾기