피드로 돌아가기
Less Database, More Files
Dev.toDev.to
Database

Immutable 데이터의 Object Storage 이전으로 DB 비용 및 관리 부하 제거

Less Database, More Files

nicolas.vbgh2026년 6월 24일19intermediate

Context

매년 데이터 규모가 2배로 증가하는 Postgres 환경에서 읽기 전용의 Genomic Mutation 데이터가 전체 저장 공간의 상당 부분을 점유함. Update나 Delete가 발생하지 않는 Immutable 데이터임에도 불구하고, 트랜잭션 및 Lock 관리 등 고비용의 RDBMS 메커니즘을 그대로 사용하며 발생하는 리소스 낭비와 관리 복잡성이 한계점에 도달함.

Technical Solution

  • Change-management가 불필요한 Immutable 데이터의 특성을 파악하여 RDBMS에서 분리한 File-based 저장 구조 설계
  • Columnar Storage 포맷인 Parquet를 도입하여 쿼리 시 필요한 컬럼만 선택적으로 읽어 I/O 효율성 극대화 및 높은 압축률 달성
  • 서버리스 환경의 Object Storage(S3/GCS)를 활용하여 스토리지 확장성 확보 및 관리 오버헤드 제거
  • DuckDB를 애플리케이션 내장 라이브러리로 통합하여 서버리스 쿼리 엔진을 통한 Object Storage 직접 조회 구현
  • VCF 파일의 단순 언패킹 및 저장 방식에서 Parquet 기반의 구조화된 읽기 방식으로 전환하여 데이터 소유권 및 정체성 명확화

1. 데이터셋 중 UPDATE/DELETE 빈도가 0에 수렴하는 Immutable 테이블이 존재하는지 식별

2. Point Lookup보다 Range Scan이나 특정 컬럼 집계 쿼리가 주를 이루는지 분석

3. 데이터 증가율이 기하급수적이며 이로 인해 DB Migration 및 Backup 시간이 임계치에 도달했는지 확인

4. Parquet + DuckDB 조합의 POC를 통해 기존 SQL 쿼리와의 호환성 및 읽기 성능 검증

원문 읽기