Créer une connexion de données Event Grid pour Azure Data Explorer

Cet article vous montre comment ingérer des objets blob de votre compte de stockage vers Azure Data Explorer en utilisant une connexion de données Event Grid. Vous allez créer une connexion de données Event Grid qui définit un abonnement Azure Event Grid. L’abonnement Event Grid route les événements de votre compte de stockage vers Azure Data Explorer via un hub d’événements Azure.

Remarque

L’ingestion prend en charge une taille de fichier maximale de 6 Go. Nous vous recommandons d’ingérer des fichiers entre 100 Mo et 1 Go.

Pour savoir comment créer la connexion en utilisant des kits de développement logiciel (SDK) Kusto, consultez Créer une connexion de données Event Grid avec des kits de développement logiciel (SDK).

Pour obtenir des informations générales sur l’ingestion dans Azure Data Explorer à partir d’Event Grid, consultez Se connecter à Event Grid.

Remarque

Pour obtenir des performances optimales avec la connexion Event Grid, définissez la propriété d’ingestion rawSizeBytes via les métadonnées du blob. Pour plus d’informations, consultez Propriétés d’ingestion.

Prérequis

Créer une connexion de données à Event Grid

Dans cette section, vous établissez une connexion entre Event Grid et votre table Azure Data Explorer.

  1. Accédez à votre cluster Azure Data Explorer dans le Portail Azure.

  2. Sous Données, sélectionnez Bases de données>TestDatabase.

    Capture d’écran de la section de base de données du cluster montrant une liste des bases de données qu’il contient.

  3. Sous Paramètres, sélectionnez Connexions de données, puis sélectionnez Ajouter une connexion de données>Event Grid (Stockage Blob).

    Capture d’écran de la page des connexions de données. L’option qui permet d’ajouter une connexion de données est mise en surbrillance.

  4. Remplissez le formulaire de connexion de données Event Grid avec les informations suivantes :

    Capture d’écran du volet Event Grid montrant les détails de la connexion de données.

    Paramètre Valeur suggérée Description du champ
    Nom de la connexion de données test-grid-connection Nom de la connexion que vous souhaitez créer dans Azure Data Explorer. Les noms de connexion de données ne peuvent contenir que des caractères alphanumériques, des tirets et des points. Ils ne peuvent dépasser 40 caractères.
    Abonnement du compte de stockage Votre ID d’abonnement ID d’abonnement où se trouve votre compte de stockage.
    Type d'événement Objet blob créé ou Objet blob renommé Type d’événement qui déclenche l’ingestion. Le renommage d’objets blob est pris en charge uniquement pour le stockage ADLSv2. Pour renommer un blob, accédez au blob dans le Portail Azure, cliquez dessus avec le bouton droit et sélectionnez Renommer. Types pris en charge : Microsoft.Storage.BlobCreated ou Microsoft.Storage.BlobRenamed.
    Compte de stockage gridteststorage1 Nom du compte de stockage que vous avez créé précédemment.
    Création de ressources Automatique Activer la création automatique de ressource signifie qu’Azure Data Explorer vous crée un abonnement Event Grid, un espace de noms Event Hubs et un Event Hubs. Sinon, vous devez créer manuellement ces ressources pour garantir la création de la connexion de données. Consulter Créer manuellement des ressources pour l’ingestion Event Grid
    1. Vous pouvez éventuellement suivre des sujets Event Grid spécifiques. Définissez les filtres pour les notifications comme suit :

      • Le champ Préfixe est le préfixe littéral du sujet. Comme le modèle appliqué est un modèle commence par, il peut englober plusieurs conteneurs, dossiers ou blobs. Les caractères génériques ne sont pas autorisés.
        • Pour définir un filtre sur le conteneur d’objets blob, le champ doit être défini comme suit : /blobServices/default/containers/[container prefix].
        • Pour définir un filtre sur un préfixe d’objet blob (ou un dossier dans Azure Data Lake Gen2), le champ doit être défini comme suit : /blobServices/default/containers/[container name]/blobs/[folder/blob prefix].
      • Le champ Suffixe est le suffixe littéral de l’objet blob. Les caractères génériques ne sont pas autorisés.
      • Le champ Sensible à la casse indique si les filtres de préfixe et de suffixe respectent la casse.

      Pour plus d’informations sur le filtrage d’événements, consultez Événements de Stockage Blob.

    2. Vous pouvez éventuellement spécifier les Paramètres de routage des données en fonction des informations suivantes. Vous n’avez pas à spécifier tous les paramètres de routage des données. Des paramètres partiels sont également acceptés.

      Paramètre Valeur suggérée Description du champ
      Autoriser le routage des données vers d’autres bases de données (connexion de données à plusieurs bases de données) Ne pas autoriser Activez cette option si vous voulez remplacer la base de données cible par défaut associée à la connexion de données. Pour plus d’informations sur le routage de base de données, consultez Routage des événements.
      Nom de table TestTable Table que vous avez créée dans TestDatabase.
      Format de données JSON Les formats pris en charge sont APACHEAVRO, Avro, CSV, JSON, ORC, PARQUET, PSV, RAW, SCSV, SOHSV, TSV, TSVE, TXT et W3CLOG. Les options de compression prises en charge sont zip et gzip.
      Nom du mappage TestTable_mapping Le mappage que vous avez créé dans TestDatabase, qui mappe les données entrantes aux noms de colonnes et aux types de données de TestTable. S’il n’est pas spécifié, un mappage de données d’identité dérivé du schéma de la table est généré automatiquement.
      Ignorer les erreurs de format Ignorer Activez cette option si vous souhaitez ignorer les erreurs de format pour le format de données JSON.

      Remarque

      Les noms de table et de mappage sont sensibles à la casse.

    3. Éventuellement, sous Paramètres avancés, vous pouvez spécifier le Type d’identité managée utilisée par votre connexion de données. Par défaut, l’option Affectée par le système est sélectionnée.

      Si vous sélectionnez Affectée par l’utilisateur, vous devez attribuer manuellement une identité managée. Si vous sélectionnez un utilisateur qui n’est pas encore affecté à votre cluster, il sera automatiquement affecté. Pour plus d’informations, consultez Configurer des identités managées pour votre cluster Azure Data Explorer.

      Si vous sélectionnez Aucun, le compte de stockage et l’Event Hub sont authentifiés via des chaînes de connexion. Cette méthode n'est pas recommandée.

      Capture d’écran de la section des paramètres avancés affichant les types d’identités managées qui peuvent être utilisées pour la connexion de données.

  5. Sélectionnez Créer

