Partager via


Ingérer des données d’Event Hubs dans l’explorateur de données Azure Synapse

Azure Synapse Data Explorer est un service d’exploration de données rapide et hautement scalable pour les données des journaux et les données de télémétrie. Azure SynapseData Explorer offre une ingestion (chargement de données) à partir de hubs d’événements, de hubs IoT et d’objets blob écrits dans des conteneurs d’objets blob.

L’Explorateur de données Azure Synapse offre une ingestion (chargement de données) à partir d’Event Hubs, plateforme de streaming de Big Data et service d’ingestion d’événements. Event Hubs peut traiter des millions d’événements par seconde en quasi-temps réel. Dans cet article, vous créez une instance Event Hubs, vous vous y connectez à partir de l’Explorateur de données Azure Synapse et vous voyez le flux de données dans le système.

Prérequis

  • Un abonnement Azure. Créez un compte Azure gratuit.

  • Créez un pool Data Explorer en utilisant Synapse Studio ou le portail Azure

  • Créez une base de données Data Explorer.

    1. Dans Synapse Studio, dans le volet de gauche, sélectionnez Données.

    2. Sélectionnez +(Ajouter une nouvelle ressource) >Pool Data Explorer et utilisez les informations suivantes :

      Paramètre Valeur suggérée Description
      Nom du pool contosodataexplorer Nom du pool Data Explorer à utiliser
      Nom TestDatabase Ce nom de base de données doit être unique dans le cluster.
      Période de conservation par défaut 365 Intervalle de temps (en jours) pendant lequel vous avez la garantie d’avoir les données à disposition pour les interroger. Cet intervalle se mesure à partir du moment où les données sont ingérées.
      Période de cache par défaut 31 Intervalle de temps (en jours) pendant lequel les données fréquemment interrogées restent disponibles dans le stockage SSD ou la RAM, plutôt que dans un stockage à plus long terme.
    3. Sélectionnez Créer pour créer la base de données. La création prend généralement moins d’une minute.

  • Créer une table cible à laquelle Event Hubs enverra des données

    1. Dans Synapse Studio, dans le volet de gauche, sélectionnez Développer.

    2. Sous Scripts KQL, sélectionnez + (Ajouter une nouvelle ressource) >Script KQL. Dans le volet de droite, vous pouvez nommer votre script.

    3. Dans le menu Connecter à, sélectionnez contosodataexplorer.

    4. Dans le menu Utiliser la base de données, sélectionnez TestDatabase.

    5. Collez la commande suivante, puis sélectionnez Exécuter pour créer la table.

      .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
      

      Conseil

      Vérifiez que la table a bien été créée. Dans le volet gauche, sélectionnez Sonnées, sélectionnez le menu Plus contosodataexplorer, puis cliquez sur Actualiser. Sous contosodataexplorer, développez Tables et assurez-vous que la table TestTable apparaît dans la liste.

    6. Copiez la commande suivante dans la fenêtre et sélectionnez Exécuter pour mapper les données JSON entrantes aux types de données et aux noms de colonne de la table (TestTable).

      .create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp", "Properties": {"Path": "$.timeStamp"}},{"column":"Name", "Properties": {"Path":"$.name"}} ,{"column":"Metric", "Properties": {"Path":"$.metric"}}, {"column":"Source", "Properties": {"Path":"$.source"}}]'
      
  • Nous vous recommandons d’utiliser une identité managée affectée par l’utilisateur ou une identité managée affectée par le système pour la connexion de données (facultatif).

  • Un exemple d’application qui génère des données et les envoie à un hub d’événements. Téléchargez l’exemple d’application sur votre système.

  • Visual Studio 2019 pour exécuter l’exemple d’application.

Connectez-vous au portail Azure.

Connectez-vous au portail Azure.

Créer un hub d’événements

