Поделиться через


Средство Avrotize

Avrotize — это универсальное средство для преобразования форматов данных и схемы базы данных и создания кода на различных языках программирования. Средство поддерживает преобразование схем таблиц Kusto в формат Apache Avro и наоборот с определением таблицы Kusto в команду Avrotize Schema. Средство обрабатывает динамические столбцы в таблицах Kusto следующим образом:

  • Вывод схемы с помощью выборки
  • Разрешение массивов и записей на любом уровне вложения
  • Обнаружение конфликтующих схем
  • Создание союзов типов для каждой другой ветви схемы

Заметка

Средство Avrotize k2a — это средство с открытым исходным кодом, предоставляемое as-is без поддержки продукта.

Преобразование определения таблицы в формат AVRO

С помощью команды avrotize k2a можно подключиться к базе данных Kusto и создать схему Avro с типом записи для каждой таблицы в базе данных.

Ниже приведены примеры использования команды:

  • Создайте схему Avro с объединением верхнего уровня с записью для каждой таблицы:

    avrotize k2a --kusto-uri <Uri> --kusto-database <DatabaseName> --avsc <AvroFilename.avsc>
    
  • Создайте файл каталога XRegistry с помощью оболочки CloudEvent и схем для каждого события:

    В следующем примере вы создаете файлы каталога xRegistry с схемами для каждой таблицы. Если входная таблица содержит CloudEvents, определяемые столбцами, такими как идентификатор , исходныйи тип , средство создает отдельные схемы для каждого типа события.

    avrotize k2a --kusto-uri <URI> --kusto-database <DatabaseName> --avsc <AvroFilename.xreg.json> --emit-cloudevents-xregistry --avro-namespace <AvroNamespace>
    

Преобразование схемы AVRO в объявление таблицы Kusto

Команду avrotize a2k можно использовать для создания объявлений таблиц KQL из схемы Avro и сопоставлений JSON. Он также может включать документы в объявления таблицы, извлеченные из заметок "doc" в типах записей Avro.

Если схема Avro является одним типом записи, выходной скрипт включает команду .create table для записи. Поля записи преобразуются в столбцы в таблице. Если схема Avro является объединением типов (массив верхнего уровня), выходной скрипт выдает отдельную команду .create table для каждого типа записи в союзе.

avrotize a2k  .\<AvroFilename.avsc> --out <KustoFilename.kql>

Средство Avrotize может преобразовать схемы JSON, XML-схему, схему ASN.1 и Protobuf 2 и Protobuf 3 в схему Avro. Сначала можно преобразовать исходную схему в схему Avro, чтобы нормализовать ее, а затем преобразовать ее в схему Kusto.

Например, чтобы преобразовать "address.json" в схему Avro, следующая команда сначала преобразует входной документ схемы JSON "address.json", чтобы нормализовать его:

avrotize j2a address.json --out address.avsc

Затем преобразуйте файл схемы Avro в схему Kusto:

avrotize a2k address.avsc --out address.kql

Вы также можете объединить команды для преобразования из схемы JSON через Avro в схему Kusto:

avrotize j2a address.json | avrotize a2k --out address.kql