Avro 스키마에 옵션 필드를 포함할 수 있습니까(즉, 필드가 .json 파일에 전혀 표시되지 않음).
Avro 스키마에 옵션필드를 설정할 수 있습니까(즉, 필드는 에 전혀 표시되지 않습니다).JSON 파일)?
Avro 스키마에는 다음 두 개의 필드가 있습니다.
{"name": "author", "type": ["null", "string"], "default": null},
{"name": "importance", "type": ["null", "string"], "default": null},
JSON 파일에는 이 두 필드가 존재할 수도 있고 존재하지 않을 수도 있습니다.
그러나 존재하지 않는 경우 다음과 같은 오류가 발생합니다(예를 들어 avro-tools 명령줄 클라이언트를 사용하여 이러한 JSON 파일을 테스트하는 경우).
Expected field name not found: author
필드명이 JSON에 존재하는 한, 이 필드명은null, 또는string여기서 나타내는 것은 "이 JSON은 필드명이 존재하지 않는 경우 유효하다" 또는 "이 필드명이 존재하고 늘 또는 문자열인 경우 유효하다"와 같은 것입니다.
Avro 스키마로 표현할 수 있나요?만약 그렇다면, 어떻게?
기본 속성을 정의되지 않은 예로 정의할 수 있으므로 필드를 건너뛸 수 있습니다.
{
"name": "first_name",
"type": "string",
"default": "undefined"
},
또한 모든 분야는 avro에서 조작이다.옵션인 경우 해당 유형을 null과 결합합니다.예:
{
"name": "username",
"type": [
"null",
"string"
],
"default": null
},
avro 사양에 따르면 이는 기본 속성을 사용하여 가능합니다.
https://avro.apache.org/docs/1.8.2/spec.html 를 참조해 주세요.
default: 이 필드의 기본값. 이 필드가 없는 인스턴스를 읽을 때 사용됩니다(옵션).아래 표에 따라 허용되는 값은 필드의 스키마 유형에 따라 달라집니다.유니언 필드의 기본값은 유니언의 첫 번째 스키마에 해당합니다.
이 예에서는 값이 "null"인 기본 속성을 추가하므로 이 기능이 작동합니다.단, 이 지원은 avro 메시지 읽기에 사용하는 라이브러리에 따라 달라집니다(c,c++,python,java,c#,ruby 등에 라이브러리가 있습니다).사용하고 있는 라이브러리에는, 이 기능이 없는 경우가 있습니다.
언급URL : https://stackoverflow.com/questions/29299610/is-it-possible-to-have-an-optional-field-in-an-avro-schema-i-e-the-field-does
'sourcecode' 카테고리의 다른 글
| 연장기에서 단일 항목을 선택하는 방법 (0) | 2023.02.11 |
|---|---|
| 어떻게 하면 spring boot 어플리케이션에서 letsencrypt SSL 증명서를 설정하고 사용할 수 있습니까? (0) | 2023.02.11 |
| Spring MVC/Spring Boot를 사용하여 적절한 글로벌 오류 핸들러를 작성하는 방법 (0) | 2023.02.11 |
| 오늘 연락처 양식 7의 날짜 보기 (0) | 2023.02.11 |
| Angular.js ng-복수의 tr에 걸쳐 반복 (0) | 2023.02.11 |