pg_chdb - PostgreSQL에서 ClickHouse로 외부 데이터를 조회하고 가져오는 확장
3 days ago
17
- 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 라이선스
-
Homepage
-
Tech blog
- pg_chdb - PostgreSQL에서 ClickHouse로 외부 데이터를 조회하고 가져오는 확장