Dane wyjściowe usługi Event Hubs z usługi Azure Stream Analytics
Usługa Azure Event Hubs jest wysoce skalowalnym ingestorem zdarzeń publikowania-subskrybowania. Może zbierać miliony zdarzeń na sekundę. Jedno użycie centrum zdarzeń jako danych wyjściowych polega na tym, że dane wyjściowe zadania usługi Stream Analytics stają się danymi wejściowymi innego zadania przesyłania strumieniowego. Aby uzyskać informacje o maksymalnym rozmiarze komunikatu i optymalizacji rozmiaru partii, zobacz sekcję Rozmiar partii danych wyjściowych .
Konfiguracja danych wyjściowych
Poniższa tabela zawiera parametry wymagane do skonfigurowania strumieni danych z centrów zdarzeń jako danych wyjściowych.
Nazwa właściwości | Opis |
---|---|
Alias danych wyjściowych | Przyjazna nazwa używana w zapytaniach do kierowania danych wyjściowych zapytania do tego centrum zdarzeń. |
Przestrzeń nazw centrum zdarzeń | Kontener dla zestawu jednostek obsługi komunikatów. Podczas tworzenia nowego centrum zdarzeń utworzono również przestrzeń nazw centrum zdarzeń. |
Nazwa centrum zdarzeń | Nazwa danych wyjściowych centrum zdarzeń. |
Nazwa zasad centrum zdarzeń | Zasady dostępu współdzielonego, które można utworzyć na karcie Konfigurowanie centrum zdarzeń. Każda zasada dostępu współdzielonego ma nazwę, uprawnienia ustawione i klucze dostępu. |
Klucz zasad centrum zdarzeń | Klucz dostępu współdzielonego używany do uwierzytelniania dostępu do przestrzeni nazw centrum zdarzeń. |
Kolumna klucza partycji | Opcjonalny. Kolumna zawierająca klucz partycji dla danych wyjściowych centrum zdarzeń. |
Format serializacji zdarzeń | Format serializacji danych wyjściowych. Obsługiwane są pliki JSON, CSV i Avro. |
Encoding | W przypadku plików CSV i JSON utF-8 jest obecnie jedynym obsługiwanym formatem kodowania. |
Ogranicznik | Dotyczy tylko serializacji CSV. Usługa Stream Analytics obsługuje szereg typowych ograniczników do serializacji danych w formacie CSV. Obsługiwane wartości to przecinek, średnik, spacja, karta i pionowy pasek. |
Format | Dotyczy tylko serializacji JSON. Linia oddzielona określa, że dane wyjściowe są sformatowane przez każdy obiekt JSON oddzielony przez nowy wiersz. Jeśli wybierzesz pozycję Linia oddzielona, kod JSON jest odczytywany jeden obiekt naraz. Cała zawartość sama w sobie nie byłaby prawidłowym kodem JSON. Tablica określa, że dane wyjściowe są sformatowane jako tablica obiektów JSON. |
Kolumny właściwości | Opcjonalny. Kolumny rozdzielone przecinkami, które muszą być dołączone jako właściwości użytkownika komunikatu wychodzącego zamiast ładunku. Więcej informacji na temat tej funkcji znajduje się w sekcji Niestandardowe właściwości metadanych dla danych wyjściowych. |
Partycjonowanie
Partycjonowanie różni się w zależności od wyrównania partycji. Gdy klucz partycji dla danych wyjściowych centrum zdarzeń jest równie wyrównany do kroku zapytania nadrzędnego (poprzedniego), liczba składników zapisywania jest taka sama jak liczba partycji w danych wyjściowych centrum zdarzeń. Każdy składnik zapisywania używa klasy EventHubSender do wysyłania zdarzeń do określonej partycji. Gdy klucz partycji dla danych wyjściowych centrum zdarzeń nie jest zgodny z krokiem zapytania nadrzędnego (poprzedniego), liczba składników zapisywania jest taka sama jak liczba partycji w tym poprzednim kroku. Każdy składnik zapisywania używa klasy SendBatchAsync w usłudze EventHubClient do wysyłania zdarzeń do wszystkich partycji wyjściowych.
Rozmiar partii wyjściowej
Maksymalny rozmiar komunikatu to 256 KB lub 1 MB na komunikat. Aby uzyskać więcej informacji, zobacz Limity usługi Event Hubs. Gdy partycjonowanie danych wejściowych/wyjściowych nie jest wyrównane, każde zdarzenie jest pakowane indywidualnie i EventData
wysyłane w partii do maksymalnego rozmiaru komunikatu. Dzieje się tak również w przypadku użycia niestandardowych właściwości metadanych . Gdy partycjonowanie danych wejściowych/wyjściowych jest wyrównane, wiele zdarzeń jest zapakowanych w jedno EventData
wystąpienie, maksymalnie do maksymalnego rozmiaru komunikatu i wysyłane.
Niestandardowe właściwości metadanych dla danych wyjściowych
Kolumny zapytań można dołączać jako właściwości użytkownika do wiadomości wychodzących. Te kolumny nie przechodzą do ładunku. Właściwości są obecne w postaci słownika w komunikacie wyjściowym. Klucz to nazwa kolumny, a wartość to wartość kolumny w słowniku właściwości. Wszystkie typy danych usługi Stream Analytics są obsługiwane z wyjątkiem rekordów i tablic.
W poniższym przykładzie pola DeviceId
i DeviceStatus
są dodawane do metadanych.
Użyj następującego zapytania:
select *, DeviceId, DeviceStatus from iotHubInput
Skonfiguruj
DeviceId,DeviceStatus
jako kolumny właściwości w danych wyjściowych.
Na poniższej ilustracji przedstawiono oczekiwane właściwości komunikatu wyjściowego sprawdzane w centrum zdarzeń przy użyciu Eksploratora usługi Service Bus.
Dokładnie raz dostawy
Dokładnie raz dostarczanie jest domyślnie obsługiwane w danych wyjściowych usługi Event Hubs. Niezależnie od danych wejściowych usługa Stream Analytics nie gwarantuje utraty danych ani żadnych duplikatów w danych wyjściowych usługi Event Hubs, w przypadku ponownego uruchomienia zainicjowanego przez użytkownika z ostatniego czasu wyjściowego, co uniemożliwia tworzenie duplikatów. Znacznie upraszcza to potok przesyłania strumieniowego, nie trzeba monitorować, implementować i rozwiązywać problemów z logiką deduplikacji.