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

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

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.