HANGUL.WIKI

SQLite와 Parquet를 활용한 데이터 분석 효율화

SQLite and Parquet for Data Analysis Efficiency

2026-06-29
목차 (6개 섹션)

SQLite와 Parquet를 활용한 데이터 분석 효율화

데이터 엔지니어들 사이에서 "PostgreSQL이나 MySQL이 있는데 굳이 SQLite냐"는 논쟁은 오래됐다. 그런데 2023년을 기점으로 분위기가 달라졌다. DuckDB가 Parquet 파일을 직접 쿼리하는 기능으로 주목받으면서, SQLite와 Parquet 조합이 작은 팀의 분석 파이프라인에서 진지하게 거론되기 시작한 것이다.

SQLite가 분석 워크플로에 적합한 이유

SQLite는 서버 없이 단일 파일 하나로 동작한다. 설치가 필요 없고, 파일을 복사하면 DB가 통째로 이동한다. 이 단순함 덕분에 개발 환경과 분석 환경 사이의 불일치가 사라진다. Python의 sqlite3 모듈은 표준 라이브러리에 포함돼 있어 의존성 지옥도 없다.

실제 벤치마크를 보면, 500만 행 미만의 집계 쿼리에서는 SQLite가 PostgreSQL보다 빠른 경우도 있다. 디스크 I/O 최적화가 잘 된 SSD 환경에서 단일 쓰레드 읽기 성능은 오히려 네트워크 오버헤드가 없는 SQLite가 유리하다. 물론 동시 쓰기가 많거나 수억 행을 다루는 OLAP 워크로드에서는 한계가 명확하다.

Parquet의 역할: 저장과 전송의 혁신

Parquet는 Apache Hadoop 에코시스템에서 나온 열 지향(columnar) 파일 포맷이다. 2013년 Cloudera와 Twitter가 공동 개발했으며, Apache 재단 최상위 프로젝트로 승격된 것은 2015년이다.

열 지향 포맷의 핵심 이점은 분석 쿼리에 있다. "전체 고객 중 서울 거주자의 평균 구매금액"을 구하려면 수십 개 컬럼 중 cityamount 두 개만 읽으면 된다. 행 지향 포맷(CSV, 일반 테이블)은 모든 행의 전체 컬럼을 읽어야 하지만, Parquet는 필요한 컬럼만 골라 읽는다. 실제로 1억 행 테이블에서 컬럼 2개만 집계할 때 Parquet는 CSV 대비 디스크 읽기량이 10분의 1 이하로 줄어드는 사례가 보고된다.

게다가 Snappy, Zstd 같은 압축 알고리즘을 기본 지원한다. 100GB CSV 파일이 Parquet로 변환되면 10~20GB로 줄어드는 경우가 흔하다. 열별로 데이터 타입이 균일하기 때문에 압축률이 월등히 높다.

SQLite + Parquet 혼합 전략

두 기술을 조합하는 실용적 패턴은 이렇다: 운영 메타데이터나 소규모 참조 테이블은 SQLite에 두고, 대용량 이벤트 로그나 시계열 데이터는 Parquet 파일로 분리 보관한다. 분석 시에는 DuckDB나 Pandas가 두 소스를 함께 읽어 조인한다.

예를 들어 주식 데이터 분석 시스템을 구축한다면, 종목 메타데이터(종목코드, 업종, 상장일 등)는 SQLite에 수천 행으로 관리하고, 일별 시세 데이터 수천만 행은 연도별 Parquet 파티션으로 저장한다. 메타데이터 수정은 SQL로 즉시 가능하고, 대량 시세 조회는 Parquet의 컬럼 스캔으로 빠르게 처리한다.

실무 전환 시 주의점

Parquet는 스키마가 고정돼 있다. 컬럼을 추가하거나 타입을 바꾸려면 파일을 재작성해야 한다. SQLite는 ALTER TABLE ADD COLUMN으로 실시간 변경이 가능하지만, Parquet는 배치 단위로만 스키마 변경을 적용할 수 있다. 따라서 스키마가 자주 바뀌는 초기 설계 단계에는 SQLite가 적합하고, 구조가 안정된 이후 대용량 축적 데이터를 Parquet로 이관하는 순서가 현실적이다.

또한 Parquet는 갱신(UPDATE)이 없다. 불변(immutable) 파일이 기본 설계 철학이다. 특정 행을 수정하려면 파티션 전체를 재작성해야 한다. 이 제약 때문에 Parquet는 "한 번 쓰고 많이 읽는" 분석 데이터에 적합하고, 트랜잭션이 빈번한 운영 데이터에는 SQLite 또는 전통적 RDBMS가 맞다.

2024년 이후의 흐름

DuckDB 1.0이 2024년 6월 정식 출시되면서 "SQLite처럼 임베디드로 쓰면서 Parquet를 직접 쿼리"하는 조합이 급속히 확산됐다. DuckDB는 Pandas DataFrame, Parquet, SQLite 파일을 하나의 SQL 세션 안에서 동시에 다룰 수 있다. 로컬 분석 도구로는 Jupyter + DuckDB + Parquet 스택이 데이터 과학자들의 사실상 표준으로 자리잡아 가고 있다.

SQLite와 Parquet는 경쟁 관계가 아니다. 각자 잘하는 영역이 다르며, 이 두 도구를 적재적소에 배치하는 판단력이 곧 데이터 분석 효율화의 핵심이다.

문서 정보

최초 작성
최종 갱신
분류
기술

HANGUL.WIKI가 정리·작성한 문서입니다. 정확성을 위해 노력하나 오류가 있을 수 있으므로, 중요한 내용은 공식 출처를 통해 확인하시기 바랍니다. 내용의 오류나 정정 요청은 오류·정정 신고로 알려주시면 검토 후 반영합니다.