Créez un hub d’événements à l’aide d’un modèle Azure Resource Manager dans le portail Azure.

  1. Pour créer un hub d’événements, utilisez le bouton suivant pour démarrer le déploiement. Cliquez avec le bouton droit et sélectionnez Ouvrir dans une nouvelle fenêtre pour pouvoir suivre le reste des étapes de l’article.

    Bouton pour déployer le modèle Resource Manager sur Azure.

    Le bouton Déployer sur Azure vous permet d’accéder au Portail Azure.

  2. Sélectionnez l’abonnement dans lequel vous souhaitez créer le hub d’événements et créez un groupe de ressources nommé test-hub-rg.

    Créer un groupe de ressources

  3. Renseignez le formulaire avec les informations suivantes.

    Utilisez les valeurs par défaut pour tous les paramètres non listés dans le tableau suivant.

    Paramètre Valeur suggérée Description du champ
    Abonnement Votre abonnement Sélectionnez l’abonnement Azure que vous souhaitez utiliser pour votre instance Event Hubs.
    Resource group test-hub-rg Créez un groupe de ressources.
    Emplacement USA Ouest Pour cet article, sélectionnez USA Ouest. Pour un système de production, sélectionnez la région qui répond le mieux à vos besoins. Pour des performances optimales, créez l’espace de noms Event Hubs dans le même emplacement que le cluster de l’Explorateur de données Azure Synapse (en particulier pour les espaces de noms Event Hubs dont le débit est élevé).
    Nom de l’espace de noms Nom unique de l’espace de noms Choisissez un nom unique qui identifie votre espace de noms. Par exemple, mytestnamespace. Le nom de domaine servicebus.windows.net est ajouté au nom que vous fournissez. Le nom ne peut contenir que des lettres, des chiffres et des traits d’union. Le nom doit commencer par une lettre et se terminer par une lettre ou un chiffre. La valeur doit être comprise entre 6 et 50 caractères.
    Nom Event Hubs test-hub L’instance Event Hubs se trouve sous l’espace de noms, qui fournit un conteneur d’étendue unique. Le nom de l’instance Event Hubs doit être unique dans l’espace de noms.
    Nom du groupe de consommateurs test-group Les groupes de consommateurs permettent que chacune des applications de consommation ait une vue distincte du flux d’événements.
  4. Sélectionnez Revoir + créer.

  5. Passez en revue le Récapitulatif des ressources créées. Sélectionnez Créer pour confirmer que vous créez des ressources dans votre abonnement.

    Capture d’écran du Portail Azure pour vérifier et créer un espace de noms Event Hubs, une instance Event Hubs et un groupe de consommateurs.

  6. Dans la barre d’outils, sélectionnez Notifications pour superviser le processus de provisionnement. Le déploiement peut prendre plusieurs minutes, mais vous pouvez passer à l’étape suivante sans attendre.

    Icône Notifications

Considérations relatives à l’authentification

Selon le type d’identité que vous utilisez pour vous authentifier auprès d’Event Hubs, vous aurez peut-être besoin d’autres configurations.

  • Si vous vous authentifiez avec Event Hubs en utilisant une identité managée affectée par l’utilisateur, accédez à Event Hubs >Mise en réseau, puis sous Autoriser l’accès à partir de, sélectionnez Tous les réseaux et enregistrez les modifications.

    Capture d’écran de la page de mise en réseau Event Hubs, montrant la sélection pour autoriser l’accès à tous les réseaux.

  • Si vous vous authentifiez auprès de Event Hubs en utilisant une identité managée attribuée par le système, accédez à Event Hubs >Mise en réseau, puis autorisez l’accès à partir de tous les réseaux ou, sous Autoriser l’accès à partir de, sélectionnez Réseaux sélectionnés, sélectionnez Autoriser les services Microsoft approuvés pour contourner ce pare-feu et enregistrez les modifications.

    Capture d’écran de la page de mise en réseau Event Hubs, montrant la sélection pour autoriser l’accès aux services approuvés.

Se connecter à Event Hubs

Connectez-vous maintenant à Event Hubs à partir du pool de l’Explorateur de données. Quand cette connexion est en place, les données qui circulent dans Event Hubs sont diffusées en streaming vers la table de test que vous avez créée précédemment dans cet article.

  1. Sélectionnez Notifications dans la barre d’outils pour vérifier que le déploiement de Event Hubs a réussi.

  2. Sous le pool de l’Explorateur de données que vous avez créé, sélectionnez Bases de données>TestDatabase.

    Capture d’écran du pool de bases de données de test montrant la sélection de la base de données de test.

  3. Sélectionnez Connexion de données, puis Ajouter une connexion de données.

    Sélectionnez Ingestion des données, puis Ajouter une connexion de données.

Créer une connexion de données (préversion)

Remplissez le formulaire avec les informations suivantes, puis sélectionnez Créer.

Capture d’écran du volet de connexion de données dans Event Hubs.

Paramètre Valeur suggérée Description du champ
Nom de la connexion de données test-hub-connection Nom de la connexion que vous souhaitez créer dans l’Explorateur de données Azure Synapse.
Abonnement ID d’abonnement dans lequel se trouve la ressource Event Hubs. Ce champ est renseigné automatiquement.
Espace de noms Event Hubs Nom unique de l’espace de noms Nom choisi précédemment qui identifie votre espace de noms.
Event Hubs test-hub L’instance Event Hubs que vous avez créée.
Groupe de consommateurs test-group Le groupe de consommateurs défini dans l’instance Event Hubs que vous avez créée.
Propriétés du système d’événements Sélectionner les propriétés pertinentes Les propriétés système Event Hubs. S’il existe plusieurs enregistrements par message d’événement, les propriétés système sont ajoutées au premier enregistrement. Lors de l’ajout des propriétés système, créez ou mettez à jour le schéma de table et le mappage pour inclure les propriétés sélectionnées.
Compression Aucun(e) Le type de compression de la charge utile des messages Event Hubs. Types de compression pris en charge : Aucun, GZip.
Identité managée Attribué par le système L’identité managée utilisée par le cluster Explorateur de données pour l’accès en lecture à partir d’Event Hubs.

Remarque :
Quand la connexion de données est créée :
- Les identités affectées par le système sont automatiquement créées si elles n’existent pas
- L’identité managée reçoit automatiquement le rôle Récepteur de données Azure Event Hubs et est ajoutée à votre cluster Data Explorer. Nous vous recommandons de vérifier que le rôle a été attribué et que l’identité a été ajoutée au cluster.

Table cible

Deux options sont disponibles pour le routage des données ingérées : statique et dynamique. Dans le cadre de cet article, vous utilisez le routage statique, où vous spécifiez le nom de table, le format des données et le mappage comme valeurs par défaut. Si le message Event Hubs inclut des informations de routage de données, ces informations de routage remplacent les paramètres par défaut.

  1. Renseignez les paramètres de routage suivants :

    Paramètres de routage par défaut pour l’ingestion des données dans Event Hubs : Explorateur de données Azure Synapse.

    Paramètre Valeur suggérée Description du champ
    Nom de la table TestTable Table que vous avez créée dans TestDatabase.
    Format de données JSON Les formats pris en charge sont Avro, CSV, JSON, MULTILINE JSON, ORC, PARQUET, PSV, SCSV, SOHSV, TSV, TXT, TSVE, APACHEAVRO et W3CLOG.
    Mappage TestMapping 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. Obligatoire pour les formats JSON, MULTILINE JSON et AVRO, et facultatif pour les autres formats.

    Notes

    • Vous n’êtes pas obligé de spécifier tous les paramètres de routage par défaut. Des paramètres partiels sont également acceptés.
    • Seuls les événements mis en file d’attente après que vous avez créé la connexion de données sont ingérés.
  2. Sélectionnez Create (Créer).

Mappage des propriétés du système d’événements

Notes

  • Les propriétés système sont prises en charge pour les formats json et tabulaires (csv, tsv, etc.), mais pas sur les données compressées. Quand vous utilisez un format non pris en charge, les données sont toujours ingérées, mais les propriétés sont ignorées.
  • Pour les données tabulaires, les propriétés système sont prises en charge uniquement pour les messages d’événements à enregistrement unique.
  • Pour les données JSON, les propriétés système sont également prises en charge pour les messages d’événements à enregistrements multiples. Dans ce cas, les propriétés système sont ajoutées uniquement au premier enregistrement du message d’événement.
  • Pour un mappage csv, des propriétés sont ajoutées au début de l’enregistrement dans l’ordre indiqué dans la table Propriétés système.
  • Pour un mappage json, des propriétés sont ajoutées en fonction des noms de propriété dans la table Propriétés système.

Si vous avez sélectionné Propriétés du système d’événements dans la section Source de données de la table, vous devez inclure des propriétés système dans le schéma et le mappage de table.

Copier la chaîne de connexion

Quand vous exécutez l’exemple d’application listée dans les prérequis, vous avez besoin de la chaîne de connexion de l’espace de noms Event Hubs.

  1. Sous l’espace de noms Event Hubs que vous avez créé, sélectionnez Stratégies d’accès partagé, puis RootManageSharedAccessKey.

    Stratégies d’accès partagé.

  2. Copiez Chaîne de connexion - Clé primaire. Collez-la dans la prochaine section.

    Chaîne de connexion.

Générer un exemple de données

Utilisez l’exemple d’application que vous avez téléchargé pour générer les données.

Avertissement

Cet exemple utilise l’authentification par chaîne de connexion pour se connecter à Event Hubs pour simplifier l’exemple. Toutefois, le codage en dur d’une chaîne de connexion dans votre script nécessite un niveau de confiance très élevé dans l’application et présente des risques de sécurité.

Pour ses solutions sécurisées à long terme, utilisez l’une des options suivantes :

  1. Ouvrez la solution de l’application exemple dans Visual Studio.

  2. Dans le fichier program.cs, mettez à jour la constante eventHubName avec le nom de votre instance Event Hubs et mettez à jour la constante connectionString avec la chaîne de connexion que vous avez copiée à partir de l’espace de noms Event Hubs.

    const string eventHubName = "test-hub";
    // Copy the connection string ("Connection string-primary key") from your Event Hub namespace.
    const string connectionString = @"<YourConnectionString>";
    
  3. Générez et exécutez l'application. L’application envoie des messages à Event Hubs et imprime son état toutes les 10 secondes.

  4. Une fois que l’application a envoyé quelques messages, passez à l’étape suivante : examiner le flux de données dans votre instance Event Hubs et votre table de test.

Examiner le flux de données

Comme l’application génère des données, vous pouvez maintenant voir le flux de ces données entre Event Hubs et la table dans votre cluster.

  1. Sur le Portail Azure, sous votre instance Event Hubs, vous voyez le pic d’activité pendant l’exécution de l’application.

    Graphe Event Hub.

  2. Exécutez la requête suivante dans votre base de données de test pour vérifier combien de messages sont arrivés dans la base de données jusqu’à présent.

    TestTable
    | count
    
  3. Exécutez la requête suivante pour voir le contenu des messages :

    TestTable
    

    Le jeu de résultats doit ressembler à l’image suivante :

    Jeu de résultats des messages.

    Notes

    • L’Explorateur de données Azure Synapse est associé à une stratégie d’agrégation (traitement par lot) conçue pour optimiser le processus d’ingestion des données. La stratégie de traitement par lot par défaut est configurée pour sceller un lot une fois que l’une des conditions suivantes est remplie pour le lot : délai maximal de 5 minutes, taille totale de 1 Go ou 1 000 objets blob. Il existe donc un risque de latence. Pour plus d’informations, consultez la stratégie de traitement par lot.
    • L’ingestion de Event Hub comprend le temps de réponse de Event Hub de 10 secondes ou 1 Mo.
    • Pour réduire le décalage du temps de réponse, configurez votre table pour prendre en charge la diffusion en streaming. Consultez la stratégie de diffusion en continu.

Nettoyer les ressources

Si vous ne prévoyez pas de réutiliser votre instance Event Hubs, nettoyez test-hub-rg pour éviter des frais.

  1. Dans le portail Azure, sélectionnez Groupes de ressources tout à gauche, puis sélectionnez le groupe de ressources que vous avez créé.

    Si le menu de gauche est réduit, sélectionnez le bouton Développer pour le développer.

    Sélectionner un groupe de ressources à supprimer.

  2. Sous test-resource-group, sélectionnez Supprimer le groupe de ressources.

  3. Dans la nouvelle fenêtre, tapez le nom du groupe de ressources à supprimer (test-hub-rg), puis sélectionnez Supprimer.

Étapes suivantes