Dela via


Service Bus köar utdata från Azure Stream Analytics

Service Bus-köer erbjuder en FIFO-meddelandeleverans till en eller flera konkurrerande konsumenter. Meddelanden tas vanligtvis emot och bearbetas av mottagarna i den tidsordning som de lades till i kön. Varje meddelande tas emot och bearbetas av endast en meddelandekonsument.

I kompatibilitetsnivå 1.2 använder Azure Stream Analytics meddelandeprotokollet Advanced Message Queueing Protocol (AMQP) för att skriva till Service Bus-köer och -ämnen. MED AMQP kan du skapa plattformsoberoende hybridprogram med hjälp av ett öppet standardprotokoll.

Utdatakonfiguration

I följande tabell visas egenskapsnamnen och deras beskrivningar för att skapa en köutdata.

Egenskapsnamn Description
Utdataalias Ett eget namn som används i frågor för att dirigera frågeutdata till den här Service Bus-kön.
Service Bus namnrymd En container för en uppsättning meddelandeentiteter.
Könamn Namnet på Service Bus-kön.
Namn på köprincip När du skapar en kö kan du också skapa principer för delad åtkomst på fliken Konfigurera i kön. Varje princip för delad åtkomst har ett namn, behörigheter som du anger och åtkomstnycklar.
Köprincipnyckel Den delade åtkomstnyckel som används för att autentisera åtkomst till Service Bus-namnområdet.
Format för serialisering av händelser Serialiseringsformatet för utdata. JSON, CSV och Avro stöds.
Encoding För CSV och JSON är UTF-8 det enda kodningsformat som stöds just nu.
Delimiter Gäller endast för CSV-serialisering. Stream Analytics stöder ett antal vanliga avgränsare för serialisering av data i CSV-format. Värden som stöds är kommatecken, semikolon, blanksteg, flik och lodrät stapel.
Format Gäller endast för JSON-typ. Radavgränsad anger att utdata formateras genom att varje JSON-objekt avgränsas med en ny rad. Om du väljer Radavgränsad läss JSON ett objekt i taget. Hela innehållet i sig skulle inte vara en giltig JSON. Matrisen anger att utdata formateras som en matris med JSON-objekt.
Egenskapskolumner Valfritt. Kommaavgränsade kolumner som måste kopplas som användaregenskaper för det utgående meddelandet i stället för nyttolasten. Mer information om den här funktionen finns i avsnittet Anpassade metadataegenskaper för utdata.
Kolumner för systemegenskap Valfritt. Nyckelvärdepar med systemegenskaper och motsvarande kolumnnamn som måste kopplas till det utgående meddelandet i stället för nyttolasten.

Antalet partitioner baseras på Service Bus SKU och storlek. Partitionsnyckeln är ett unikt heltalsvärde för varje partition.

Partitionering

Partitionering väljs automatiskt. Antalet partitioner baseras på Service Bus SKU och storlek. Partitionsnyckeln är ett unikt heltalsvärde för varje partition. Antalet utdataskrivare är detsamma som antalet partitioner i utdatakön.

Batchstorlek för utdata

Den maximala meddelandestorleken är 256 KB per meddelande för Standard-nivån och 1 MB för Premium-nivån. Mer information finns i Service Bus-gränser. Om du vill optimera använder du en enskild händelse per meddelande.

Anpassade metadataegenskaper för utdata

Du kan bifoga frågekolumner som användaregenskaper till dina utgående meddelanden. Dessa kolumner hamnar inte i nyttolasten. Egenskaperna finns i form av en ordlista i utdatameddelandet. Nyckeln är kolumnnamnet och värdet är kolumnvärdet i egenskapsordlistan. Alla Datatyper för Stream Analytics stöds förutom Post och Matris.

I följande exempel läggs fälten DeviceId och DeviceStatus till i metadata.

  1. Använd följande fråga:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Konfigurera DeviceId,DeviceStatus som egenskapskolumner i utdata.

    Property columns

Följande bild är av de förväntade utdatameddelandeegenskaperna som inspekteras i EventHub med Service Bus Explorer.

Event custom properties

Systemegenskaper

Du kan koppla frågekolumner som systemegenskaper till din utgående service bus-kö eller ämnesmeddelanden.

De här kolumnerna hamnar inte i nyttolasten i stället så fylls motsvarande ServiceBusMessage-systemegenskap i med frågekolumnvärdena. Dessa systemegenskaper stöds – MessageId, ContentType, Label, PartitionKey, ReplyTo, SessionId, CorrelationId, To, ForcePersistence, TimeToLive, ScheduledEnqueueTimeUtc.

Strängvärden för dessa kolumner parsas som motsvarande värdetyp för systemegenskap och eventuella parsningsfel behandlas som datafel. Det här fältet anges som ett JSON-objektformat. Information om det här formatet är följande:

  • Omgiven av klammerparenteser {}.
  • Skrivet i nyckel/värde-par.
  • Nycklar och värden måste vara strängar.
  • Nyckeln är systemegenskapens namn och värdet är frågekolumnnamnet.
  • Nycklar och värden avgränsas med ett kolon.
  • Varje nyckel/värde-par avgränsas med ett kommatecken.

Detta visar hur du använder den här egenskapen –

  • Fråga: select *, column1, column2 INTO queueOutput FROM iotHubInput
  • Systemegenskapskolumner: { "MessageId": "column1", "PartitionKey": "column2"}

Detta anger MessageId service bus-kömeddelandena med column1värden och PartitionKey anges med column2värden.

Nästa steg