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 za pośrednictwem usługi Event Hubs w usłudze Azure Blob Storage lub na wybranym koncie usługi Azure Data Lake Storage Gen 1 lub Gen 2 . Zapewnia również elastyczność określania czasu lub interwału rozmiaru. Włączanie lub konfigurowanie funkcji przechwytywania usługi Event Hubs jest szybkie. Nie ma kosztów administracyjnych do jego uruchomienia i jest ona skalowana 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.
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 zachowuje 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 jednostki przepływności kontrolują ruch, a w usłudze Event Hubs w warstwie Premium jednostki przetwarzania kontrolują ruch. 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:
- Włączanie funkcji przechwytywania usługi Event Hubs przy użyciu witryny Azure Portal
- Tworzenie przestrzeni nazw usługi Event Hubs z centrum zdarzeń i włączanie funkcji Przechwytywanie przy użyciu szablonu usługi Azure Resource Manager
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ę kontroli dostępu opartej na rolach (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 tego uprawnienia zostanie wyświetlony następujący 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.
Powiązana zawartość
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: