Partage via


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

Azure Event Hubs vous permet de capturer automatiquement le streaming des données via Event Hubs dans Stockage Blob Azure ou compte Azure Data Lake Storage Gen 1 ou Gen2 de votre choix. Vous disposez également de la flexibilité nécessaire pour spécifier une durée ou un intervalle de taille. L’activation ou la configuration de la fonctionnalité Event Hubs Capture est rapide. Il n’y a coût d’administration pour son exécution et il s’adapte automatiquement aux unités de débit Event Hubs dans le niveau Standard et aux unités de traitement dans le niveau Premium. Event Hubs Capture représente le moyen le plus simple de charger les données pour la diffusion en continu dans Azure et vous permet de vous concentrer sur le traitement des données plutôt que sur la capture de données.

Image montrant la capture de données Event Hubs dans le Stockage Azure ou dans Azure Data Lake Storage

Notes

La configuration d’Event Hubs Capture pour utiliser Azure Data Lake Storage Gen 2 est identique à celle pour utiliser un stockage de blobs Azure. Pour plus d’informations, consultez Configurer Event Hubs Capture.

Event Hubs Capture vous permet de traiter des pipelines basés sur des lots et en temps réel sur le même flux. Cela vous permet de créer des solutions capables d’évoluer avec vos besoins au fil du temps. Que vous créiez des systèmes basés sur des lots dès aujourd’hui en pensant au traitement en temps réel à l’avenir, ou que vous souhaitiez ajouter un chemin à froid efficace vers une solution existante en temps réel, Event Hubs Capture facilite la tâche avec les données diffusées en continu.

Important

  • Le compte de stockage de destination (Stockage Azure ou Azure Data Lake Storage) doit se trouver dans le même abonnement que le hub d’événements quand il n’utilise pas d’identité managée pour l’authentification.
  • Event Hubs ne prend pas en charge la capture d’événements dans un compte de stockage Premium.
  • La capture Event Hubs prend en charge n’importe quel compte de stockage Azure non-Premium avec prise en charge des objets blob de blocs.

Fonctionnement d’Azure Event Hubs Capture

Event Hubs est une mémoire tampon durable de rétention temporelle pour l’entrée de télémétrie, similaire à un journal distribué. La clé de la mise à l’échelle dans Event Hubs est le modèle de consommateur partitionné. Chaque partition est un segment de données indépendant, et est utilisée de manière indépendante. Au fil du temps ces données vieillissent, en fonction de la période de rétention configurable. Par conséquent, un hub d’événements donné n’est jamais « saturé ».

Event Hubs Capture vous permet de spécifier vos propres compte et conteneur Stockage Blob Azure, ou compte Azure Data Lake Storage, qui sont utilisés pour stocker les données capturées. Ces comptes peuvent se trouver dans la même région que votre hub d’événements ou dans une autre région, ce qui ajoute à la flexibilité de la fonctionnalité Event Hubs Capture.

Les données capturées sont écrites au format Apache Avro : un format compact, rapide et binaire qui fournit des structures de données riches avec un schéma inclus. Ce format est largement utilisé dans l’écosystème Hadoop, Stream Analytics et Azure Data Factory. Vous trouverez plus d’informations sur l’utilisation d’Avro plus loin dans cet article.

Notes

Lorsque vous n’utilisez aucun éditeur de code dans le Portail Azure, vous pouvez capturer des données de streaming dans Event Hubs dans un compte Azure Data Lake Storage Gen2 au format Parquet. Pour plus d’informations, consultez le Guide pratique : Capturer des données à partir d’Event Hubs au format Parquet et le Tutoriel : Capturer des données Event Hubs au format Parquet et les analyser avec Azure Synapse Analytics.

Fenêtrage de Capture

Event Hubs Capture vous permet de configurer une fenêtre de temps pour le contrôle de la capture. Cette fenêtre présente une taille et une configuration temporelle minimales avec une « stratégie de premier gagnant », ce qui signifie que le premier déclencheur rencontré entraîne une opération de capture. Si vous avez une fenêtre de capture de quinze minutes et de 100 Mo, et si vous envoyez 1 Mo par seconde, la fenêtre de taille se déclenche avant la fenêtre temporelle. Chaque partition capture indépendamment et écrit un objet blob de bloc complet au moment de la capture, nommé d’après l’heure à laquelle l’intervalle de capture a été rencontré. La convention d’affectation de noms de stockage est la suivante :

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

