Erfassen von Ereignissen über Azure Event Hubs in Azure Blob Storage oder Azure Data Lake Storage

Mit Azure Event Hubs können Sie das Datenstreaming automatisch über Event Hubs im Azure Blob Storage- oder Azure Data Lake Storage Gen 1 oder Gen 2-Konto Ihrer Wahl erfassen. Es bietet außerdem die Flexibilität, ein Zeit- oder Größenintervall anzugeben. Das Aktivieren oder Einrichten des Features „Event Hubs Capture“ geht schnell. Es fallen keine Verwaltungskosten zur Ausführung an, und es wird automatisch mit Event Hubs-Durchsatzeinheiten im Standard-Tarif oder Verarbeitungseinheiten im Premium-Tarif skaliert. Event Hubs Capture ist die einfachste Möglichkeit zum Laden von Streamingdaten in Azure und ermöglicht es Ihnen, sich auf die Datenverarbeitung anstatt auf die Datenerfassung zu konzentrieren.

Abbildung: Erfassung von Event Hubs-Daten in Azure Storage oder Azure Data Lake Storage

Hinweis

Die Konfiguration von Event Hubs Capture für die Verwendung von Azure Data Lake Storage Gen 2 ist identisch mit der Konfiguration von Event Hubs Capture für die Verwendung einer Azure Blob Storage-Instanz. Weitere Informationen finden Sie unter Konfigurieren von Event Hubs Capture.

Event Hubs Capture ermöglicht Ihnen das Verarbeiten von Echtzeitpipelines und batchbasierten Pipelines für den gleichen Datenstrom. Dies bedeutet, dass Sie Lösungen erstellen können, die im Laufe der Zeit gemäß Ihren veränderten Anforderungen mitwachsen. Ob Sie gerade batchbasierte Systeme mit Blick auf zukünftige Echtzeitverarbeitung erstellen oder einer vorhandenen Echtzeitlösung effiziente kalte Daten hinzufügen möchten – Event Hubs Capture erleichtert Ihnen das Arbeiten mit Streamingdaten.

Wichtig

  • Das Zielspeicherkonto (Azure Storage oder Azure Data Lake Storage) muss sich im gleichen Abonnement wie der Event Hub befinden, wenn keine verwaltete Identität für die Authentifizierung verwendet wird.
  • Event Hubs unterstützt nicht das Erfassen von Ereignissen in einem Premium-Speicherkonto.
  • Event Hubs Capture unterstützt jedes Nicht-Premium Azure-Speicherkonto mit Unterstützung für Blockblobs.

Funktionsweise von Event Hubs Capture

Event Hubs ist ein beständiger Puffer mit zeitbasierter Speicherung für Telemetrieeingänge, vergleichbar mit einem verteilten Protokoll. Der Schlüssel zur Skalierung in Event Hubs ist das partitionierte Consumermodell. Jede Partition ist ein unabhängiges Datensegment und wird unabhängig genutzt. Mit der Zeit werden diese Daten basierend auf der konfigurierbaren Beibehaltungsdauer ersetzt. Daher kann ein Event Hub nie „zu voll“ werden.

Mit Event Hubs Capture können Sie zum Speichern der erfassten Daten ein eigenes Azure Blob Storage-Konto und einen Container bzw. ein Azure Data Lake Storage-Konto angeben. Diese Konten können sich in der gleichen Region wie Ihr Event Hub oder in einer anderen Region befinden, um die Flexibilität von Event Hubs Capture zu erhöhen.

Erfasste Daten werden im Apache Avro-Format geschrieben. Hierbei handelt es sich um ein kompaktes, schnelles, binäres Format mit umfangreichen Datenstrukturen und Inlineschema. Dieses Format wird häufig im Hadoop-Ökosystem, von Stream Analytics und von Azure Data Factory verwendet. Weitere Informationen zum Arbeiten mit Avro finden Sie weiter unten in diesem Artikel.

Hinweis

Wenn Sie keinen Code-Editor im Azure-Portal verwenden, können Sie Streamingdaten in Event Hubs in einem Azure Data Lake Storage Gen2-Konto im Parquet-Format erfassen. Weitere Informationen finden Sie unter Erfassen von Daten aus Event Hubs im Parquet-Format und Tutorial: Erfassen von Event Hubs-Daten im Parquet-Format und Analysieren der Daten mit Azure Synapse Analytics.

Capture-Fenster

Event Hubs Capture ermöglicht Ihnen das Einrichten eines Fensters zur Steuerung der Erfassung. Dieses Fenster ist eine Konfiguration mit Mindestgröße und -zeit, für die das Prinzip „First wins“ gilt. Dies bedeutet, dass der erste Trigger, der auftritt, zu einem Erfassungsvorgang führt. Wenn Sie ein Erfassungsfenster von 15 Minuten und mit 100 MB verwenden und 1 MB/s senden, wird das Größenfenster vor dem Zeitfenster ausgelöst. Jede Partition wird unabhängig erfasst und schreibt zum Erfassungszeitpunkt einen abgeschlossenen Blockblob. Dieser wird nach dem Zeitpunkt benannt, zu dem das Erfassungsintervall aufgetreten ist. Die Namenskonvention für die Speicherung lautet wie folgt:

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

