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 라이선스
Read Entire Article