소개
이 라이브러리는 Postgres에서 chDB 쿼리를 실행하고 다양한 포맷 및 객체 스토리지로 데이터를 복사하거나 그로부터 데이터를 가져올 수 있는 PostgreSQL 확장 기능을 제공합니다.chdb 확장 기능
chdb 확장 기능은 chDB 쿼리를 실행합니다. chdb_query() 함수는 단일 쿼리를 실행합니다. 예를 들어 다음 쿼리는:
chdb_hook 모듈
chdb_hook 모듈은 COPY 명령에 후크를 걸어 S3, GCS, Azure Blob, 파일 또는 http URL과 데이터를 주고받으며 복사합니다. 다음 예시는 단일 COPY 명령으로 S3에 있는 여러 CSV 파일의 레코드를 로드합니다:
times 테이블에는 로드된 각 파일의 레코드가 포함됩니다:
포맷 벤치마킹
benchmark는 다양한 포맷으로 저장된 약 100만 행 규모의 NYC Taxi dataset을 대상으로 [chdb_hook]COPY의 성능을 [aws_s3], [pg_duckdb], [pg_lake]와 비교합니다.

추가 벤치마킹에서도 다양한 포맷으로 NYC Taxi dataset을 가져올 때 비교적 일관된 성능이 나타납니다:

아키텍처
chdb 및 chdb_hook 확장 기능은 chDB 쿼리를 실행하기 위해chdb_helper 프로세스를 사용합니다. 이 헬퍼는 chDB의 리소스 사용량을 메인 Postgres 프로세스와 분리하므로, 데이터 레이크에서 데이터를 로드하는 것처럼 간헐적으로만 수행되는 워크플로우에서 유리합니다.
의존성
chdb 확장 기능을 사용하려면 PostgreSQL 15 이상과 chDB 라이브러리 v26.7.0 이상이 필요합니다(현재 Linux와 macOS에서만 사용 가능). 가장 간단한 설치 방법은 lib.chdb.io 셸 스크립트를 사용하는 것입니다:
make 명령어를 실행하기 전에 다음 변수를 설정하십시오.
Makefile은 정적 libchdb 라이브러리를 다운로드하여 앱에 컴파일해 넣습니다.
Linux에서는 설치 make 명령어를 실행하기 전에 export BUNDLE_LIBCHDB=1을 설정하면, 설치 과정에서 동적 libchdb 라이브러리를 다운로드하여 설치하도록 할 수도 있습니다.
소스에서 컴파일하기
chdb를 빌드하려면 다음을 실행하십시오:gmake라는 이름으로 이미 설치되어 있을 수 있습니다:
pg_config가 설치되어 있고 경로(PATH)에 포함되어 있는지 확인하십시오. RPM과 같은 패키지 관리 시스템으로 PostgreSQL을 설치했다면 -devel 패키지도 함께 설치되어 있는지 확인하십시오. 필요한 경우 다음과 같이 빌드 프로세스에 해당 위치를 지정하십시오:
/usr/local을 지정하십시오:
install에만 prefix 인수를 전달하십시오(다른 make 타깃에는 전달하지 마십시오):
postgresql.conf 매개변수]에 포함되어 있는지 확인하십시오: