GetMetadataPropertyValue (Azure Stream Analytics)
Query's voor invoergegevens voor specifieke eigenschappen. Er zijn drie typen eigenschappen: Adapter, Gebruiker en Unieke EventId.
Eigenschappen van metagegevens van adapter
Bepaalde invoerspecifieke eigenschappen zijn toegankelijk voor de functie GetMetadataPropertyValue. Bovendien kunnen alle eigenschappen als één record worden geopend.
Notitie
Op dit moment kan deze functie niet worden getest op de Azure Portal (er worden lege resultaten geretourneerd). U kunt de ASA-extensie voor Visual Studio Code gebruiken om deze functie in uw query te testen met behulp van livegegevens.
Standaardeigenschappen voor metagegevens voor Event Hubs
- EventEnqueuedUtcTime
- EventProcessedUtcTime
- PartitionId
- Offset
- SequenceNumber
- PartitionKey
- Publisher, indien beschikbaar in de binnenkomende gebeurtenis
Voorbeelden:
EventEnqueuedUtcTime ophalen uit Event Hubs:
SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[EventEnqueuedUtcTime]') AS mytime FROM ehInput
Als u een query wilt uitvoeren op alle mogelijke adaptergerelateerde eigenschappen als een record:
SELECT GetMetadataPropertyValue(ehInput, 'EventHub') AS myEHPropertiesRecord FROM ehInput
IoT Hub eigenschappen wanneer deze worden gerouteerd naar Event Hubs-eindpunten
Wanneer u IoT Hub routeringsfunctie naar Event Hubs-eindpunten gebruikt, zijn metagegevenseigenschappen beschikbaar door eigenschappen van Event Hubs te lezen. In dit geval kunnen de volgende eigenschappen worden opgehaald:
- IoTConnectionDeviceId
- IoTAuthMethod
- IoTAuthGenerationId
- IoTEnqueueTime
- IoTMessageSource
- IoTConnectionModuleId
- IoTInterfaceName
Voorbeeld: SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId FROM ehInput
Eigenschappen die zijn toegevoegd via IoT Hub berichtverrijking kunnen worden opgehaald via gebruikerseigenschappen.
Standaardeigenschappen voor metagegevens voor IoT Hub
ConnectionDeviceId
AuthMethod
AuthGenerationId
EnqueueTime
MessageSource
ConnectionModuleId
InterfaceName
CorrelationId
Messageid
ConnectionDeviceGenerationId
Voorbeelden:
EnqueuedTime ophalen uit IoT Hub:
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub.EnqueuedTime') AS myEnqueuedTime FROM iotInput
Als u een query wilt uitvoeren op alle mogelijke adaptergerelateerde eigenschappen als een record:
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub') AS iotRecord FROM iotInput
Standaardeigenschappen voor metagegevens voor Blob-invoer:
- BlobName
- BlobLastModifiedUtcTime
- PartitionId
Voorbeeld: SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput
Gebruikerseigenschappen
Een aangepaste gebruikerseigenschap genaamd SenderClientId die is ingesteld voor binnenkomende EventHub-/IoT-/Blob-berichten, wordt toegankelijk gemaakt met GetMetadataPropertyValue, zoals wordt weergegeven in het onderstaande voorbeeld.
Daarnaast kunnen dubbeleigenschappen en verrijkte eigenschappen die zijn toegevoegd met IoT Hub berichtverrijking, ook worden opgehaald met GetMetadataPropertyValue.
Voorbeelden
Als u een query wilt uitvoeren op basis van een Event Hub-invoer,
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput
Als u een query wilt uitvoeren vanuit een IoT Hub-invoer,
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput
Query's uitvoeren op basis van een blob-invoer:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput
Als u alle gebruikerseigenschappen als record wilt ophalen,
Voor Event Hub:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput
Voor IoT Hub:
SELECT Name, GetMetadataPropertyValue(iotInput, '[User]') AS userprops FROM iotInput
Voor blobinvoer:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput
Unieke EventId-eigenschap
De eigenschap EventId maakt een unieke id (GUID) voor een invoergebeurtenis, die handig kan zijn voor primaire sleuteldoeleinden. EventId is consistent (niet willekeurig); Als u teruggaat in de tijd en dezelfde invoergebeurtenis opnieuw leest, produceert Stream Analytics dezelfde id.
Voorbeeld
SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey FROM ehInput
Beperkingen en beperkingen
GetMetadataPropertyValue heeft de volgende gebruiksbeperkingen:
Als u
SELECT *
in uw query gebruikt, worden dubbele kolommen veroorzaakt. U kunt dubbele kolommen voorkomen door kolommen afzonderlijk in uw SELECT-instructie weer te geven.De alias die u aan de eigenschapswaarde voor metagegevens opgeeft, is kleine letters, ongeacht de hoofdletters die in uw query worden gebruikt. Voert bijvoorbeeld
SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey
uit alseventprimarykey
. Gebruik compatibiliteitsniveau 1.2 om de behuizing te behouden.Deze functie werkt niet in het Azure Portal voorbeeld van resultatenvenster, met inbegrip van testqueryfuncties.
Wijzig de naam van de velden van de origiale nettolading voordat de gegevens binnenkomen bij ASA. De naam van het nettoladingveld wordt overschreven als deze hetzelfde is als de veldnaam voor metagegevens van het systeem.
MessageId en CorrelationId van gebeurtenismetagegevens van EventHub worden niet ondersteund.