GetMetadataPropertyValue (Azure Stream Analytics)

Frågar indata för specifika egenskaper. Det finns tre typer av egenskaper: Adapter, Användare och Unikt EventId.

Egenskaper för adaptermetadata

Vissa indataspecifika egenskaper är tillgängliga för funktionen GetMetadataPropertyValue. Dessutom kan alla egenskaper nås som en enda post.

Anteckning

Den här funktionen kan för närvarande inte testas på Azure Portal (den returnerar tomma resultat). Du kan använda ASA-tillägget för Visual Studio Code för att testa den här funktionen i din fråga med hjälp av realtidsdata.

Standardegenskaper för metadata för Event Hubs

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • Partitionid
  • Offset
  • SequenceNumber
  • PartitionKey
  • Publisher, när det är tillgängligt i den inkommande händelsen

Exempel:

Hämta EventEnqueuedUtcTime från Event Hubs:

SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[EventEnqueuedUtcTime]') AS mytime FROM ehInput

SELECT GetMetadataPropertyValue(ehInput, 'EventHub') AS myEHPropertiesRecord FROM ehInput

IoT Hub egenskaper när de dirigeras till Event Hubs-slutpunkter

När du använder IoT Hub routningsfunktionen till Event Hubs-slutpunkter blir metadataegenskaper tillgängliga genom att läsa egenskaper från Event Hubs. I det här fallet kan följande egenskaper hämtas:

  • IoTConnectionDeviceId
  • IoTAuthMethod
  • IoTAuthGenerationId
  • IoTEnqueueTime
  • IoTMessageSource
  • IoTConnectionModuleId
  • IoTInterfaceName

Exempel: SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId FROM ehInput

Egenskaper som läggs till via IoT Hub meddelandeberikning kan hämtas via användaregenskaper.

Standardmetadataegenskaper för IoT Hub

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • Gränssnittsnamn

  • CorrelationId

  • Messageid

  • ConnectionDeviceGenerationId

Exempel:

Hämta EnqueuedTime från IoT Hub:

SELECT GetMetadataPropertyValue(iotInput, 'IoTHub.EnqueuedTime') AS myEnqueuedTime FROM iotInput

SELECT GetMetadataPropertyValue(iotInput, 'IoTHub') AS iotRecord FROM iotInput

Standardmetadataegenskaper för blobindata:

  • BlobName
  • BlobLastModifiedUtcTime
  • Partitionid

Till exempel SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput

Användaregenskaper

En anpassad användaregenskap med namnet SenderClientId som angetts för inkommande EventHub/IoT/Blob-meddelanden görs tillgänglig med Hjälp av GetMetadataPropertyValue, enligt exemplet nedan.

Dessutom kan tvillingegenskaper och berikade egenskaper som läggs till med IoT Hub meddelandeberikning också hämtas med getMetadataPropertyValue.

Exempel

Om du vill fråga från en Händelsehubb-indata,
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

Om du vill fråga från en IoT Hub indata,
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput

Om du vill fråga från en Blob-indata,
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput

Om du vill hämta alla användaregenskaper som en post,

För Händelsehubb:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput

För IoT Hub:
SELECT Name, GetMetadataPropertyValue(iotInput, '[User]') AS userprops FROM iotInput

För blobindata:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput

Unik EventId-egenskap

Egenskapen EventId skapar ett unikt ID (Guid) för en indatahändelse, vilket kan vara användbart i primärnyckelsyfte. EventId är konsekvent (inte slumpmässigt); Om du går tillbaka i tiden och läser om samma indatahändelse genererar Stream Analytics samma ID.

Exempel

SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey FROM ehInput

Begränsningar och begränsningar

GetMetadataPropertyValue har följande användningsbegränsningar:

  • Om du använder SELECT * i frågan skapas dubbletter av kolumner. Om du vill förhindra dubbletter av kolumner listar du kolumner individuellt i SELECT-instruktionen.

  • Aliaset som du ger värdet för metadataegenskapen är gemener oavsett vilket hölje som används i frågan. Till exempel SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey utdata som eventprimarykey. Använd kompatibilitetsnivå 1.2 för att bevara höljet.

  • Den här funktionen fungerar inte i fönstret Azure Portal förhandsgranskningsresultat, inklusive testfrågefunktioner.

  • Byt namn på fälten för origial nyttolast innan data kommer till ASA. Nyttolastfältets namn skrivs över om det är samma som systemets metadatafältnamn.

  • MessageId och CorrelationId för EventHubs händelsemetadata stöds inte.