Dane wyjściowe kolejek usługi Service Bus z usługi Azure Stream Analytics

Kolejki usługi Service Bus oferują dostarczanie komunikatów FIFO do co najmniej jednego konkurencyjnego użytkownika. Zazwyczaj komunikaty są odbierane i przetwarzane przez odbiorniki w kolejności czasowej, w której zostały dodane do kolejki. Każdy komunikat jest odbierany i przetwarzany tylko przez jednego odbiorcę komunikatu.

W przypadku poziomu zgodności 1.2 usługa Azure Stream Analytics używa protokołu obsługi komunikatów Advanced Message Queueing Protocol (AMQP) do zapisywania w kolejkach i tematach usługi Service Bus. Protokół AMQP umożliwia tworzenie międzyplatformowych aplikacji hybrydowych przy użyciu otwartego standardowego protokołu.

Konfiguracja danych wyjściowych

W poniższej tabeli wymieniono nazwy właściwości i ich opisy dotyczące tworzenia danych wyjściowych kolejki.

Nazwa właściwości Opis
Alias danych wyjściowych Przyjazna nazwa używana w zapytaniach do kierowania danych wyjściowych zapytania do tej kolejki usługi Service Bus.
Przestrzeń nazw usługi Service Bus Kontener dla zestawu jednostek obsługi komunikatów.
Nazwa kolejki Nazwa kolejki usługi Service Bus.
Nazwa zasad kolejki Podczas tworzenia kolejki można również utworzyć zasady dostępu współdzielonego na karcie Konfigurowanie kolejki. Każda zasada dostępu współdzielonego ma nazwę, uprawnienia ustawione i klucze dostępu.
Klucz zasad kolejki Klucz dostępu współużytkowanego używany do uwierzytelniania dostępu do przestrzeni nazw usługi Service Bus.
Format serializacji zdarzeń Format serializacji danych wyjściowych. Obsługiwane są pliki JSON, CSV i Avro.
Kodowanie 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 typu JSON. Linia oddzielona określa, że dane wyjściowe są formatowane przez każdy obiekt JSON oddzielony przez nowy wiersz. W przypadku wybrania pozycji 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ą formatowane 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.
Kolumny właściwości systemu Opcjonalny. Pary wartości klucza właściwości systemu i odpowiadające im nazwy kolumn, które muszą być dołączone do komunikatu wychodzącego zamiast ładunku.

Liczba partycji jest oparta na jednostce SKU i rozmiarze usługi Service Bus. Klucz partycji to unikatowa wartość całkowita dla każdej partycji.

Partycjonowanie

Partycjonowanie jest wybierane automatycznie. Liczba partycji jest oparta na jednostce SKU i rozmiarze usługi Service Bus. Klucz partycji jest unikatową wartością całkowitą dla każdej partycji. Liczba składników zapisywania danych wyjściowych jest taka sama jak liczba partycji w kolejce wyjściowej.

Rozmiar partii wyjściowej

Maksymalny rozmiar komunikatu to 256 KB na komunikat dla warstwy Standardowa i 1 MB dla warstwy Premium. Aby uzyskać więcej informacji, zobacz Limity usługi Service Bus. Aby zoptymalizować, użyj pojedynczego zdarzenia na komunikat.

Właściwości niestandardowych metadanych dla danych wyjściowych

Kolumny zapytania 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ść jest wartością 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.

  1. Użyj następującego zapytania:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Skonfiguruj DeviceId,DeviceStatus jako kolumny właściwości w danych wyjściowych.

    Property columns

Na poniższej ilustracji przedstawiono oczekiwane właściwości komunikatu wyjściowego sprawdzane w usłudze EventHub przy użyciu Eksploratora usługi Service Bus.

Event custom properties

Właściwości systemu

Kolumny zapytań można dołączać jako właściwości systemu do wychodzącej kolejki usługi Service Bus lub komunikatów tematu.

Te kolumny nie przechodzą do ładunku zamiast tego odpowiednią właściwość systemu ServiceBusMessage jest wypełniana wartościami kolumn zapytania. Te właściwości systemowe są obsługiwane — MessageId, ContentType, Label, PartitionKey, ReplyTo, SessionId, CorrelationId, To, ForcePersistence, TimeToLive, ScheduledEnqueueTimeUtc.

Wartości ciągów tych kolumn są analizowane jako odpowiadający typ wartości właściwości systemu, a wszystkie błędy analizy są traktowane jako błędy danych. To pole jest udostępniane jako format obiektu JSON. Szczegółowe informacje o tym formacie są następujące:

  • Otoczony nawiasami klamrowymi {}.
  • Zapisane w parach klucz/wartość.
  • Klucze i wartości muszą być ciągami.
  • Klucz to nazwa właściwości systemu, a wartość to nazwa kolumny zapytania.
  • Klucze i wartości są oddzielone dwukropkiem.
  • Każda para klucz/wartość jest oddzielona przecinkiem.

W tym artykule pokazano, jak używać tej właściwości —

  • Kwerendy: select *, column1, column2 INTO queueOutput FROM iotHubInput
  • Kolumny właściwości systemowych: { "MessageId": "column1", "PartitionKey": "column2"}

Ustawia on MessageId komunikaty w kolejce usługi Service Bus z wartościami column1i PartitionKey jest ustawiany z wartościami column2.

Następne kroki