반응형
1. TimescaleDB란?
시간에 따라 데이터를 저장하고 싶을 때 사용하는 데이터베이스이다. 보통 이런걸 시계열 데이터베이스 라고 한다.
TimescaleDB는 Postgresql의 extension이다. 대충 확장팩이라고 생각하면 될듯
주식그래프 같이 시간에 따른 데이터를 저장해야 할 때 이 데이터베이스를 사용해야 한다.
2. 설치
공식문서를 들어가면 자기네들 클라우드를 사용하라고 가이드를 엄청 하는데, 실제 개발 테스트에서는 커맨드로 하고 싶은게 보통이다.
하기 링크를 참고하여 커맨드로 설치해주자
3. 하이퍼테이블의 개념과 생성방법
하이퍼테이블이란 TimescaleDB의 핵심 기능중 하나이다. 하이퍼 테이블은 chunk단위로 시간 데이터를 저장한다. 만약 아래의 그림처럼 chunk의 interval을 1day로 하면, 하이퍼테이블은 데이터를 삽입할 때 알아서 chunk단위로 분류 해 준다. 인터벌 값은 내맘대로 바꿀 수 있다.
아래는 각 환경별로 하이퍼테이블을 생성하는 가이드 링크이다.
4. 하이퍼테이블의 chunkinterval 설정방법
먼저 chunk internval 확인방법은 다음과 같다
SELECT h.table_name, c.interval_length
FROM _timescaledb_catalog.dimension c
JOIN _timescaledb_catalog.hypertable h
ON h.id = c.hypertable_id;
위 쿼리를 입력하면 아래와 같이 나온다
table_name | interval_length
-----------+-----------------
metrics | 604800000000
(1 row)
chunk interval을 설정하는 방법은 다음과 같다
먼저 생성할때는 테이블을 생성한뒤에 아래와 같은 쿼리를 이용한다
SELECT create_hypertable(
'conditions',
by_range('time', INTERVAL '1 day')
);
이미 존재하는 하이퍼테이블의 chunk interval을 바꾸고 싶다면 아래와 같은 쿼리를 이용한다.
SELECT set_chunk_time_interval('conditions', INTERVAL '24 hours');
5. 하이퍼 테이블 수정방법
Column추가하는 방법은 다음과 같다
ALTER TABLE conditions
ADD COLUMN humidity DOUBLE PRECISION NULL;
테이블의 이름을 수정하고 싶다면 다음과 같은 쿼리를 이용한다
ALTER TABLE conditions
RENAME TO weather;
반응형
'Fast API > fastapi 팁' 카테고리의 다른 글
[FastAPI] 이미지 파일 업로드 하기 (1) | 2021.12.13 |
---|---|
[postgresql] create table 하는 방법 (0) | 2021.11.17 |
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)? (0) | 2021.11.17 |
Is the server running locally and accepting connections on that socket (0) | 2021.11.16 |
Postgresql 로그인 접속실패 해결방법 (0) | 2021.11.16 |
댓글