ClickHouse Cloud 사용자에게는 PostgreSQL을 ClickHouse로 복제할 때 ClickPipes를 사용할 것을 권장합니다. ClickPipes는 PostgreSQL용 고성능 Change Data Capture (CDC)를 네이티브로 지원합니다.
이 테이블 엔진은 실험적 기능입니다. 사용하려면 설정 파일에서 또는
SET 명령을 사용해 allow_experimental_materialized_postgresql_table을 1로 설정하십시오:materialized_postgresql_tables_list 설정을 사용할 것을 강력히 권장합니다(데이터베이스 schema도 추가할 수 있게 될 예정입니다). 이 방식이 CPU 사용량, 연결 수, 원격 PostgreSQL 데이터베이스 내부의 replication slot 수 측면에서 훨씬 더 효율적입니다.
테이블 생성
host:port— PostgreSQL 서버 주소.database— 원격 데이터베이스 이름.table— 원격 테이블 이름.user— PostgreSQL 사용자 이름.password— 사용자 비밀번호.
요구 사항
-
PostgreSQL 구성 파일에서 wal_level 설정 값은
logical이어야 하며,max_replication_slots매개변수 값은 최소2이상이어야 합니다. -
MaterializedPostgreSQL엔진을 사용하는 테이블에는 PostgreSQL 테이블의 replica identity 인덱스(기본값: 기본 키(primary key))와 동일한 기본 키(primary key)가 있어야 합니다(replica identity 인덱스에 대한 자세한 내용 참조). - Atomic 데이터베이스만 사용할 수 있습니다.
-
MaterializedPostgreSQL테이블 엔진은 구현에 PostgreSQL 함수 pg_replication_slot_advance가 필요하므로 PostgreSQL 버전 11 이상에서만 작동합니다.
가상 컬럼
SELECT 쿼리에서 항상 사용할 수 있습니다.
_version 컬럼은 WAL의 LSN 위치와 같으므로, 복제가 얼마나 최신 상태인지 확인하는 데 사용할 수 있습니다.
TOAST 값의 복제는 지원되지 않습니다. 대신 해당 데이터 타입의 기본값이 사용됩니다.