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.
Dans Synapse Studio, dans le volet de gauche, sélectionnez Données.
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. 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
Dans Synapse Studio, dans le volet de gauche, sélectionnez Développer.
Sous Scripts KQL, sélectionnez + (Ajouter une nouvelle ressource) >Script KQL. Dans le volet de droite, vous pouvez nommer votre script.
Dans le menu Connecter à, sélectionnez contosodataexplorer.
Dans le menu Utiliser la base de données, sélectionnez TestDatabase.
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.
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.
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.
Le bouton Déployer sur Azure vous permet d’accéder au Portail Azure.
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.
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. Sélectionnez Revoir + créer.
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.
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.
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.
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.
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.
Sélectionnez Notifications dans la barre d’outils pour vérifier que le déploiement de Event Hubs a réussi.
Sous le pool de l’Explorateur de données que vous avez créé, sélectionnez Bases de données>TestDatabase.
Sélectionnez Connexion de 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.
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.
Renseignez les paramètres de routage suivants :
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.
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.
Sous l’espace de noms Event Hubs que vous avez créé, sélectionnez Stratégies d’accès partagé, puis RootManageSharedAccessKey.
Copiez Chaîne de connexion - Clé primaire. Collez-la dans la prochaine section.
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 :
- Authentification sans mot de passe
- Stockez votre chaîne de connexion dans Azure Key Vault et utilisez cette méthode pour la récupérer dans votre code.
Ouvrez la solution de l’application exemple dans Visual Studio.
Dans le fichier program.cs, mettez à jour la constante
eventHubName
avec le nom de votre instance Event Hubs et mettez à jour la constanteconnectionString
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>";
Générez et exécutez l'application. L’application envoie des messages à Event Hubs et imprime son état toutes les 10 secondes.
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.
Sur le Portail Azure, sous votre instance Event Hubs, vous voyez le pic d’activité pendant l’exécution de l’application.
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
Exécutez la requête suivante pour voir le contenu des messages :
TestTable
Le jeu de résultats doit ressembler à l’image suivante :
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.
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 pour le développer.
Sous test-resource-group, sélectionnez Supprimer le groupe de ressources.
Dans la nouvelle fenêtre, tapez le nom du groupe de ressources à supprimer (test-hub-rg), puis sélectionnez Supprimer.