Freigeben über


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

Das Feature Azure Event Hubs Capture erfasst automatisch Streamingdaten, die über Event Hubs zu einem Azure Blob Storage - oder Azure Data Lake Storage-Konto fließen. Um zu steuern, wann Event Hubs die Daten speichert, können Sie eine Uhrzeit oder ein Größenintervall angeben. Sie können das Feature "Event Hubs Capture" schnell aktivieren oder einrichten. Es sind keine Verwaltungskosten erforderlich, um betrieben zu werden, und es wird automatisch mit der Kapazität von "Event Hubs" skaliert.

Die Standardebene verwendet Durchsatzeinheiten, und die Premium-Ebene verwendet Verarbeitungseinheiten. Event Hubs Capture vereinfacht den Prozess des Ladens von Streamingdaten in Azure und ermöglicht es Ihnen, sich auf die Datenverarbeitung zu konzentrieren und nicht auf die Datenerfassung.

Diagramm, das einen Prozess zeigt, der Event Hubs-Daten in Blob Storage oder Data Lake Storage erfasst.

Verwenden Sie "Event Hubs Capture", um Echtzeit- und batchbasierte Pipelines im selben Datenstrom zu verarbeiten. Dieser Ansatz hilft Ihnen beim Erstellen von Lösungen, die mit Ihren Anforderungen im Laufe der Zeit wachsen. Wenn Sie batchbasierte Systeme verwenden und eine spätere Echtzeitverarbeitung planen oder einen effizienten Kalten Pfad zu einer vorhandenen Echtzeitlösung hinzufügen möchten, vereinfacht Event Hubs Capture das Arbeiten mit Streamingdaten.

Wichtige zu berücksichtigende Punkte

  • Das Zielspeicherkonto, entweder Blob Storage oder Data Lake Storage, muss sich im gleichen Abonnement wie der Event Hub befinden, wenn Sie keine verwaltete Identität für die Authentifizierung verwenden.

  • Event Hubs unterstützen das Erfassen von Ereignissen in Premium-Azure Storage-Konten nicht.

  • Event Hubs Capture unterstützt nichtpremium-Speicherkonten, die Block-Blobs zulassen.

Funktionsweise von Event Hubs Capture

Event Hubs dient als dauerhafter Zeitaufbewahrungspuffer für Telemetrieeingänge, ähnlich einem verteilten Protokoll. Das partitionierte Consumermodell ermöglicht Skalierbarkeit. Jede Partition ist ein unabhängiges Datensegment und wird unabhängig genutzt. Diese Daten werden nach dem konfigurierbaren Aufbewahrungszeitraum gelöscht, sodass der Event Hub nie zu voll wird.

Mit der Event Hubs-Erfassung können Sie ein Blob Storage-Konto und einen Container oder ein Data Lake Storage-Konto angeben, um erfasste Daten zu speichern. Diese Konten können sich in derselben Region wie Ihr Event Hub oder in einer anderen Region befinden, wodurch Flexibilität hinzugefügt wird.

Event Hubs Capture schreibt erfasste Daten im Apache Avro-Format , ein kompaktes, schnelles Binärformat, das umfangreiche Datenstrukturen mit Inlineschema bereitstellt. Das Hadoop-Ökosystem, Azure Stream Analytics und Azure Data Factory verwenden dieses Format. In späteren Abschnitten dieses Artikels finden Sie weitere Informationen zum Arbeiten mit Avro.

Hinweis

Capture-Fenster

Um die Erfassung zu steuern, verwenden Sie die Event Hubs Capture, um ein Fenster einzurichten, das eine Mindestgröße und Zeitkonfiguration verwendet. Das System wendet eine First-Wins-Richtlinie an, was bedeutet, dass die erste Bedingung – entweder Größe oder Uhrzeit – die Erfassung auslöst. Wenn Sie beispielsweise ein fünfzehnminütiges, 100-Megabyte (MB) Aufnahmefenster haben und 1 MB pro Sekunde senden, wird das Größenfenster vor dem Zeitfenster aktiviert.

Jede Partition erfasst Daten unabhängig und schreibt beim Erfassungsvorgang ein abgeschlossenes Block-BLOB. Der Blobname gibt den Zeitpunkt an, zu dem das Aufnahmeintervall gefunden wurde.

