는 불행하게도 기본값을 설정하는 방법이 없습니다 만드는 방법을 통해 유지의 기본 지속 시간을 변경하는 방법 구성을 통한 보존 정책. 그 이유는 일반적으로 보존 정책 기간이 데이터베이스를 생성하는 동안 정의되기 때문입니다.
CREATE DATABASE <database_name>
[WITH [DURATION <duration>] [REPLICATION <n>]
[SHARD DURATION <duration>] [NAME <retention-policy-name>]]
사용자가 구성을 통해 기본 보존 기간을 설정하도록 허용 한 경우, 명령
CREATE DATABASE mydb
의 결과가 인스턴스에서 인스턴스에 다를 것이다. 이것이 반드시 문제가되는 것은 아니지만 이상적인 것은 아닙니다.
이 기본 정책의 지속 기간은 7 일입니다. 14 일로 설정해야합니다.
InfluxDB의 기본 보유 정책은 무한합니다.
> CREATE DATABASE mydb
> SHOW RETENTION POLICIES ON mydb
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true
는 여기에서 우리는 보존 정책의 지속 시간이 무한하고 샤드 그룹 기간의 별칭 7 일 168h0m0s
입니다 0s
인 것을 알 수있다.
여기서 혼란의 주요 포인트는 상대적으로 일반적이라고 생각합니다. 주로 보존 정책이 제대로 지정되지 않았기 때문입니다. InfluxDB에서 데이터베이스는 보존 정책의 컨테이너이고 보존 정책은 실제 시계열 데이터의 컨테이너입니다. 즉, 보유 방침은 포함 된 모든 데이터에 대한 정책이있는 컨테이너와 마찬가지로 방침의 정책이 아닙니다.
내 권장 사항은 InfluxDB에서 데이터베이스를 만들 때 항상 완전히 명시 적으로 표시하는 것입니다. 이렇게하면 항상 데이터베이스에 올바른 보유 기간이 보장됩니다. 따라서 14 일 보존 정책을 사용하여 데이터베이스를 만들려면 명령을 내리십시오.
CREATE DATABASE mydb WITH DURATION 14d
감사합니다. 그러면 문제가 해결됩니다. 우리는 구성을 통해 InfluxDB에 하나의 데이터베이스를 만들고 이름 만 지정합니다. 어리석은 것처럼 보입니다. 그러나 우리는 kubernetes 포드의 도커 컨테이너에서 InfluxDB를 실행하고 있으며,이 설정을 자동화하는 방법은 아직 명확하지 않습니다. kubernetes가 포드를 만들 때까지 InfluxDB의 도커 볼륨이 생성되지 않습니다. 다른 날 다른 문제. –