Les valeurs de date contiennent des zéros. Par exemple :

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

Si votre objet blob de stockage Azure est temporairement indisponible, Event Hubs Capture conserve vos données pendant la période de rétention de données configurée sur votre Event Hub et remplit les données une fois que votre compte de stockage est à nouveau disponible.

Mise à l’échelle des unités de débit ou des unités de traitement

Dans le niveau standard d’Event Hubs, les unités de débit contrôlent le trafic et dans le niveau Premium d’Event Hubs, les unités de traitement contrôlent le trafic. L’outil Capture dans Event Hubs copie les données directement depuis le stockage Event Hubs interne, en contournant les quotas de sortie des unités de débit ou des unités de traitement et en enregistrant votre sortie pour d’autres lecteurs de traitement tels que Stream Analytics ou Spark.

Une fois configuré, Event Hubs Capture s’exécute automatiquement lorsque vous envoyez votre premier événement et continue de s’exécuter. Pour que votre traitement en aval sache plus facilement que le processus fonctionne, les Event Hubs écrivent des fichiers vides en l’absence de données. Ce processus fournit une cadence prévisible et un marqueur qui peuvent alimenter vos processeurs de traitement par lots.

Configuration de l’outil Event Hubs Capture

Vous pouvez configurer la fonctionnalité Capture lors de la création du concentrateur d’événements, à l’aide du portail Azure ou des modèles Azure Resource Manager. Pour plus d’informations, consultez les articles suivants :

Notes

Si elle est activée pour un hub d’événements existant, la fonctionnalité Capture capture les événements qui arrivent au hub après qu’elle a été activée. Ceux qui se trouvaient dans le hub avant l’activation de la fonctionnalité ne sont pas capturés.

Chargement d’Azure Event Hubs Capture

La fonctionnalité de capture étant incluse dans le niveau Premium, il n’y a pas de frais supplémentaires pour ce niveau. Pour le niveau Standard, la fonctionnalité est facturée mensuellement et les frais sont directement proportionnels au nombre d’unités de débit ou d’unités de traitement achetées pour l’espace de noms. En même temps que les unités de débit ou unités de traitement augmentent et diminuent, les compteurs associés à l’outil Capture dans Event Hubs augmentent et diminuent pour fournir des performances adaptées. Les compteurs se produisent en même temps. Pour plus d’informations sur les prix appliqués, consultez Tarification d’Event Hubs.

Capture n’utilise pas de quota de sortie puisque la fonctionnalité est facturée séparément.

Intégration à Event Grid

Vous pouvez créer un abonnement Azure Event Grid en utilisant un espace de noms Event Hubs comme source. Le tutoriel suivant vous montre comment créer un abonnement Event Grid avec un hub d’événements comme source et une application Azure Functions comme récepteur : Traiter les données Event Hubs capturées et les migrer vers Azure Synapse Analytics à l’aide d’Event Grid et d’Azure Functions.

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 la capture sur un hub d'événements avec Azure Storage comme destination de capture, ou pour mettre à jour les propriétés sur un hub d'événements avec Azure Storage comme destination de capture, l'utilisateur ou le principal du service doit avoir un rôle de contrôle d’accès en fonction du rôle (RBAC) avec les permissions suivantes attribuées à l'étendue du compte de stockage.Microsoft Azure 

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

 

Sans cette autorisation, vous voyez l’erreur suivante :

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>

Le Propriétaire des données du bloc est un rôle intégré avec les permissions ci-dessus, ajoutez donc le compte d'utilisateur ou le principal de service à ce rôle.intégré  

Event Hubs Capture est la solution la plus simple pour charger des données dans Azure. À l’aide d’Azure Data Lake, d’Azure Data Factory et d’Azure HDInsight, vous pouvez effectuer un traitement par lots, ainsi que d’autres analyses en utilisant des outils et des plateformes de votre choix, à l’échelle requise.

Découvrez comment activer cette fonctionnalité avec le portail Azure et un modèle Azure Resource Manager :