Partager via


Ingérer des données d’Event Hub 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 un hub d’événements, 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. Afin de 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.

    Button to deploy the Resource Manager template to Azure.

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

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

    Create a resource group

  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 à utiliser pour votre hub d’événements.
    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 Hub dans la même localisation que le cluster de l’Explorateur de données Azure Synapse (en particulier pour les espaces de noms Event Hub 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 de l’Event Hub test-hub Le hub d’événements se trouve sous l’espace de noms, qui fournit un conteneur d’étendue unique. Le nom du hub d’événements 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.

    Screen shot of Azure portal for reviewing and creating Event Hub namespace, Event Hub, and consumer group.

  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.

    Notifications icon

Considérations relatives à l’authentification

Selon le type d’identité que vous utilisez pour vous authentifier auprès d’Event Hub, vous pouvez avoir besoin de configurations supplémentaires.

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

    Screenshot of the Event Hub networking page, showing the selection of allowing access to all networks.

  • Si vous vous authentifiez auprès de Event Hub en utilisant une identité managée attribuée par le système, accédez à votre hub d’événements >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.

    Screenshot of the Event Hub networking page, showing the selection of allowing access to trusted services.

Se connecter au hub d’événements

Vous vous connectez maintenant au Event Hub à partir du pool de l’Explorateur de données. Quand cette connexion est en place, les données qui circulent dans le hub d’événements 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 du hub d’événements a réussi.

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

    Select test database.

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

    Select data ingestion and Add data connection.

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

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

Data connection pane Event Hub - Azure Synapse Data Explorer.

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 de hub d’événements. Ce champ est renseigné automatiquement.
Espace de noms Event Hub Nom unique de l’espace de noms Nom choisi précédemment qui identifie votre espace de noms.
Event Hub test-hub Hub d’événements que vous avez créé.
Groupe de consommateurs test-group Groupe de consommateurs défini dans le hub d’événements que vous avez créé.
Propriétés du système d’événements Sélectionner les propriétés pertinentes Propriétés système du hub d’événements. 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 Type de compression de la charge utile des messages Event Hub. Types de compression pris en charge : Aucun, GZip.
Identité managée Attribué par le système Identité managée utilisée par le cluster Data Explorer pour l’accès en lecture à partir du hub d’événements.

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 du hub d’événements comprend 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 :

    Default routing settings for ingesting data to Event Hub - Azure Synapse Data Explorer.

    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 Hub.

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

    Shared access policies.

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

    Connection string.

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.

  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 hub d’événements et mettez à jour la constante connectionString avec la chaîne de connexion que vous avez copiée à partir de l’espace de noms Event Hub.

    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 au Event Hub 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 hub d’événements 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 le hub d’événements et la table dans votre cluster.

  1. Dans le portail Azure, sous votre hub d’événements, vous voyez le pic d’activité pendant l’exécution de l’application.

    Event Hub graph.

  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 :

    Message result set.

    Remarque

    • 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 hub d’événements, 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 Expand button. pour le développer.

    Select resource group to delete.

  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