본문 바로가기

DataBase

(3)
[TimescaleDB] timezone이 필요한 날짜 데이터 빠르게 select 하기 들어가기 앞서TimescaleDB는 PostgreSQL 진영의 time series 데이터를 저장하기 위한 DB이다. 시계열 데이터를 처리하기 위해 최적화된 데이터베이스로, 실시간으로 쌓이는 대규모 데이터를 처리하기 위해 만들어졌다. 이 글을 작성하는 이유는, timezone을 계산해야하는 상황에서 쿼리가 보다 빠르게 동작시키기 위해서 고생한 흔적이 들어있다. 내용환경설정DB 실행docker run -d --name timescaledb -p 5432:5432 -e POSTGRES_PASSWORD=password timescale/timescaledb:latest-pg15 Table 생성create table realtime_datas ( id serial, event_time timestamptz no..
[TimescaleDB documents] time_bucket() Why?영어 공부 및 지식 습득Summarytime_bucket()을 이용하면, 시간 버킷을 단위로 데이터를 집계할 수 있다.내용TimescaleDB를 이용하면, time_bucket()함수를 사용 할 수 있는데, 이는 사용자가 원하는 시간 만큼 집계를 가능하게 한다. PostgreSQL의 date_bin() 함수와 비슷한데, 시작 시간과 버킷의 사이즈에 대해서 더 좋은 확장성을 가지고 있다. 시계열 데이터를 다루려면, 반드시 다운 샘플링(시간 빈도를 줄이는 것)이나 분석이 필요하다. Bucketing이 동작하는 방식time interval을 이용해서, 데이터를 그룹한다. time_bucket()함수는 interval length로 microseconds, milliseconds, seconds, min..
[TimescaleDB] TimescaleDB 동작 방식 Why? 동작원리를 이해함으로써 추후 문제의 원인 파악보다 넓은 관점에서 해석 가능하다. TimescaleDB? PostgreSQL을 기반으로하는 오픈소스 시계열 데이터베이스이다. 시계열 데이터를 효율적으로 저장하고, 쿼리를 할 수 있는 기능을 담당한다. 현재의 많은 기업들의 비즈니스 모델이 시계열 데이터를 기반으로 하는 만큼 PostgreSQL 진영에서 많이 사용된다. Hypertable TimescaleDB는 시계열 데이터를 관리하기 위해서 "하이퍼 테이블"을 이용한다. 하이퍼 테이블은 데이터를 시간별로 자동으로 분할하는 PostgreSQL 테이블이다. 하이퍼 테이블의 장점은 일반 PostgreSQL 테이블과 동일한 방식으로 하이퍼 테이블과 상호 작용하지만, 시계열 데이터를 보다 빠르고, 쉽게 관리할..