Przechwytywanie zdarzeń za pośrednictwem usługi Azure Event Hubs w usłudze Azure Blob Storage lub Azure Data Lake Storage

Usługa Azure Event Hubs umożliwia automatyczne przechwytywanie danych przesyłanych strumieniowo w usłudze Event Hubs w usłudze Azure Blob Storage lub w wybranym koncie usługi Azure Data Lake Storage Gen 1 lub Gen 2 z dodatkową elastycznością określania interwału czasu lub rozmiaru. Konfigurowanie funkcji Przechwytywanie jest szybkie, nie ma kosztów administracyjnych do jej uruchomienia i jest skalowane automatycznie przy użyciu jednostek przepływności usługi Event Hubs w warstwie Standardowa lub jednostek przetwarzania w warstwie Premium. Przechwytywanie usługi Event Hubs to najprostszy sposób ładowania danych przesyłanych strumieniowo na platformę Azure i umożliwia skoncentrowanie się na przetwarzaniu danych, a nie na przechwytywaniu danych.

Obraz przedstawiający przechwytywanie danych usługi Event Hubs w usłudze Azure Storage lub Azure Data Lake Storage

Uwaga

Konfigurowanie funkcji przechwytywania usługi Event Hubs w celu korzystania z usługi Azure Data Lake Storage Gen 2 jest takie samo jak konfigurowanie go do korzystania z usługi Azure Blob Storage. Aby uzyskać szczegółowe informacje, zobacz Konfigurowanie przechwytywania usługi Event Hubs.

Funkcja przechwytywania usługi Event Hubs umożliwia przetwarzanie potoków w czasie rzeczywistym i wsadowych na tym samym strumieniu. Oznacza to, że możesz tworzyć rozwiązania, które rosną wraz z potrzebami w miarę upływu czasu. Niezależnie od tego, czy obecnie tworzysz systemy oparte na partiach z myślą o przyszłym przetwarzaniu w czasie rzeczywistym, czy chcesz dodać wydajną zimną ścieżkę do istniejącego rozwiązania w czasie rzeczywistym, funkcja Event Hubs Capture ułatwia pracę z danymi przesyłanymi strumieniowo.

Ważne

  • Konto magazynu docelowego (Azure Storage lub Azure Data Lake Storage) musi znajdować się w tej samej subskrypcji co centrum zdarzeń, jeśli nie używasz tożsamości zarządzanej do uwierzytelniania.
  • Usługa Event Hubs nie obsługuje przechwytywania zdarzeń na koncie magazynu w warstwie Premium.
  • Funkcja przechwytywania usługi Event Hubs obsługuje dowolne konto usługi Azure Storage spoza warstwy Premium z obsługą blokowych obiektów blob.

Jak działa funkcja przechwytywania usługi Event Hubs

Event Hubs to trwały bufor przechowywania czasu dla ruchu przychodzącego danych telemetrycznych, podobny do rozproszonego dziennika. Kluczem do skalowania w usłudze Event Hubs jest model użytkownika partycjonowanego. Każda partycja jest niezależnym segmentem danych i jest zużywana niezależnie. W czasie, gdy te dane się starzeją, na podstawie konfigurowalnego okresu przechowywania. W rezultacie dane centrum zdarzeń nigdy nie jest "zbyt pełne".

Funkcja przechwytywania usługi Event Hubs umożliwia określenie własnego konta i kontenera usługi Azure Blob Storage lub konta usługi Azure Data Lake Storage, które są używane do przechowywania przechwyconych danych. Te konta mogą znajdować się w tym samym regionie co centrum zdarzeń lub w innym regionie, co zwiększa elastyczność funkcji przechwytywania usługi Event Hubs.

Przechwycone dane są zapisywane w formacie Apache Avro : kompaktowy, szybki format binarny zapewniający rozbudowane struktury danych ze schematem wbudowanym. Ten format jest powszechnie używany w ekosystemie hadoop, usłudze Stream Analytics i usłudze Azure Data Factory. Więcej informacji na temat pracy z avro jest dostępne w dalszej części tego artykułu.

Uwaga

Jeśli nie używasz edytora kodu w witrynie Azure Portal, możesz przechwycić dane przesyłane strumieniowo w usłudze Event Hubs na koncie usługi Azure Data Lake Storage Gen2 w formacie Parquet . Aby uzyskać więcej informacji, zobacz Jak przechwytywać dane z usługi Event Hubs w formacie Parquet i Samouczek: przechwytywanie danych usługi Event Hubs w formacie Parquet i analizowanie za pomocą usługi Azure Synapse Analytics.

Przechwytywanie okien

Funkcja przechwytywania usługi Event Hubs umożliwia skonfigurowanie okna do kontrolowania przechwytywania. To okno jest minimalną konfiguracją rozmiaru i czasu z zasadami "first wins", co oznacza, że pierwszy wyzwalacz napotkany powoduje operację przechwytywania. Jeśli masz piętnaście minut, 100 MB okna przechwytywania i wysyłasz 1 MB na sekundę, okno rozmiaru jest wyzwalane przed przedziałem czasu. Każda partycja przechwytuje niezależnie i zapisuje ukończony blokowy obiekt blob w czasie przechwytywania o nazwie czas napotkania interwału przechwytywania. Konwencja nazewnictwa magazynu jest następująca:

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

