Partage via


Outil Avrotize

Avrotize est un outil polyvalent pour convertir des formats de schéma de données et de base de données et générer du code dans différents langages de programmation. L’outil prend en charge la conversion des schémas de table Kusto en format Apache Avro et inversement avec la définition de table Kusto Convertir la définition de table Kusto en commande de schéma Avrotize. L’outil gère les colonnes dynamiques dans les tables Kusto par :

  • Inférence du schéma à l’aide de l’échantillonnage
  • Résolution des tableaux et des enregistrements à n’importe quel niveau d’imbrication
  • Détection de schémas en conflit
  • Création d’unions de type pour chaque branche de schéma différente

Note

L’outil Avrotize k2a est un outil open source fourni as-is sans prise en charge du produit.

Convertir la définition de table au format AVRO

Vous pouvez utiliser la commande avrotize k2a pour vous connecter à une base de données Kusto et créer un schéma Avro avec un type d’enregistrement pour chacune des tables de la base de données.

Voici quelques exemples d’utilisation de la commande :

  • Créez un schéma Avro avec une union de niveau supérieur avec un enregistrement pour chaque table :

    avrotize k2a --kusto-uri <Uri> --kusto-database <DatabaseName> --avsc <AvroFilename.avsc>
    
  • Créez un fichier catalogue XRegistry avec des wrappers CloudEvent et des schémas par événement :

    Dans l’exemple suivant, vous créez des fichiers catalogue xRegistry avec des schémas pour chaque table. Si la table d’entrée contient cloudEvents identifiés par des colonnes telles que id, source et type, l’outil crée des schémas distincts pour chaque type d’événement.

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

Convertir le schéma AVRO en déclaration de table Kusto

Vous pouvez utiliser la commande avrotize a2k pour créer des déclarations de table KQL à partir du schéma Avro et des mappages JSON. Il peut également inclure des documents dans les déclarations de table extraites des annotations « doc » dans les types d’enregistrements Avro.

Si le schéma Avro est un type d’enregistrement unique, le script de sortie inclut une commande .create table pour l’enregistrement. Les champs d’enregistrement sont convertis en colonnes dans la table. Si le schéma Avro est une union de type (tableau de niveau supérieur), le script de sortie émet une commande .create table distincte pour chaque type d’enregistrement dans l’union.

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

L’outil Avrotize est capable de convertir les schémas JSON, XML Schema, ASN.1 Schema et Protobuf 2 et Protobuf 3 en schéma Avro. Vous pouvez d’abord convertir le schéma source en schéma Avro pour le normaliser, puis le convertir en schéma Kusto.

Par exemple, pour convertir «address.json» en schéma Avro, la commande suivante convertit d’abord un document de schéma JSON d’entrée «address.json» pour le normaliser :

avrotize j2a address.json --out address.avsc

Convertissez ensuite le fichier de schéma Avro en schéma Kusto :

avrotize a2k address.avsc --out address.kql

Vous pouvez également chaîner les commandes pour effectuer la conversion à partir du schéma JSON via Avro en schéma Kusto :

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