>

스키마가 스키마 레지스트리에 저장되는 avro 형식의 값인 kafka 주제가 있습니다.

이제 다음과 같이 S3 싱크를 설정하고 싶습니다 : https://docs.confluent.io/current/connect/connect-storage-cloud/kafka-connect-s3/docs/s3_connector.html#basic-example

웹 페이지에서는 다음을 사용합니다

schema.generator.class=io.confluent.connect.storage.hive.schema.DefaultSchemaGenerator

생성 된 .avro 데이터를 다시로드하려고하면 스키마가 약간 다릅니다. 예를 들어 중첩 된 열거 형 유형은 문자열이되었습니다. GenericRecord 만 복원 할 수 있습니다   SpecificRecord 대신 .

스키마 레지스트리에서 스키마를 검색하는 스키마 생성기를 지정하는 방법이 있습니까?


  • 답변 # 1

    사용했다고 가정하고 레지스트리에서스키마를 받았습니다

    format.class=io.confluent.connect.s3.format.avro.AvroFormat
    
    

    Connect가 레지스트리에 도달하지 못하면 실제로 Avro 레코드를 쓰지 못합니다

    커넥터 자체가 아닌 Kafka Connect 작업자 속성 파일에서 레지스트리 구성을 설정했습니다. (connect-avro.properties 또는 이와 유사한 이름).

    또한 특정 레코드가 Connect 클래스 경로에 없을 가능성이 높으므로 일반 레코드로 변환됩니다. "추가 비 스키마"데이터 Connect 추가는 메타 데이터 일 뿐이지 만 해당 기능을 비활성화 할 수 있습니다

    connect.meta.data=false
    
    

    이 속성은 실제로 S3가 Avro 스키마와 연결하지 않고하이브 스키마에 대해 HDFS Connect에서만 사용됩니다. 적어도 3.3.0 이후에는 해당 속성이 "필수"되지 않습니다. 제거한 커밋을 기억하면

    열거 형에 관해서는 그렇습니다. 문자열로 변환되며 실제로 최신 릴리스 (Confluent 4.1)에서만 해결되었다고 생각하는 공개 문제입니다

    이 속성을 수정하여 수정해야합니다

    enhanced.avro.schema.support=true
    
    

  • 이전 laravel - JSON POST 요청을 보낼 때 'unqiue'유효성 검사 규칙이 중단되는시기를 어떻게 알 수 있습니까?
  • 다음 leiningen - Clojure에서 명령 줄 인수를 사용하는 방법은 무엇입니까?