Utiliser une connexion de données Event Grid

Dans cette section, vous allez découvrir comment déclencher l’ingestion à partir de Stockage Blob Azure ou d’Azure Data Lake Gen 2 vers votre cluster après la création d’un blob ou le changement de nom d’un blob.

Sélectionnez l’onglet approprié en fonction du type de Kit de développement logiciel (SDK) de stockage utilisé pour charger des blobs.

L’exemple de code suivant utilise le Kit de développement logiciel (SDK) Stockage Blob Azure pour charger un fichier dans Stockage Blob Azure. Le chargement déclenche la connexion de données Event Grid, qui ingère les données dans Azure Data Explorer.

var azureStorageAccountConnectionString = <storage_account_connection_string>;
var containerName = <container_name>;
var blobName = <blob_name>;
var localFileName = <file_to_upload>;
var uncompressedSizeInBytes = <uncompressed_size_in_bytes>;
var mapping = <mapping_reference>;
// Create a new container if it not already exists.
var azureStorageAccount = new BlobServiceClient(azureStorageAccountConnectionString);
var container = azureStorageAccount.GetBlobContainerClient(containerName);
container.CreateIfNotExists();
// Define blob metadata and uploading options.
IDictionary<String, String> metadata = new Dictionary<string, string>();
metadata.Add("rawSizeBytes", uncompressedSizeInBytes);
metadata.Add("kustoIngestionMappingReference", mapping);
var uploadOptions = new BlobUploadOptions
{
    Metadata = metadata,
};
// Upload the file.
var blob = container.GetBlobClient(blobName);
blob.Upload(localFileName, uploadOptions);

Remarque

Azure Data Explorer ne supprimera pas les objets blob après l’ingestion. Conservez les blobs pendant trois à cinq jours en utilisant le cycle de vie du Stockage Blob Azure pour gérer la suppression des blobs.

Remarque

Le déclenchement de l’ingestion après une opération CopyBlob n’est pas pris en charge pour les comptes de stockage sur lesquels la fonctionnalité d’espace de noms hiérarchique est activée.

Important

Nous déconseillons vivement de générer des événements de stockage à partir de code personnalisé et de les envoyer à Event Hubs. Si vous choisissez de le faire, assurez-vous que les événements produits respectent strictement le schéma approprié des événements de stockage et les spécifications de format JSON.

Supprimer une connexion de données Event Grid

Pour supprimer la connexion Event Grid du Portail Azure, procédez comme suit :

  1. Accédez à votre cluster. Dans le menu de gauche, sélectionnez Bases de données. Ensuite, sélectionnez la base de données qui contient la table cible.
  2. Dans le menu de gauche, sélectionnez Connexions de données. Ensuite, cochez la case en regard de la connexion de données Event Grid pertinente.
  3. Dans la barre de menus du haut, sélectionnez Supprimer.