컬럼 추가는 배치 동기화가 끝날 때 전파되며, 이는 동기화 인터벌에 도달하거나 pull 배치 크기에 도달한 후에 발생할 수 있습니다. 동기화 제어에 대한 자세한 내용은 여기를 참조하십시오.
추가된 컬럼의 기본값
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는 컬럼이 추가되기 전에 생성된 파트에 일반적인 타입 기본값을 사용합니다. 기존 행에 소스 기본값을 포함해야 하는 경우 전체 테이블 갱신이 필요합니다.