Partager via


Capturer des événements avec Azure Event Hubs dans le stockage Blob Azure ou Azure Data Lake Storage

La fonctionnalité Azure Event Hubs Capture capture automatiquement les données de streaming qui transitent par Event Hubs vers un compte Stockage Blob Azure ou Azure Data Lake Storage . Pour contrôler quand Event Hubs stocke les données, vous pouvez spécifier une heure ou un intervalle de taille. Vous pouvez activer ou configurer rapidement la fonctionnalité Event Hubs Capture. Il ne nécessite pas de coûts administratifs pour fonctionner, et il s'ajuste automatiquement à la capacité des Event Hubs.

Le niveau Standard utilise des unités de débit et le niveau Premium utilise des unités de traitement. Event Hubs Capture simplifie le processus de chargement des données de streaming dans Azure et vous permet de vous concentrer sur le traitement des données plutôt que sur la capture de données.

Diagramme illustrant un processus de capture des données Event Hubs dans Blob Storage ou Data Lake Storage.

Utilisez Event Hubs Capture pour traiter les pipelines en temps réel et par lots sur le même flux. Cette approche vous aide à créer des solutions qui augmentent avec vos besoins au fil du temps. Si vous utilisez des systèmes basés sur des lots et prévoyez d’ajouter un traitement en temps réel ultérieurement, ou si vous souhaitez ajouter un chemin froid efficace à une solution en temps réel existante, Event Hubs Capture simplifie l’utilisation des données de streaming.

Points importants à prendre en compte

  • Le compte de stockage de destination, Stockage Blob ou Data Lake Storage, doit résider dans le même abonnement que le hub d’événements lorsque vous n’utilisez pas d’identité managée pour l’authentification.

  • Event Hubs ne prend pas en charge la capture d’événements dans les comptes de stockage Azure Premium.

  • Event Hubs Capture prend en charge les comptes de stockage non premium qui autorisent les blocs blob.

Fonctionnement d’Azure Event Hubs Capture

Event Hubs sert de tampon de conservation du temps pour les données de télémétrie entrantes, similaire à un journal distribué. Le modèle consommateur partitionné permet l’extensibilité. Chaque partition est un segment de données indépendant, et est utilisée de manière indépendante. Ces données sont supprimées après la période de rétention configurable, de sorte que le hub d’événements n’est jamais trop complet.

Event Hubs Capture vous permet de spécifier un compte de stockage Blob et un conteneur, ou un compte Data Lake Storage, pour stocker des données capturées. Ces comptes peuvent résider dans la même région que votre hub d’événements ou dans une autre région, ce qui offre une flexibilité supplémentaire.

Event Hubs Capture écrit des données capturées au format Apache Avro , qui est un format compact, rapide et binaire qui fournit des structures de données enrichies avec un schéma inline. L’écosystème Hadoop, Azure Stream Analytics et Azure Data Factory utilisent ce format. Les sections ultérieures de cet article fournissent plus d’informations sur l’utilisation d’Avro.

Remarque

Fenêtrage de Capture

Pour contrôler la capture, utilisez Event Hubs Capture pour configurer une fenêtre qui utilise une taille minimale et une configuration de temps. Le système applique une politique du premier arrivé, ce qui signifie que la première condition remplie (taille ou temps) déclenche la capture. Par exemple, si vous avez une fenêtre de capture de 100 mégaoctets (Mo) de quinze minutes et que vous envoyez 1 Mo par seconde, la fenêtre de taille se déclenche avant la fenêtre de temps.

Chaque partition capture les données de manière indépendante et écrit un blob binaire complété au moment de la capture. Le nom du blob reflète le moment où l'intervalle de capture a été rencontré.

La convention d’affectation de noms de stockage suit cette structure :

{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}

Les valeurs de date sont remplies avec des zéros. Le nom de fichier suivant montre un exemple :

https://mystorageaccount.blob.core.windows.net/mycontainer/mynamespace/myeventhub/0/2017/12/08/03/03/17.avro

Si votre blob de stockage devient temporairement indisponible, Event Hubs Capture conserve vos données pendant la période de conservation des données que vous configurez sur votre hub d'événements. Une fois que votre compte de stockage est à nouveau disponible, Event Hubs Capture reremplit les données.

