Condividi tramite


GetMetadataPropertyValue

✅ Flusso di eventi dell'infrastruttura di Analisi ✅ di flusso di Azure

Esegue 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 singolo record.

Annotazioni

Al momento, questa funzione non può essere testata nel 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à predefinite dei metadati per Hub eventi

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • ID di Partizione
  • Compensare
  • SequenceNumber
  • ChiaveDiPartizione
  • 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

Proprietà dell'hub IoT quando vengono indirizzate agli endpoint di Hub eventi

Quando si usa la funzionalità di routing dell'hub IoT 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 l'arricchimento dei messaggi dell'hub IoT possono essere recuperate tramite le proprietà dell'utente.

Proprietà predefinite dei metadati per l'hub IoT

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • InterfaceName

  • IdentificatoreDiCorrelazione

  • MessageId

  • ConnectionDeviceGenerationId

Esempi:

Recuperare EnqueuedTime dall'hub IoT:

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

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

Proprietà predefinite dei metadati per l'input BLOB:

  • BlobName
  • BlobLastModifiedUtcTime
  • ID di Partizione

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, è possibile recuperare le proprietà dei dispositivi gemelli e le proprietà arricchite tramite l'arricchimento dei messaggi dell'hub IoT usando GetMetadataPropertyValue.

Esempi

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

Per eseguire query da un input dell'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 dalla combinazione di maiuscole e minuscole usate nella query. Ad esempio, SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey restituisce come eventprimarykey. Per mantenere la combinazione di maiuscole e minuscole, usare il livello di compatibilità 1.2.

  • Questa funzione non funziona nel riquadro dei risultati dell'anteprima del 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.