Avro Schema для неструктурированных данных со случайными именами - PullRequest
0 голосов
/ 07 мая 2019

Мне нужно сохранить вложенные объекты данных с непредсказуемыми именами в схеме Avro.Например:

 {
    "foo": "bar",
    "baz": {
        "randomName1": 0.23,
        ...
    }
}

Поскольку создание рекурсивных карт возможно только с записями , но записи должны иметь имя поля, я думаю, мне нужно преобразовать объект во что-то еще.

Я думаю об одном из этих трех вариантов:

(1) Массив вложенных пар ключ / значение

Пример:

[
    {
        key: "foo",
        value: "bar"
    },
    {
        key: "baz",
        value: [
            {
                name: "randomName1",
                value; 0.23
            },
            ...
        ]
    },
]

(2) Плоская карта с парами ключ / значение с синтаксической точкой:

Пример:

{
    "foo": "bar",
    "baz.randomName1": 0.23,
    ...
}

(3) Массив сплющенного ключа/ объекты значения

Пример:

[
    {
        "name": "foo",
        "value": "bar"
    },
    {
        "name": "baz.randomName1",
        "value": 0.23
    },
    ...
]

Все три подхода хорошо подходят для Avro, но я не уверен в последствиях любого из этих подходов, например, при попытке запросить эти значениячерез KSQL.

Высоко ценится любой намек на потенциальные возможности, полученные в дальнейшем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...