pg_chdb - PostgreSQL에서 ClickHouse로 외부 데이터를 조회하고 가져오는 확장
요약
pg_chdb는 PostgreSQL 환경에서 ClickHouse의 강력한 데이터 처리 기능을 활용할 수 있도록 돕는 확장 도구입니다. 이 모듈은 S3, GCS 등 다양한 클라우드 스토리지와 로컬 파일 시스템에서 데이터를 직접 조회하거나 테이블로 가져오는 기능을 제공합니다. 특히 Parquet, Arrow, Avro 등 여러 형식과 압축 파일을 효율적으로 처리하며, 데이터 로딩 성능이 기존 도구 대비 크게 향상되었습니다.
핵심 포인트
- S3/GCS 등 클라우드 스토리지에서 PostgreSQL로 직접 데이터 조회 가능
- Parquet, Arrow, Avro 등 다양한 파일 형식을 지원하여 범용성이 높음
- 데이터 가져오기 성능이 기존 방식(pg_duckdb, pg_lake) 대비 2~3배 빠름
- 별도의 보조 프로세스에서 실행되어 PostgreSQL 세션에 영향을 주지 않도록 설계됨
- S3나 로컬 파일의 데이터를
PostgreSQL에서 직접 조회하거나 테이블로 가져올 수 있게 하는 ClickHouse의 확장 도구 - ClickHouse 기반 엔진인
chDB를 사용하며,chdb_query()
에 쿼리를 넘기면 결과를 PostgreSQL의 행과 열로 반환
chdb_hook
모듈은 기존 COPY 명령을 확장해 S3/GCS/Azure Blob/HTTP/로컬 파일에서 데이터를 가져오거나 내보내기 지원
- CSV/JSON뿐 아니라
Parquet/Arrow/Avro/ORC 등 다양한 형식과 압축 파일을 처리하며, 파일명 패턴으로 여러 파일을 한 번에 읽을 수 있음
CREATE TABLE
에 파일 URL을 지정하면 열 구조를 자동으로 추론하고 데이터까지 채워 테이블을 생성
-
자체 벤치마크의 약 100만 행 데이터 가져오기에서 pg_duckdb와 pg_lake는 CSV/JSON/Parquet 처리에 약 2~3배의 시간이 걸림
-
일반 SQL 쿼리 전체가 아니라, 해당 데이터와 형식의
가져오기 성능을 비교한 결과 -
chDB는 별도의
보조 프로세스에서 실행되며, 이 프로세스가 비정상 종료돼도 다른 PostgreSQL 세션에는 영향을 주지 않도록 구성 -
현재 각 쿼리는 임시 chDB 데이터베이스에서 독립적으로 실행되므로, chDB 쿼리로 만든 테이블을 다음 호출에서 다시 사용할 수 없음
-
큰 작업이 PostgreSQL의 CPU 자원을 과도하게 사용하지 않도록 스레드 수 제한을 권장하며, 메모리 상한도 설정 가능
-
PostgreSQL 15 이상과 chDB 26.7.0 이상이 필요하며, Linux/macOS에서 소스 빌드로 설치
-
Apache-2.0 라이선스
댓글과 토론
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기