Dela via


GetMetadataPropertyValue

✅ Azure Stream Analytics ✅ Fabric Eventstream

Frågor 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.

Anmärkning

Den här funktionen kan för närvarande inte testas på Azure-portalen (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 livedata.

Standardegenskaper för metadata för Event Hubs

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • PartitionId
  • Uppväga
  • Sekvensnummer
  • Partitionsnyckel
  • 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 följande egenskaper som kan 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.

Standardegenskaper för metadata för IoT Hub

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • InterfaceName

  • CorrelationId

  • Meddelande-ID

  • 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 Blob-indata:

  • 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, som du ser i exemplet nedan.

Dessutom kan tvillingegenskaper och berikade egenskaper som lagts till med hjälp av IoT Hub-meddelandeberikning hämtas med hjälp av GetMetadataPropertyValue.

Exempel

Om du vill fråga från en Event Hub-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 Event Hub:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput

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

För Blob-indata:
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 för primära nyckelsyften. EventId är konsekvent (inte slumpmässigt); Om du går tillbaka i tiden och läser samma indatahändelse igen skapar Stream Analytics samma ID.

Exempel

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

Begränsningar och restriktioner

GetMetadataPropertyValue har följande användningsbegränsningar:

  • Att använda SELECT * i frågan orsakar 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 resultatfönstret för förhandsversionen av Azure-portalen, inklusive testfrågefunktioner.

  • Byt namn på fälten för origiell 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.