GetMetadataPropertyValue (Azure Stream Analytics)

Wykonuje zapytania dotyczące danych wejściowych pod kątem określonych właściwości. Istnieją trzy typy właściwości: Adapter, User i Unique EventId.

Właściwości metadanych adaptera

Niektóre właściwości specyficzne dla danych wejściowych są dostępne dla funkcji GetMetadataPropertyValue. Ponadto dostęp do wszystkich właściwości można uzyskać jako pojedynczy rekord.

Uwaga

Obecnie tej funkcji nie można przetestować na Azure Portal (zwróci puste wyniki). Możesz użyć rozszerzenia ASA dla Visual Studio Code, aby przetestować tę funkcję w zapytaniu przy użyciu danych na żywo.

Domyślne właściwości metadanych usługi Event Hubs

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • Partitionid
  • Przesunięcie
  • SequenceNumber
  • PartitionKey
  • Wydawca, gdy jest dostępny w zdarzeniu przychodzącym

Przykłady:

Pobierz zdarzenie EventEnqueuedUtcTime z usługi Event Hubs:

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

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

IoT Hub właściwości podczas kierowania do punktów końcowych usługi Event Hubs

W przypadku korzystania z funkcji routingu IoT Hub do punktów końcowych usługi Event Hubs właściwości metadanych będą dostępne przez odczytywanie właściwości z usługi Event Hubs. W tym przypadku następujące właściwości, które można pobrać:

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

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

Właściwości dodane za pośrednictwem IoT Hub wzbogacania komunikatów można pobrać za pośrednictwem właściwości użytkownika.

Domyślne właściwości metadanych dla IoT Hub

  • ConnectionDeviceId

  • AuthMethod

  • Identyfikator AuthGenerationId

  • EnqueueTime

  • Messagesource

  • ConnectionModuleId

  • Nazwa interfejsu

  • CorrelationId

  • Messageid

  • ConnectionDeviceGenerationId

Przykłady:

Pobierz wartość EnqueuedTime z IoT Hub:

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

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

Domyślne właściwości metadanych dla danych wejściowych obiektu blob:

  • Nazwa obiektu blob
  • BlobLastModifiedUtcTime
  • Partitionid

Przykład: SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput

Właściwości użytkownika

Niestandardowa właściwość użytkownika o nazwie SenderClientId ustawiona dla przychodzących komunikatów EventHub/IoT/Blob jest udostępniana przy użyciu metody GetMetadataPropertyValue, jak pokazano w poniższym przykładzie.

Ponadto właściwości bliźniaczej reprezentacji i wzbogacone właściwości dodane przy użyciu IoT Hub wzbogacania komunikatów można również pobrać przy użyciu metody GetMetadataPropertyValue.

Przykłady

Aby wykonywać zapytania z danych wejściowych centrum zdarzeń,
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

Aby wykonywać zapytania z IoT Hub danych wejściowych,
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput

Aby wykonywać zapytania z danych wejściowych obiektu blob,
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput

Aby uzyskać wszystkie właściwości użytkownika jako rekord,

W przypadku centrum zdarzeń:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput

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

Dla danych wejściowych obiektu blob:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput

Unikatowa właściwość EventId

Właściwość EventId tworzy unikatowy identyfikator (Guid) dla zdarzenia wejściowego, które może być przydatne do celów podstawowych. EventId jest spójny (nie losowy); Jeśli wrócisz w czasie i ponownie odczytasz to samo zdarzenie wejściowe, usługa Stream Analytics utworzy ten sam identyfikator.

Przykład

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

Ograniczenia i ograniczenia

Właściwość GetMetadataPropertyValue ma następujące ograniczenia użycia:

  • Użycie SELECT * w zapytaniu powoduje zduplikowane kolumny. Aby zapobiec duplikowaniu kolumn, wyświetl listę kolumn indywidualnie w instrukcji SELECT.

  • Alias, który nadajesz wartości właściwości metadanych, będzie zawierać małe litery niezależnie od wielkości liter używanej w zapytaniu. Na przykład SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey dane wyjściowe są wyświetlane jako eventprimarykey. Aby zachować wielkość liter, użyj poziomu zgodności 1.2.

  • Ta funkcja nie działa w okienku wyników Azure Portal podglądu, w tym funkcji zapytania testowego.

  • Zmień nazwę pól ładunku origial, zanim dane dotrą do usługi ASA. Nazwa pola ładunku zostanie zastąpiona, jeśli jest taka sama jak nazwa pola metadanych systemu.

  • Metadane zdarzeń usługi MessageId i CorrelationId usługi EventHub nie są obsługiwane.