Sdílet prostřednictvím


GetMetadataPropertyValue

✅Eventstream prostředků infrastruktury Azure Stream Analytics ✅

Dotazuje vstupní data pro konkrétní vlastnosti. Existují tři typy vlastností: Adapter, User a Unique EventId.

Vlastnosti metadat adaptéru

Některé vlastnosti specifické pro vstup jsou přístupné funkcí GetMetadataPropertyValue. Kromě toho lze ke všem vlastnostem přistupovat jako k jednomu záznamu.

Poznámka:

V tuto chvíli nejde tuto funkci otestovat na webu 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

  • Čas zařazení události podle UTC
  • Čas zpracování události v UTC
  • Identifikátor oddílu
  • Ofset
  • Sekvenční číslo
  • PartitionKey
  • Publisher, pokud je k dispozici v příchozí události

Příklady:

Načtení eventEnqueuedUtcTime ze služby Event Hubs:

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

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

Vlastnosti služby IoT Hub při směrování do koncových bodů služby Event Hubs

Při použití funkce směrování služby IoT Hub do koncových bodů služby Event Hubs budou vlastnosti metadat k dispozici čtením 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 rozšiřování zpráv ioT Hubu je možné načíst prostřednictvím vlastností uživatele.

Výchozí vlastnosti metadat pro IoT Hub

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • InterfaceName

  • Identifikátor korelace

  • ID zprávy

  • ConnectionDeviceGenerationId

Příklady:

Načtení enqueuedTime ze služby 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
  • Identifikátor oddílu

Příklad: SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput

Uživatelské vlastnosti

Vlastní vlastnost uživatele s názvem SenderClientId nastavená na příchozích zprávách EventHub, IoT/Blob je přístupná pomocí Rutiny GetMetadataPropertyValue, jak je znázorněno v příkladu níže.

Kromě toho lze vlastnosti dvojčete a rozšířené vlastnosti přidané pomocí rozšíření zpráv IoT Hubu načíst také pomocí GetMetadataPropertyValue.

Příklady

Dotazování ze vstupu centra událostí:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

Dotazování ze vstupu ioT Hubu:
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,

Pro 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) pro vstupní událost, což může být užitečné pro účely primárního klíče. Id události je konzistentní (ne náhodné); Pokud se vrátíte včas a znovu přečtete stejnou vstupní událost, Stream Analytics vytvoří stejné ID.

Příklad

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

Limitace 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 sloupce jednotlivě v příkazu SELECT.

  • Alias, který udělí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ýstupy jako eventprimarykey. Pokud chcete zachovat velikost skříně, použijte úroveň kompatibility 1.2.

  • Tato funkce nefunguje v podokně výsledků náhledu webu Azure Portal, včetně funkcí testovacích dotazů.

  • Před příchodem dat do ASA přejmenujte origiální datová část. 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í EventHubu nejsou podporovány.