Delen via


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

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

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 als eventprimarykey. 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.