Die Speicherbenennungskonvention folgt dieser Struktur:

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

Die Datumswerte werden mit Nullen aufgefüllt. Der folgende Dateiname zeigt ein Beispiel:

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

Wenn Ihr Speicher-BLOB vorübergehend nicht verfügbar ist, speichert Event Hubs Capture Ihre Daten für den Datenaufbewahrungszeitraum, den Sie auf Ihrem Event Hub konfigurieren. Nachdem Ihr Speicherkonto wieder verfügbar ist, füllt Event Hubs Capture die Daten zurück.

Skalieren von Durchsatzeinheiten oder Verarbeitungseinheiten

In der Standardstufe von Event Hubs regeln Durchsatzeinheiten den Datenverkehr. In der Premium-Stufe 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 Apache Spark verwendet.

Nachdem Sie event Hubs Capture konfiguriert haben, wird sie automatisch gestartet, wenn Sie Ihr erstes Ereignis senden und die Ausführung fortsetzen. Um nachgeschaltete Systeme zu bestätigen, dass der Prozess funktioniert, schreibt Event Hubs leere Dateien, wenn keine Daten verfügbar sind. Dieser Prozess sorgt für einen vorhersagbaren Rhythmus und Marker, die als Feed für Ihre Batchprozessoren fungieren.

Einrichten von Event Hubs Capture

Verwenden Sie das Azure-Portal oder eine Azure Resource Manager-Vorlage (ARM-Vorlage), um die Erfassung beim Erstellen eines Event Hubs zu konfigurieren. Weitere Informationen finden Sie in den folgenden Artikeln:

Hinweis

Wenn Sie das Aufnahmefeature für einen vorhandenen Event Hub aktivieren, erfasst das Feature nur die Ereignisse, die nach dem Aktivieren eingehen. Es erfasst keine Ereignisse, die vor der Aktivierung vorhanden sind.

Event Hubs Erfassung von Abrechnungsdaten

Die Event Hubs Premium-Stufe enthält die Aufnahmefunktion. Für die Stufe "Standard" berechnet Azure die Gebühren für die monatliche Capture-Dienstleistung basierend auf der Anzahl der Durchsatzeinheiten für den Namespace. Während Sie Durchsatzeinheiten nach oben oder unten skalieren, passt Event Hubs Capture die Zähler an die Leistung an. Diese Meter skalieren im Tandem.

Die Erfassung verbraucht kein Ausgangskontingent, da Azure es separat abrechnen kann.

Weitere Informationen finden Sie unter Event Hubs-Preise.

Integration in Das Azure-Ereignisraster

Sie können ein Azure Event Grid-Abonnement mit einem Event Hubs-Namespace als Quelle erstellen. Weitere Informationen zum Erstellen eines Event Grid-Abonnements mit einem Event Hub als Quelle und einer Azure Functions-App als Spüle finden Sie unter Migrieren erfasster Event Hubs-Daten zu Azure Synapse Analytics.

Erkunden erfasster Dateien

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

Azure Storage-Konto als Ziel

Um die Erfassung auf einem Ereignishub zu aktivieren, der Speicher als Aufnahmeziel verwendet, oder um Eigenschaften auf einem Event Hub zu aktualisieren, der Speicher als Aufnahmeziel verwendet, muss der Benutzer oder der Dienstprinzipal über eine rollenbasierte Zugriffssteuerungsrolle (RBAC) verfügen, die die folgenden Berechtigungen enthält, die dem 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>

Um dieses Problem zu beheben, fügen Sie das Benutzerkonto oder den Dienstprinzipal der integrierten Rolle " Storage Blob Data Owner " hinzu, die die erforderlichen Berechtigungen enthält.

Event Hubs Capture bietet eine einfache Möglichkeit, Daten in Azure aufzunehmen. Mit Data Lake Storage, Azure Data Factory und Azure HDInsight können Sie Batchverarbeitung und Analyse durchführen, indem Sie vertraute Tools und Plattformen in beliebiger Größenordnung verwenden.

Um dieses Feature zu aktivieren, verwenden Sie das Azure-Portal oder eine ARM-Vorlage:

Weitere Informationen zu Datenredundanzoptionen für Ihr Aufnahmezielspeicherkonto finden Sie unter Zuverlässigkeit im Blob Storage.