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
Så här frågar du alla möjliga nätverkskortsrelaterade egenskaper som en post:
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
Så här frågar du alla möjliga nätverkskortsrelaterade egenskaper som en post:
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 someventprimarykey
. 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.