Freigeben über


GetMetadataPropertyValue

✅ Azure Stream Analytics ✅ Fabric Eventstream

Fragt Eingabedaten für bestimmte Eigenschaften ab. Es gibt drei Arten von Eigenschaften: Adapter, Benutzer und Unique EventId.

Adaptermetadateneigenschaften

Auf bestimmte eingabespezifische Eigenschaften kann über die GetMetadataPropertyValue-Funktion zugegriffen werden. Darüber hinaus können alle Eigenschaften als einzelner Datensatz aufgerufen werden.

Hinweis

Zu diesem Zeitpunkt kann diese Funktion nicht im Azure-Portal getestet werden (es gibt leere Ergebnisse zurück). Sie können die ASA-Erweiterung für Visual Studio Code verwenden, um diese Funktion in Ihrer Abfrage mithilfe von Livedaten zu testen.

Standardmetadateneigenschaften für Event Hubs

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • PartitionId
  • Offset
  • Sequenznummer
  • Partitionsschlüssel
  • Publisher, wenn im eingehenden Ereignis verfügbar

Beispiele

Abrufen von EventEnqueuedUtcTime von Event Hubs:

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

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

IoT Hub-Eigenschaften beim Weiterleiten an Event Hubs-Endpunkte

Wenn Sie das IoT Hub-Routingfeature für Event Hubs-Endpunkte verwenden, stehen Metadateneigenschaften durch Lesen von Eigenschaften aus Event Hubs zur Verfügung. In diesem Fall können die folgenden Eigenschaften abgerufen werden:

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

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

Über die IoT Hub-Nachrichtenanreicherung hinzugefügte Eigenschaften können über Benutzereigenschaften abgerufen werden.

Standardmetadateneigenschaften für IoT Hub

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • InterfaceName

  • CorrelationId

  • Nachrichten-ID

  • ConnectionDeviceGenerationId

Beispiele

Abrufen von EnqueuedTime vom IoT Hub:

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

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

Standardmetadateneigenschaften für blob-Eingabe:

  • BlobName
  • BlobLastModifiedUtcTime
  • PartitionId

Beispiel: SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput

Benutzereigenschaften

Eine benutzerdefinierte Benutzereigenschaft namens "SenderClientId", die für eingehende EventHub/IoT/Blob-Nachrichten festgelegt wurde, wird mithilfe von GetMetadataPropertyValue zugänglich gemacht, wie im folgenden Beispiel gezeigt.

Darüber hinaus können Zwillingseigenschaften und erweiterte Eigenschaften, die mithilfe der IoT Hub-Nachrichtenanreicherung hinzugefügt werden, auch mithilfe von GetMetadataPropertyValue abgerufen werden.

Beispiele

So fragen Sie aus einer Event Hub-Eingabe ab
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

So fragen Sie aus einer IoT Hub-Eingabe ab
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput

So fragen Sie von einer BLOB-Eingabe ab
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput

So rufen Sie alle Benutzereigenschaften als Datensatz ab

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-Eingabe:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput

Unique EventId-Eigenschaft

Die EventId-Eigenschaft erstellt eine eindeutige ID (Guid) für ein Eingabeereignis, das für Primärschlüsselzwecke nützlich sein kann. EventId ist konsistent (nicht zufällig); Wenn Sie in der Zeit zurückkehren und dasselbe Eingabeereignis erneut lesen, erzeugt Stream Analytics dieselbe ID.

Beispiel

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

Einschränkungen und Beschränkungen

GetMetadataPropertyValue hat die folgenden Einschränkungen der Verwendung:

  • Die Verwendung SELECT * in Ihrer Abfrage bewirkt doppelte Spalten. Um doppelte Spalten zu verhindern, listen Sie Spalten einzeln in Ihrer SELECT-Anweisung auf.

  • Der Alias, den Sie Ihrem Metadateneigenschaftswert zuweisen, wird unabhängig von der in Ihrer Abfrage verwendeten Groß-/Kleinschreibung klein geschrieben. Gibt z. B SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey . als eventprimarykey. Verwenden Sie die Kompatibilitätsebene 1.2, um die Groß-/Kleinschreibung beizubehalten.

  • Diese Funktion funktioniert nicht im Vorschauergebnisbereich des Azure-Portals, einschließlich Testabfragefunktionen.

  • Benennen Sie die Origialnutzlastfelder um, bevor die Daten zu ASA gelangen. Der Nutzlastfeldname wird überschrieben, wenn er mit dem Namen des Systemmetadatenfelds übereinstimmt.

  • MessageId und CorrelationId der Ereignismetadaten von EventHub werden nicht unterstützt.