Я хочу сделать три вещи
- Проверить JSON по JSON-схеме
- Создать JSON-схему в AVRO Преобразователь схемы
- Создать JSON-схему вКонвертер Hive Table
Проблема, с которой я сталкиваюсь, состоит в том, что схема имеет цепочку ссылок.Я пытаюсь использовать этот JSON Schema Validator, который разрешает ссылки и проверяет, но в настоящее время получает некоторые ошибки.Но я не смог найти библиотеку для 2-го и 3-го задания.
И я должен создать процессоров Nifi для них.Я сделал это для первого.
Одна из моих идей - использовать Inline Parser для определения схем и создания одной большой схемы и использовать ее для задач и, надеюсь, всегопотом будет работать бесперебойно.
Любые предложения о том, что является хорошим подходом для решения этих проблем.Одна из схем прилагается.Любая помощь будет оценена.
{
"id": "/schemas/bi/events/identification/carrier",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Users Carrier Identified",
"description": "A successfully identified carrier of a user",
"type": "object",
"definitions": {
"carrier_identification_result": {
"type": "object",
"properties": {
"mno": {
"type": "string",
"title": "Mobile network operator",
"description": "The Mobile network operator",
"example": "Telekom"
},
"mvno": {
"type": "string",
"title": " Mobile virtual network operator",
"description": "The Mobile virtual network operator.",
"example": "Mobilcom-Debitel"
},
"mcc": {
"type": "string",
"title": "Mobile Country Code",
"description": "The Mobile Country Code as defined in the ITU-T Recommendation E.212",
"example": "262"
},
"mnc": {
"type": "string",
"title": "Mobile Network Code",
"description": "The Mobile Network Code as defined in the ITU-T Recommendation E.212",
"example": "01"
},
"country": {
"type": "string",
"title": "The code ISO 3166-1 alpha 2 for the country",
"example": "DE"
}
},
"required": [
"mno",
"country"
]
}
},
"allOf": [
{
"$ref": "../identification_service.json"
},
{
"properties": {
"type": {
"constant": "identification.carrier",
"example": "identification.carrier"
},
"event_data": {
"allOf": [
{
"$ref": "../identification_service.json#/definitions/event_data"
},
{
"type": "object",
"properties": {
"result": {
"$ref": "#/definitions/carrier_identification_result"
},
"required": [
"result"
]
}
}
]
}
}
}
]
}