✅ 1. 청크(Chunk)의 개념과 "물리적인 데이터 분리"
🔹 청크란?
- 하나의 큰 테이블 데이터를 시간/범위 기준으로 나누어 저장한 작은 단위
- 주로 TimescaleDB와 같은 확장 모듈에서 사용
- 예: test라는 테이블이 있다고 하면, test_chunk_1, test_chunk_2 등으로 나뉘게 됨
🧱 “물리적인 데이터 분리”란?
단순히 "논리적으로 구분된 데이터"가 아니라, 실제 디스크상에서 각각의 청크가 독립된 테이블로 생성되어 분산 저장되는 것을 말합니다.
📌 쉽게 말하면:
큰 창고(test 테이블)를 작은 박스들(test_chunk_xx 테이블)로 나눠 담는 것!
🖼 그림 예시
┌────────────────────────────┐
│ test 테이블 │
└────────────────────────────┘
↓ 청크 분리
┌────────────┐ ┌────────────┐ ┌────────────┐
│ test_chunk_1 │ │ test_chunk_2 │ │ test_chunk_3 │
│ (2023년 1월) │ │ (2023년 2월) │ │ (2023년 3월) │
└────────────┘ └────────────┘ └────────────┘
- 각 청크는 실제로 독립적인 테이블로 생성됨 (pg_class 테이블에도 각각 존재)
- 따라서 test라는 테이블에는 보이지 않지만, 백엔드에서는 청크들이 물리적으로 존재하는 것입니다.
✅ 2. 청크 vs 압축 – 목적과 차이
항목 청크 (Chunk) 압축 (Compression)
목적 | 데이터 분산 관리 / 빠른 조회 | 저장공간 절약 / 대용량 데이터 최적화 |
동작 방식 | 테이블을 시간/공간 단위로 쪼개서 저장 | 중복 데이터를 줄이고, 열 기반으로 데이터 압축 |
효과 | 쿼리 속도 개선 (필요한 청크만 검색) | 저장 용량 감소 / 디스크 I/O 절감 |
사용 시점 | 대량 데이터가 주기적으로 쌓일 때 (ex. 로그, 센서) | 오래된 데이터를 더 이상 자주 조회하지 않을 때 |
PostgreSQL 기본기능? | ❌ (TimescaleDB 등 확장 기능) | ❌ (TimescaleDB 압축 기능 필요) |
📌 요약
- 청크는 데이터를 잘게 나눠서 저장하는 것 → 조회 성능 ↑
- 압축은 데이터의 공간을 줄이는 것 → 저장공간 ↓
👉 둘 다 성능 향상 목적이 있지만,
→ 청크는 "분산 저장 & 빠른 조회",
→ 압축은 "공간 절약 & 아카이빙"에 더 초점이 있습니다.
728x90
'코딩공부 > DB' 카테고리의 다른 글
시계열데이터 PostgreSQL Timescale 압축률과 조회속도 (0) | 2025.04.23 |
---|---|
시계열 데이터베이스(TSDB)란? (0) | 2025.03.04 |
mysql 데이터베이스 기본 명령어 (0) | 2022.12.06 |
★현재까지 배운 DB관련 내용 총정리★ (0) | 2022.12.05 |