Die Datumswerte werden mit Nullen aufgefüllt. Ein Beispieldateiname hierfür lautet:

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

Falls Ihr Azure-Speicherblob vorübergehend nicht verfügbar ist, werden Ihre Daten von Event Hubs Capture gemäß dem für Ihren Event Hub konfigurierten Aufbewahrungszeitraum beibehalten. Die Daten werden dann abgeglichen, wenn Ihr Speicherkonto wieder verfügbar ist.

Skalieren von Durchsatzeinheiten oder Verarbeitungseinheiten

In der Standardebene von Event Hubs steuern Durchsatzeinheiten den Datenverkehr und in den Premium-Event Hubs, steuern Verarbeitungseinheiten den Datenverkehr. Bei Event Hubs Capture werden Daten direkt aus dem internen Event Hubs-Speicher kopiert. Dabei werden Durchsatzeinheiten- oder Verarbeitungseinheitenkontingente für ausgehenden Datenverkehr umgangen und stattdessen für andere Verarbeitungsreader wie Stream Analytics oder Spark verwendet.

Nach der Konfiguration wird Event Hubs Capture automatisch ausgeführt, wenn Sie Ihr erstes Ereignis senden, und die Ausführung bleibt aktiv. Damit für Ihre Downstreamverarbeitung leichter erkannt wird, dass der Prozess ausgeführt wird, schreibt Event Hubs leere Dateien, wenn keine Daten vorhanden sind. Dieser Prozess sorgt für einen vorhersagbaren Rhythmus und Marker, die als Feed für Ihre Batchprozessoren fungieren.

Einrichten von Event Hubs Capture

Sie können die Erfassung bei der Event Hub-Erstellung konfigurieren, indem Sie das Azure-Portal oder Azure Resource Manager-Vorlagen verwenden. Weitere Informationen finden Sie in den folgenden Artikeln:

Hinweis

Wenn Sie das Feature „Capture“ für einen vorhandenen Event Hub aktivieren, erfasst das Feature Ereignisse, die im Event Hub eingehen, nachdem das Feature aktiviert wurde. Es erfasst keine Ereignisse, die im Event Hub vorhanden waren, bevor das Feature aktiviert wurde.

Berechnung der Gebühren für Event Hubs Capture

Die Erfassungsfunktion ist im Premium-Tarif enthalten, sodass für diesen Tarif keine zusätzlichen Gebühren anfallen. Beim Standard-Tarif wird das Feature monatlich in Rechnung gestellt, und die Gebühr ist direkt proportional zur Anzahl der Durchsatz- oder Verarbeitungseinheiten, die für den Namespace erworben wurden. Event Hubs Capture misst die Erhöhung und Verringerung der Durchsatzeinheiten oder Verarbeitungseinheiten, um eine entsprechende Leistung bereitstellen zu können. Die Verbrauchseinheiten treten zusammen auf. Informationen zu Preisen finden Sie unter Event Hubs – Preise.

Capture kann kein Ausgangskontingent nutzen, da eine separate Abrechnung erfolgt.

Integration in Event Grid

Sie können ein Azure Event Grid-Abonnement mit einem Event Hubs-Namespace als Quelle erstellen. Im folgende Tutorial erfahren Sie, wie ein Event Grid-Abonnement mit einem Event Hub als Quelle und einer Azure Functions-App als Senke erstellt wird: Verarbeiten und Migrieren erfasster Event Hubs-Daten in Azure Synapse Analytics mithilfe von Event Grid und Azure Functions.

Erkunden erfasster Dateien

Informationen zum Erkunden erfasster Avro-Dateien finden Sie unter Erkunden erfasster Avro-Dateien.

Azure Storage-Konto als Ziel

Um das Aufzeichnen auf einem Event Hub mit Azure Storage als Aufzeichnungsziel zu aktivieren oder Eigenschaften auf einem Event Hub mit Azure Storage als Aufzeichnungsziel zu aktualisieren, muss der Benutzer oder Dienstprinzipal über eine RBAC-Rolle (role based access control, rollenbasierte Zugriffssteuerung) verfügen, deren Berechtigungen im Speicherkontobereich zugewiesen sind. 

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

 

Ohne diese Berechtigung wird der folgende Fehler angezeigt:

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>

Der Besitzer von Speicherblobdaten ist eine integrierte Rolle mit den oben genannten Berechtigungen. Fügen Sie dieser Rolle daher das Benutzerkonto oder den Dienstprinzipal hinzu.  

Event Hubs Capture ist die einfachste Möglichkeit, Daten für Azure abzurufen. Mithilfe von Azure Data Lake, Azure Data Factory und Azure HDInsight können Sie Batchverarbeitung und andere Analysen mit vertrauten Tools und Plattformen Ihrer Wahl und jeder Größenordnung durchführen.

Erfahren Sie, wie Sie diese Funktion über das Azure-Portal und mit einer Azure Resource Manager-Vorlage aktivieren können: