2017-01-12 2 views
2

공식 InfluxDB 고정 이미지를 사용하고 있습니다. 보존 정책을 기본값으로 14 days으로 설정하고 싶습니다.구성을 통한 InfluxDB의 기본 보유 정책 및 기간 설정 방법

INFLUXDB_RETENTION_POLICY과 같이 InfluxDB의 구성을 변경하기 위해 설정할 수있는 다양한 ENV 변수가 있습니다. 기본 보존 정책으로 사용되는 "기본값"과 같은 보존 정책의 이름이 필요합니다.

이 기본 정책의 지속 기간은 7 일입니다. 14 일로 설정해야합니다.

설명서가 다소 부족합니다. 기본 기간을 조정하려면 ENV 변수를 찾을 수 없습니다. INFLUXDB_RETENTION_POLICY 변수를 다른 보존 정책의 다른 이름으로 설정할 수도 있지만 구성을 통해 해당 보존 정책을 어떻게 만들 수 있는지 알 수 없습니다.

가의 사람이 알고 : 1) 구성 또는 2) 구성을 통해 보존 정책을

답변

5

는 불행하게도 기본값을 설정하는 방법이 없습니다 만드는 방법을 통해 유지의 기본 지속 시간을 변경하는 방법 구성을 통한 보존 정책. 그 이유는 일반적으로 보존 정책 기간이 데이터베이스를 생성하는 동안 정의되기 때문입니다.

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 
+0

감사합니다. 그러면 문제가 해결됩니다. 우리는 구성을 통해 InfluxDB에 하나의 데이터베이스를 만들고 이름 만 지정합니다. 어리석은 것처럼 보입니다. 그러나 우리는 kubernetes 포드의 도커 컨테이너에서 InfluxDB를 실행하고 있으며,이 설정을 자동화하는 방법은 아직 명확하지 않습니다. kubernetes가 포드를 만들 때까지 InfluxDB의 도커 볼륨이 생성되지 않습니다. 다른 날 다른 문제. –