Skip to main content
ClickPipes for Postgres는 소스 테이블의 스키마 변경을 감지할 수 있으며, 경우에 따라 이러한 변경 사항을 대상 테이블에 자동으로 전파할 수 있습니다. 각 DDL 작업이 처리되는 방식은 아래에 설명되어 있습니다. 컬럼 추가는 배치 동기화가 끝날 때 전파되며, 이는 동기화 인터벌에 도달하거나 pull 배치 크기에 도달한 후에 발생할 수 있습니다. 동기화 제어에 대한 자세한 내용은 여기를 참조하십시오.

추가된 컬럼의 기본값

컬럼을 추가할 때 ClickPipes는 값을 ClickHouse로 안전하게 변환할 수 있는 경우에만 기본값을 전파합니다. 기본값이 전파되면 ClickHouse는 새 컬럼이 추가되기 전에 생성된 데이터 파트를 읽을 때 해당 값을 사용합니다. 따라서 ClickHouse에 이미 있는 행에는 PostgreSQL이 ADD COLUMN 이전의 행에 사용하는 것과 동일한 값이 표시되며, 전체 테이블 갱신은 필요하지 않습니다. PostgreSQL에서 ClickPipes는 컬럼의 현재 기본 표현식이 아니라 PostgreSQL이 기존 행에 저장한 값을 읽습니다. 기본값이 표현식인 경우 이 점이 중요합니다. now()와 같은 비휘발성 표현식은 컬럼을 추가할 때 PostgreSQL에서 평가되며, ClickPipes는 표현식 자체가 아닌 그 결과값을 전파합니다. 이후 SET DEFAULT 또는 DROP DEFAULT 작업을 수행해도 기존 행에 사용되는 기본값은 변경되지 않으며 ClickHouse로 전파되지 않습니다. 다음 값이 전파됩니다.
  • Boolean 및 유한한 숫자 값
  • varchar, char, enum, UUID, JSON/JSONB, hstore, 네트워크 주소, 날짜를 포함한 텍스트 값
  • 타임스탬프. 시간대가 있는 타임스탬프는 UTC로 정규화됩니다.
NULL, 유한하지 않은 숫자 값, bytea, 배열, 인터벌, 시간 값, 기하 타입 등 ClickHouse로 안전하게 이식할 수 없는 형식의 기본값은 생략됩니다. 컬럼은 계속 추가되지만, ClickHouse는 컬럼이 추가되기 전에 생성된 파트에 일반적인 타입 기본값을 사용합니다. 기존 행에 소스 기본값을 포함해야 하는 경우 전체 테이블 갱신이 필요합니다.
마지막 수정일 2026년 8월 14일