Kafka ClickPipes에서 지원되는 스키마 레지스트리
- Confluent 스키마 레지스트리
- Redpanda 스키마 레지스트리
구성
- 스키마 subject의 전체 경로를 제공합니다(예:
https://registry.example.com/subjects/events)- 필요에 따라 URL에
/versions/[version]을 추가하여 특정 버전을 참조할 수 있습니다(그렇지 않으면 ClickPipes가 최신 버전을 가져옵니다).
- 필요에 따라 URL에
- 스키마 ID의 전체 경로를 제공합니다(예:
https://registry.example.com/schemas/ids/1000) - 스키마 레지스트리 루트 URL을 제공합니다(예:
https://registry.example.com)
작동 방식
- 메시지에 스키마 ID가 포함되어 있으면 이를 사용해 스키마를 가져옵니다.
- 메시지에 스키마 ID가 포함되어 있지 않으면 ClickPipe 구성에 지정된 스키마 ID 또는 subject 이름을 사용해 스키마를 가져옵니다.
- 메시지가 내장된 스키마 ID 없이 작성되었고 ClickPipe 구성에도 스키마 ID 또는 subject 이름이 지정되지 않은 경우, 스키마를 가져오지 않으며 해당 메시지는 건너뜁니다. 이때 ClickPipes 오류 테이블에
SOURCE_SCHEMA_ERROR가 기록됩니다. - 메시지가 스키마를 준수하지 않으면 해당 메시지는 건너뜁니다. 이때 ClickPipes 오류 테이블에
DATA_PARSING_ERROR가 기록됩니다. - Protobuf 스키마에만 해당: ClickPipes는 종속성으로 정의된 가져온 스키마를 모두 로드합니다. 외부 참조가 있는 Avro 스키마는 아직 지원되지 않습니다.
스키마 매핑
- 스키마에 ClickHouse 대상 매핑에 포함되지 않은 필드가 있으면 해당 필드는 무시됩니다.
- 스키마에 ClickHouse 대상 매핑에 정의된 필드가 없으면 ClickHouse 컬럼은 0 또는 빈 문자열과 같은 “제로” 값으로 채워집니다.
DEFAULT표현식은 지원되지 않습니다. - 스키마 필드와 ClickHouse 컬럼이 호환되지 않으면 해당 행/메시지의 삽입이 실패하고, 이 실패는 ClickPipes 오류 테이블에 기록됩니다. 일부 암시적 변환(예: 숫자 타입 간 변환)은 지원되지만, 모든 경우가 지원되는 것은 아닙니다(예: Avro 레코드 필드는
Int32ClickHouse 컬럼에 삽입할 수 없습니다).