스트림 커넥트의 스키마 관리
스키마를 가져오고 생성하여 Avro 형식으로 메시지를 Apache 보내고 받습니다. Avro 형식을 사용하면 페이로드 크기를 줄이고 로컬 Kafka 인스턴스에 대한 통합을 간소화할 수 있습니다.
Avro는 스키마를 사용하여 인코딩된 데이터를 구조화하는 오픈 소스 데이터 직렬화 시스템입니다. Avro 스키마를 사용하면 데이터를 일반 텍스트 JSON에서 Avro 바이너리 형식으로 변환하거나 그 반대로 변환할 수 있습니다. 스키마를 ServiceNow에 저장할 수 있으므로 Stream Connect 생산자와 소비자가 스키마를 사용하여 Avro 메시지를 직렬화할 수 있습니다.
다음 이미지는 Stream Connect의 스키마 관리에 대한 개요를 보여 줍니다. 스키마 레지스트리에 저장된 스키마를 사용하면 생산자와 소비자의 메시지를 일반 텍스트에서 Avro 형식으로 변환하거나 그 반대로 변환할 수 있습니다.
스키마
Confluent 레지스트리에서 스키마를 가져오거나 JSON 파일을 업로드하거나 스키마를 JSON 형식 문자열로 직접 입력하여 고유한 독립 실행형 스키마를 만들 수 있습니다.
스키마를 가져오거나 만든 후 Confluent 스키마와 독립 실행형 스키마를 모두 저장하는 Stream Connect 스키마 [stream_connect_schema] 테이블에서 볼 수 있습니다. 또한 Confluent 스키마는 Confluent Stream Connect 스키마 [confluent_stream_connect_schema] 테이블에 표시됩니다. 독립 실행형 스키마는 독립 실행형 스트림 커넥트 스키마 [standalone_stream_connect_schema] 테이블에 있습니다.
모든 스키마에는 스키마의 전역적으로 고유한 식별자인 스키마 ID가 있습니다. Confluent 스키마의 경우 스키마 ID는 Confluent 레지스트리에서 가져옵니다. 독립 실행형 스키마의 경우 스키마 ID는 로컬에서 생성되며 인스턴스에서 고유합니다. 기본적으로 생성된 스키마 ID 값은 인스턴스에서 사용 가능한 다음으로 높은 스키마 ID입니다. 예를 들어 스키마의 ID 번호가 1에서 5인 경우 다음에 만드는 스키마의 스키마 ID는 6입니다. 기본값은 변경할 수 있습니다.
스키마 ID는 레지스트리마다 고유합니다. 예를 들어 두 스키마는 서로 다른 레지스트리에 있는 한 둘 다 ID가 1일 수 있습니다.
스키마 레지스트리
모든 스키마는 레지스트리에 속합니다. Confluent Schema Registry와 Standalone Schema Registry에는 두 가지 유형의 스키마 레지스트리 ServiceNow가 있습니다.
두 스키마 레지스트리에는 업데이트 세트에서 추적할 수 있는 옵션이 있습니다. 이 옵션을 사용하면 해당 레지스트리의 스키마가 업데이트 세트에 저장됩니다. 스키마를 업데이트 세트에 저장하면 한 환경에서 다른 환경으로 스키마를 이동할 수 있습니다. 스키마 ID가 한 환경에서 다른 환경으로 변경될 수 있으므로 Confluent 스키마 레지스트리에 대해 기본적으로 이 옵션이 꺼져 있습니다. 이 옵션은 스키마를 수동으로 생성하는 경우 스키마 ID가 한 환경에서 다른 환경으로 변경될 가능성이 적기 때문에 독립 실행형 스키마 레지스트리에 대해 활성화됩니다. 두 레지스트리 중 하나의 기본 설정을 변경하려면 을 클릭하고 레지스트리를 선택한 다음 업데이트 세트에서 추적 옵션을 변경합니다.
와이어 수준 메시지 형식
| 바이트 0 | 매직 바이트. |
| 바이트 1–4 | 스키마 ID입니다. |
| 남은 바이트 | Avro 형식으로 직렬화된 데이터입니다. |
생산자와 소비자
Stream Connect 생산자 및 소비자는 Avro 형식을 사용하도록 구성할 수 있습니다.
생산자를 구성할 때 사용할 스키마를 지정하기만 하면 됩니다. 그런 다음 생산자를 실행하면 메시지 페이로드가 JSON으로 생성되고 지정된 스키마를 사용하여 Avro 형식으로 자동 변환됩니다. 생산자에 대한 자세한 내용은 또는 ProducerV2 API를 참조하세요Kafka Producer step.
소비자 구성도 비슷합니다. 직렬화 형식을 Encoded 로 지정하고 스키마 레지스트리를 선택합니다. 소비자가 Avro 형식의 메시지를 수신하면 메시지에서 수신한 스키마 ID의 스키마에 따라 자동으로 JSON으로 변환됩니다. 자세한 내용은 Kafka 메시지 트리거 또는 ETL, 변환 맵 또는 스크립트 이용자를 참조하십시오.
플러그인
스키마 관리 기능을 사용하려면 Stream Connect 설치 관리자 [com.glide.hub.stream_connect.installer] 플러그인이 ServiceNow 필요합니다.