본문으로 바로가기
본문으로 바로가기

Kafka ClickPipe용 스키마 레지스트리

ClickPipes는 Avro 및 Protobuf로 인코딩된 토픽을 디코딩할 수 있도록 스키마 레지스트리 통합을 지원합니다.

Kafka ClickPipes에서 지원되는 스키마 레지스트리

Confluent Schema Registry와 API 호환되는 스키마 레지스트리를 지원합니다. 여기에는 다음이 포함됩니다:

  • Confluent Schema Registry
  • Redpanda Schema Registry

ClickPipes는 아직 AWS Glue Schema Registry나 Azure Schema Registry를 지원하지 않습니다. 이러한 스키마 레지스트리에 대한 지원이 필요한 경우 당사 팀에 문의하십시오.

구성

ClickPipes 구성 중 스키마 레지스트리와 통합하려면 다음 접근 방식 중 하나를 사용해야 합니다.

  1. 스키마 subject에 대한 전체 경로를 제공합니다(예: https://registry.example.com/subjects/events).
    • 필요하다면 URL 끝에 /versions/[version]을 추가하여 특정 버전을 참조할 수 있습니다. 그렇지 않으면 ClickPipes에서 최신 버전을 가져옵니다.
  2. 스키마 ID에 대한 전체 경로를 제공합니다(예: https://registry.example.com/schemas/ids/1000).
  3. 루트 스키마 레지스트리 URL을 제공합니다(예: https://registry.example.com).

작동 방식

ClickPipes는 구성된 스키마 레지스트리에서 스키마를 동적으로 가져와 적용합니다.

  • 메시지에 스키마 ID가 포함되어 있으면 해당 ID를 사용해 스키마를 가져옵니다.
  • 메시지에 스키마 ID가 포함되어 있지 않으면 ClickPipe 설정에 지정된 스키마 ID 또는 subject name을 사용해 스키마를 가져옵니다.
  • 메시지가 내장된 스키마 ID 없이 작성되었고 ClickPipe 설정에 스키마 ID 또는 subject name도 지정되어 있지 않으면 스키마를 가져오지 않으며, 메시지는 건너뛰고 ClickPipes 오류 테이블에 SOURCE_SCHEMA_ERROR가 기록됩니다.
  • 메시지가 스키마를 준수하지 않으면 메시지는 건너뛰고 ClickPipes 오류 테이블에 DATA_PARSING_ERROR가 기록됩니다.
  • Protobuf 스키마에만 해당: ClickPipes는 의존성으로 정의된 import 스키마를 모두 로드합니다. 외부 참조가 있는 Avro 스키마는 아직 지원되지 않습니다.

스키마 매핑

다음 규칙은 가져온 스키마와 ClickHouse 대상 테이블 간 매핑에 적용됩니다.

  • 스키마에 ClickHouse 대상 매핑에 포함되지 않은 필드가 있는 경우, 해당 필드는 무시됩니다.
  • 스키마에 ClickHouse 대상 매핑에 정의된 필드가 누락된 경우, 해당 ClickHouse 컬럼은 0 또는 빈 문자열과 같은 0 값으로 채워집니다. DEFAULT 표현식은 지원되지 않는다는 점에 유의하십시오.
  • 스키마 필드와 ClickHouse 컬럼이 호환되지 않는 경우, 해당 행/메시지의 삽입은 실패하며, 실패 내역은 ClickPipes 오류 테이블에 기록됩니다. 여러 암시적 변환(예: 숫자 타입 간 변환)은 지원되지만, 모든 경우를 지원하는 것은 아닙니다(예: Avro 레코드 필드는 Int32 ClickHouse 컬럼에 삽입할 수 없습니다).