InfluxDB에서 데이터 보존 정책(Retention Policy, RP)을 적용할 때 기존 데이터를 유지하는 방법은 몇 가지 단계를 거쳐야 합니다. 데이터 손실을 방지하기 위해 기존 데이터를 새로운 보존 정책이 적용된 데이터베이스로 이동하거나, 새로운 보존 정책을 기존 데이터베이스에 적용할 수 있습니다. 여기서는 기존 데이터를 유지하면서 새로운 보존 정책을 설정하는 방법을 단계별로 설명하겠습니다.
먼저, 기존 데이터베이스에 새로운 보존 정책을 생성합니다. 새로운 보존 정책을 생성할 때는 데이터 보존 기간과 복제 인수를 지정해야 합니다. 예를 들어, 30일 동안 데이터를 보존하고 복제 인수를 1로 설정하는 경우 다음과 같이 합니다:
CREATE RETENTION POLICY "new_policy" ON "your_database" DURATION 30d REPLICATION 1
새로운 보존 정책을 기본 정책으로 설정합니다. 이렇게 하면 새로운 데이터는 이 보존 정책에 따라 저장됩니다.
ALTER RETENTION POLICY "new_policy" ON "your_database" DEFAULT
기존 데이터를 새로운 보존 정책이 적용된 시리즈로 이동해야 합니다. 이를 위해 SELECT INTO
명령어를 사용하여 데이터를 복사합니다. 예를 들어, 기존 데이터의 보존 정책이 "autogen"이라고 가정할 때 다음과 같이 합니다:
SELECT * INTO "your_database"."new_policy".:MEASUREMENT FROM "your_database"."autogen"./.*/ GROUP BY *
위 명령어는 기존 데이터베이스의 모든 시리즈를 새로운 보존 정책이 적용된 시리즈로 복사합니다. :MEASUREMENT
는 원래 측정값을 유지합니다.
데이터가 제대로 복사되었는지 확인합니다. 이를 위해 몇 가지 쿼리를 실행하여 데이터가 새로운 보존 정책 하에 있는지 확인합니다.
USE "your_database"
SHOW RETENTION POLICIES
기존 데이터를 새로운 보존 정책으로 성공적으로 이동한 후, 필요에 따라 기존 보존 정책을 삭제할 수 있습니다. 하지만 데이터를 백업하는 것이 중요합니다. 삭제하는 경우 다음과 같이 합니다:
DROP RETENTION POLICY "autogen" ON "your_database"
SELECT INTO
명령어를 사용하여 기존 데이터를 새로운 보존 정책으로 이동.이 단계를 따르면 데이터 손실 없이 새로운 보존 정책을 적용할 수 있습니다. 데이터 백업을 먼저 수행하여 안전을 확보하는 것도 좋은 방법입니다.