GetMetadataPropertyValue (Analisi di flusso di Azure)

Esegue una query su dati di input per proprietà specifiche. Esistono tre tipi di proprietà: Adapter, User e Unique EventId.

Proprietà dei metadati dell'adapter

Alcune proprietà specifiche dell'input sono accessibili dalla funzione GetMetadataPropertyValue. Inoltre, è possibile accedere a tutte le proprietà come un singolo record.

Nota

Al momento, questa funzione non può essere testata sul portale di Azure (restituirà risultati vuoti). È possibile usare l'estensione ASA per Visual Studio Code per testare questa funzione nella query usando dati in tempo reale.

Proprietà dei metadati predefinite per Hub eventi

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • PartitionId
  • Offset
  • SequenceNumber
  • PartitionKey
  • Server di pubblicazione, se disponibile nell'evento in ingresso

Esempi:

Recuperare EventEnqueuedUtcTime da Hub eventi:

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

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

hub IoT proprietà quando vengono indirizzate agli endpoint di Hub eventi

Quando si usa hub IoT funzionalità di routing agli endpoint di Hub eventi, le proprietà dei metadati saranno disponibili leggendo le proprietà da Hub eventi. In questo caso, è possibile recuperare le proprietà seguenti:

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

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

Le proprietà aggiunte tramite hub IoT l'arricchimento dei messaggi può essere recuperato tramite le proprietà dell'utente.

Proprietà dei metadati predefinite per hub IoT

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • InterfaceName

  • CorrelationId

  • MessageId

  • ConnectionDeviceGenerationId

Esempi:

Recuperare EnqueuedTime da hub IoT:

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

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

Proprietà dei metadati predefinite per l'input BLOB:

  • BlobName
  • BlobLastModifiedUtcTime
  • PartitionId

EsempioSELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput

Proprietà utente

Una proprietà utente personalizzata denominata SenderClientId impostata sui messaggi EventHub/IoT/BLOB in ingresso viene resa accessibile tramite GetMetadataPropertyValue, come illustrato nell'esempio seguente.

Inoltre, le proprietà dei dispositivi gemelli e le proprietà arricchite aggiunte tramite hub IoT arricchimento dei messaggi possono essere recuperate anche tramite GetMetadataPropertyValue.

Esempio

Per eseguire query da un input di Hub eventi,
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

Per eseguire query da un input hub IoT,
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput

Per eseguire query da un input BLOB,
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput

Per ottenere tutte le proprietà utente come record,

Per Hub eventi:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput

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

Per l'input BLOB:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput

Proprietà Unique EventId

La proprietà EventId crea un ID univoco (Guid) per un evento di input, che può essere utile a scopo di chiave primaria. EventId è coerente (non casuale); se si torna indietro nel tempo e si rilegge lo stesso evento di input, Analisi di flusso produrrà lo stesso ID.

Esempio

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

Limitazioni e restrizioni

GetMetadataPropertyValue presenta le limitazioni di utilizzo seguenti:

  • L'uso SELECT * nella query causa colonne duplicate. Per evitare colonne duplicate, elencare le colonne singolarmente nell'istruzione SELECT.

  • L'alias assegnato al valore della proprietà metadata sarà minuscolo indipendentemente dall'uso di maiuscole e minuscole usate nella query. Ad esempio, SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey restituisce come eventprimarykey. Per mantenere le maiuscole e minuscole, usare il livello di compatibilità 1.2.

  • Questa funzione non funziona nel riquadro dei risultati di anteprima portale di Azure, incluse le funzioni di query di test.

  • Rinominare i campi del payload origiale prima che i dati arrivino ad AsA. Il nome del campo del payload verrà sovrascritto se corrisponde al nome del campo dei metadati di sistema.

  • MessageId e CorrelationId dei metadati dell'evento di EventHub non sono supportati.