Wartości daty są dopełniane zerami; przykładowa nazwa pliku może być:

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

Jeśli obiekt blob usługi Azure Storage jest tymczasowo niedostępny, funkcja Przechwytywanie usługi Event Hubs zachowa dane dla okresu przechowywania danych skonfigurowanego w centrum zdarzeń i z powrotem wypełnia dane po ponownym udostępnieniu konta magazynu.

Skalowanie jednostek przepływności lub jednostek przetwarzania

W warstwie Standardowa usługi Event Hubs ruch jest kontrolowany przez jednostki przepływności, a w usłudze Event Hubs w warstwie Premium jest kontrolowany przez jednostki przetwarzania. Funkcja przechwytywania usługi Event Hubs kopiuje dane bezpośrednio z wewnętrznego magazynu usługi Event Hubs, pomijając przydziały ruchu wychodzącego lub jednostki przetwarzania i zapisując ruch wychodzący dla innych czytników przetwarzania, takich jak Stream Analytics lub Spark.

Po skonfigurowaniu funkcja przechwytywania usługi Event Hubs jest uruchamiana automatycznie po wysłaniu pierwszego zdarzenia i kontynuuje działanie. Aby ułatwić przetwarzanie podrzędne, aby wiedzieć, że proces działa, usługa Event Hubs zapisuje puste pliki, gdy nie ma danych. Ten proces zapewnia przewidywalną kadencję i znacznik, który może dostarczać procesory wsadowe.

Konfigurowanie funkcji przechwytywania usługi Event Hubs

Funkcję Przechwytywanie można skonfigurować w czasie tworzenia centrum zdarzeń przy użyciu witryny Azure Portal lub szablonów usługi Azure Resource Manager. Aby uzyskać więcej informacji, zobacz następujące artykuły:

Uwaga

Jeśli włączysz funkcję przechwytywania dla istniejącego centrum zdarzeń, funkcja przechwytuje zdarzenia, które docierają do centrum zdarzeń po włączeniu funkcji. Nie przechwytuje zdarzeń, które istniały w centrum zdarzeń przed włączeniem funkcji.

Jak jest naliczana opłata za przechwytywanie usługi Event Hubs

Funkcja przechwytywania jest uwzględniana w warstwie Premium, więc nie ma dodatkowej opłaty za tę warstwę. W przypadku warstwy Standardowa funkcja jest naliczana co miesiąc, a opłata jest bezpośrednio proporcjonalna do liczby jednostek przepływności lub jednostek przetwarzania zakupionych dla przestrzeni nazw. Gdy jednostki przepływności lub jednostki przetwarzania są zwiększane i zmniejszane, liczniki przechwytywania usługi Event Hubs zwiększają się i zmniejszają w celu zapewnienia zgodnej wydajności. Mierniki występują w parze. Aby uzyskać szczegółowe informacje o cenach, zobacz Cennik usługi Event Hubs.

Funkcja Przechwytywanie nie zużywa limitu przydziału ruchu wychodzącego, ponieważ jest rozliczana oddzielnie.

Integracja z usługą Event Grid

Subskrypcję usługi Azure Event Grid można utworzyć przy użyciu przestrzeni nazw usługi Event Hubs jako jej źródła. W poniższym samouczku pokazano, jak utworzyć subskrypcję usługi Event Grid z centrum zdarzeń jako źródło i aplikację usługi Azure Functions jako ujście: Przetwarzanie i migrowanie przechwyconych danych usługi Event Hubs do usługi Azure Synapse Analytics przy użyciu usługi Event Grid i usługi Azure Functions.

Eksplorowanie przechwyconych plików

Aby dowiedzieć się, jak eksplorować przechwycone pliki Avro, zobacz Eksplorowanie przechwyconych plików Avro.

Konto usługi Azure Storage jako miejsce docelowe

Aby włączyć przechwytywanie w centrum zdarzeń za pomocą usługi Azure Storage jako miejsca docelowego przechwytywania lub zaktualizować właściwości w centrum zdarzeń za pomocą usługi Azure Storage jako miejsca docelowego przechwytywania, użytkownik lub jednostka usługi musi mieć rolę RBAC z następującymi uprawnieniami przypisanymi w zakresie konta magazynu. 

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

 

Bez powyższych uprawnień zostanie wyświetlony poniższy błąd:

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>

Właściciel danych obiektu blob usługi Storage jest wbudowaną rolą z powyższymi uprawnieniami, dlatego dodaj do tej roli konto użytkownika lub jednostkę usługi.  

Następne kroki

Przechwytywanie usługi Event Hubs to najprostszy sposób uzyskiwania danych na platformę Azure. Korzystając z usług Azure Data Lake, Azure Data Factory i Azure HDInsight, można wykonywać przetwarzanie wsadowe i inne analizy przy użyciu znanych narzędzi i platform do wyboru w dowolnej skali.

Dowiedz się, jak włączyć tę funkcję przy użyciu witryny Azure Portal i szablonu usługi Azure Resource Manager: