https://www.notion.so/TimescaleDB-a31941c1c7df4837ab4050357c87267c

 

TimescaleDB 테이블 생성 후 관리

TimeScaleDB란

www.notion.so

 

TimeScaleDB란

postgresql 기반으로 나온 시계열 데이터베이스다.

TimeScaleDB Table 생성

CREATE TABLE conditions (
    time        TIMESTAMPTZ       NOT NULL,
    location    TEXT              NOT NULL,
    temperature DOUBLE PRECISION  NULL
);

SELECT create_hypertable('conditions', 'time'); //hypertable 설정

시계열데이터베이스를 사용하기 위해선 hypertable설정을 해줘야 한다.

Chunk

table 생성후 hypertable 적용하면 chunk table이 생성된다.

chunk table을 따로 설정하지 않았다면 기본주기는 7일이며 7일뒤에 새로운 chunk table을 생성한다.

chunk table은 table에 저장된 data들을 가지고 있다.

chunk table 삭제시 data들도 삭제된다.

TimeScaleDB 오래된 데이터 제거

시계열 데이터는 데이터가 많이 쌓이므로 주기적으로 제거할 필요가 있지만

DELETE로 삭제시 많은 부하가 걸리므로 아래와 같은 방식을 공식홈페이지에선 추천한다.

SELECT add_retention_policy('conditions', INTERVAL '24 hours');

  • 24시간이 지난 chunk table 삭제

chunk table이 삭제가 안되는 경우

  1. chunk table이 한개밖에 없는 경우
    • chunk table의 주기를 확인해보자.

Chunk Table의 주기 설정

SELECT set_chunk_time_interval('conditions', INTERVAL '24 hours');

  • 24시간 주기 설정
  • 이 설정은 테이블 생성시 설정한 주기가 끝난 이후에 적용된다.
  • 만약 테이블 생성시 설정하지 않았다면 기본설정인 7일 이후에 적용된다.

마무리

  • 필요한 기능만 살펴보느라 아주 기본적인 기능만 살펴봤는데 기회가 되면 더 깊게 공부해볼 필요가 있는것 같습니다.

+ Recent posts