Unités de débit ou unités de traitement à l'échelle

Dans le niveau Standard d’Event Hubs, les unités de débit contrôlent le trafic. Dans le niveau Premium, les unités de traitement contrôlent le trafic. Event Hubs Capture copie les données directement à partir du stockage Event Hubs interne, qui contourne les quotas de sortie d’unité de débit ou d’unité de traitement et enregistre vos sorties pour d’autres lecteurs de traitement tels que Stream Analytics ou Apache Spark.

Une fois que vous avez configuré Event Hubs Capture, il démarre automatiquement lorsque vous envoyez votre premier événement et continue de s’exécuter. Pour aider les systèmes en aval à confirmer que le processus fonctionne, Event Hubs écrit des fichiers vides lorsqu’aucune donnée n’est disponible. Ce processus fournit une cadence prévisible et un marqueur qui peuvent alimenter vos processeurs de traitement par lots.

Configuration de la capture Event Hubs

Pour configurer Capture lorsque vous créez un hub d’événements, utilisez le portail Azure ou un modèle Azure Resource Manager (modèle ARM). Pour plus d’informations, consultez les articles suivants :

Remarque

Si vous activez la fonctionnalité Capture pour un hub d’événements existant, la fonctionnalité capture uniquement les événements qui arrivent après l’activation. Il ne capture pas les événements qui existent avant l’activation.

Event Hubs Capture la facturation

Le niveau Event Hubs Premium inclut la fonctionnalité Capture. Pour le niveau Standard, Azure facture Capture mensuellement en fonction du nombre d’unités de débit pour l’espace de noms (namespace). Lorsque vous mettez à l’échelle les unités de débit vers le haut ou vers le bas, Event Hubs Capture ajuste sa mesure pour correspondre aux performances. Ces compteurs s’échelonnent en tandem.

La capture ne consomme pas de quota de sortie, car Azure la facture séparément.

Pour plus d'informations, consultez la grille tarifaire d'Event Hubs.

Intégrer à Azure Event Grid

Vous pouvez créer un abonnement Azure Event Grid en utilisant un espace de noms Event Hubs comme source. Pour plus d’informations sur la création d’un abonnement Event Grid avec un hub d’événements en tant que source et une application Azure Functions en tant que récepteur, consultez Migrer les données Event Hubs capturées vers Azure Synapse Analytics.

Explorer des fichiers capturés

Pour savoir comment explorer des fichiers Avro capturés, consultez Explorer des fichiers Avro capturés.

Compte Azure Storage comme destination

Pour activer Capture sur un hub d’événements qui utilise le stockage comme destination de capture ou pour mettre à jour les propriétés d’un hub d’événements qui utilise le stockage comme destination de capture, l’utilisateur ou le principal de service doit avoir un rôle de contrôle d’accès en fonction du rôle (RBAC) qui inclut les autorisations suivantes affectées à l’étendue du compte de stockage :

Microsoft.Storage/storageAccounts/blobServices/containers/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write

Sans cette autorisation, l’erreur suivante s’affiche :

Generic: Linked access check failed for capture storage destination <StorageAccount Arm Id>.
User or the application with object id <Object Id> making the request doesn't have the required data plane write permissions.
Please enable Microsoft.Storage/storageAccounts/blobServices/containers/write, Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write permission(s) on above resource for the user or the application and retry.
TrackingId:<ID>, SystemTracker:mynamespace.servicebus.windows.net:myhub, Timestamp:<TimeStamp>

Pour résoudre ce problème, ajoutez le compte d’utilisateur ou le principal de service au rôle intégré propriétaire des données blob de stockage , qui inclut les autorisations requises.

Event Hubs Capture offre un moyen simple d’ingérer des données dans Azure. Avec Data Lake Storage, Azure Data Factory et Azure HDInsight, vous pouvez effectuer un traitement par lots et des analyses à l’aide d’outils et de plateformes familiers à n’importe quelle échelle.

Pour activer cette fonctionnalité, utilisez le portail Azure ou un modèle ARM :

Pour plus d’informations sur les options de redondance des données pour votre compte de stockage de destination Capture, consultez Fiabilité du stockage Blob.