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
Per eseguire una query su tutte le possibili proprietà correlate all'adapter come record:
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
Per eseguire una query su tutte le possibili proprietà correlate all'adapter come record:
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 comeeventprimarykey
. 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.