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
Aby zbadać wszystkie możliwe właściwości związane z adapterem jako rekord:
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
Aby zbadać wszystkie możliwe właściwości związane z adapterem jako rekord:
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 jakoeventprimarykey
. 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.