GetMetadataPropertyValue (Azure Stream Analytics)
Dotazuje se na vstupní data pro konkrétní vlastnosti. Existují tři typy vlastností: Adaptér, Uživatel a Jedinečné ID události.
Vlastnosti metadat adaptéru
Některé vlastnosti specifické pro vstup jsou přístupné funkci GetMetadataPropertyValue. Ke všem vlastnostem je navíc možné přistupovat jako k jednomu záznamu.
Poznámka
V tuto chvíli nelze tuto funkci testovat na Azure Portal (vrátí prázdné výsledky). K otestování této funkce v dotazu pomocí živých dat můžete použít rozšíření ASA pro Visual Studio Code.
Výchozí vlastnosti metadat pro službu Event Hubs
- EventEnqueuedUtcTime
- EventProcessedUtcTime
- Partitionid
- Posun
- SequenceNumber
- PartitionKey
- Publisher, pokud je k dispozici v příchozí události
Příklady:
Načtení hodnoty EventEnqueuedUtcTime ze služby Event Hubs:
SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[EventEnqueuedUtcTime]') AS mytime FROM ehInput
Dotaz na všechny možné vlastnosti související s adaptérem jako záznam:
SELECT GetMetadataPropertyValue(ehInput, 'EventHub') AS myEHPropertiesRecord FROM ehInput
IoT Hub vlastností při směrování do koncových bodů služby Event Hubs
Při použití funkce směrování IoT Hub do koncových bodů služby Event Hubs budou vlastnosti metadat k dispozici při čtení vlastností ze služby Event Hubs. V tomto případě se dají načíst následující vlastnosti:
- IoTConnectionDeviceId
- IoTAuthMethod
- IoTAuthGenerationId
- IoTEnqueueTime
- IoTMessageSource
- IoTConnectionModuleId
- IoTInterfaceName
Příklad: SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId FROM ehInput
Vlastnosti přidané prostřednictvím IoT Hub rozšiřování zpráv je možné načíst prostřednictvím vlastností uživatele.
Výchozí vlastnosti metadat pro IoT Hub
Id zařízení (ID zařízení)
Metoda ověřování
AuthGenerationId
Čas fronty
Zdroj zpráv
Id modulu připojení
Název rozhraní
CorrelationId
Messageid
ConnectionDeviceGenerationId
Příklady:
Načíst EnqueuedTime z IoT Hub:
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub.EnqueuedTime') AS myEnqueuedTime FROM iotInput
Dotaz na všechny možné vlastnosti související s adaptérem jako záznam:
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub') AS iotRecord FROM iotInput
Výchozí vlastnosti metadat pro vstup objektu blob:
- Název objektu blob
- BlobLastModifiedUtcTime
- Partitionid
Příklad: SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput
Uživatelské vlastnosti
Vlastní vlastnost uživatele s názvem SenderClientId nastavená pro příchozí zprávy EventHub/ IoT/Blob je přístupná pomocí getMetadataPropertyValue, jak je znázorněno v následujícím příkladu.
Vlastnosti dvojčat a rozšířené vlastnosti přidané pomocí IoT Hub rozšiřování zpráv lze také načíst pomocí rutiny GetMetadataPropertyValue.
Příklady
Dotazování ze vstupu centra událostí:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput
Dotazování ze vstupu IoT Hub:
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput
Dotazování ze vstupu objektu blob:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput
Pokud chcete získat všechny vlastnosti uživatele jako záznam,
Centrum událostí:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput
Pro IoT Hub:
SELECT Name, GetMetadataPropertyValue(iotInput, '[User]') AS userprops FROM iotInput
Pro vstup objektu blob:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput
Jedinečná vlastnost EventId
Vlastnost EventId vytvoří jedinečné ID (GUID) vstupní události, což může být užitečné pro účely primárního klíče. EventId je konzistentní (není náhodné); Pokud se vrátíte v čase a znovu si přečtete stejnou vstupní událost, Stream Analytics vygeneruje stejné ID.
Příklad
SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey FROM ehInput
Omezení a omezení
GetMetadataPropertyValue má následující omezení použití:
Použití
SELECT *
v dotazu způsobí duplicitní sloupce. Pokud chcete zabránit duplicitním sloupcům, vypište jednotlivé sloupce v příkazu SELECT.Alias, který dáte hodnotě vlastnosti metadat, bude malými písmeny bez ohledu na velikost písmen použitá v dotazu. Například
SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey
výstup je .eventprimarykey
Pokud chcete zachovat velikost a velikost, použijte úroveň kompatibility 1.2.Tato funkce nefunguje v podokně Azure Portal náhledu výsledků, včetně funkcí testovacího dotazu.
Před doručením dat do ASA přejmenujte pole origial payload. Název pole datové části se přepíše, pokud je stejný jako název pole systémových metadat.
Id zprávy a ID korelace metadat událostí v EventHubu nejsou podporovány.