GetMetadataPropertyValue (Azure Stream Analytics)
Consultas introduzem dados para propriedades específicas. Existem três tipos de propriedades: Adaptador, Utilizador e EventId Exclusivo.
Propriedades de metadados do adaptador
Determinadas propriedades específicas da entrada são acessíveis pela função GetMetadataPropertyValue. Além disso, todas as propriedades podem ser acedidas como um único registo.
Nota
Neste momento, esta função não pode ser testada no portal do Azure (devolverá resultados vazios). Pode utilizar a extensão ASA do Visual Studio Code para testar esta função na consulta com dados em direto.
Propriedades de metadados predefinidas para Hubs de Eventos
- EventEnqueuedUtcTime
- EventProcessedUtcTime
- PartitionId
- Desvio
- SequenceNumber
- PartitionKey
- Publisher, quando disponível no evento de entrada
Exemplos:
Obter EventEnqueuedUtcTime a partir dos Hubs de Eventos:
SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[EventEnqueuedUtcTime]') AS mytime FROM ehInput
Para consultar todas as propriedades possíveis relacionadas com o adaptador como um registo:
SELECT GetMetadataPropertyValue(ehInput, 'EventHub') AS myEHPropertiesRecord FROM ehInput
Hub IoT propriedades quando encaminhadas para pontos finais dos Hubs de Eventos
Ao utilizar Hub IoT funcionalidade de encaminhamento para pontos finais dos Hubs de Eventos, as propriedades de metadados estarão disponíveis ao ler as propriedades dos Hubs de Eventos. Neste caso, as seguintes propriedades que podem ser obtidas:
- IoTConnectionDeviceId
- IoTAuthMethod
- IoTAuthGenerationId
- IoTEnqueueTime
- IoTMessageSource
- IoTConnectionModuleId
- IoTInterfaceName
Exemplo: SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId FROM ehInput
As propriedades adicionadas através de Hub IoT melhoramento de mensagens podem ser obtidas através das propriedades do utilizador.
Propriedades de metadados predefinidas para Hub IoT
ConnectionDeviceId
AuthMethod
AuthGenerationId
EnqueueTime
MessageSource
ConnectionModuleId
InterfaceName
CorrelationId
MessageId
ConnectionDeviceGenerationId
Exemplos:
Obtenha o EnqueuedTime a partir de Hub IoT:
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub.EnqueuedTime') AS myEnqueuedTime FROM iotInput
Para consultar todas as propriedades possíveis relacionadas com o adaptador como um registo:
SELECT GetMetadataPropertyValue(iotInput, 'IoTHub') AS iotRecord FROM iotInput
Propriedades de metadados predefinidas para entrada de Blobs:
- BlobName
- BlobLastModifiedUtcTime
- PartitionId
Exemplo SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput
Propriedades do utilizador
Uma propriedade de utilizador personalizada denominada SenderClientId definida nas mensagens de entrada do EventHub/IoT/Blob torna-se acessível com GetMetadataPropertyValue, conforme mostrado no exemplo abaixo.
Além disso, as propriedades de duplos e as propriedades melhoradas adicionadas com Hub IoT melhoramento de mensagens também podem ser obtidas com GetMetadataPropertyValue.
Exemplos
Para consultar a partir de uma entrada do Hub de Eventos,
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput
Para consultar a partir de uma entrada de Hub IoT,
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput
Para consultar a partir de uma entrada de Blob,
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput
Para obter todas as propriedades de utilizador como um registo,
Para o Hub de Eventos:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput
Para Hub IoT:
SELECT Name, GetMetadataPropertyValue(iotInput, '[User]') AS userprops FROM iotInput
Para a entrada do Blob:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput
Propriedade EventId Exclusivo
A propriedade EventId cria um ID exclusivo (Guid) para um evento de entrada, que pode ser útil para fins principais. EventId é consistente (não aleatório); Se voltar atrás no tempo e voltar a ler o mesmo evento de entrada, o Stream Analytics produzirá o mesmo ID.
Exemplo
SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey FROM ehInput
Limitações e Restrições
GetMetadataPropertyValue tem as seguintes limitações de utilização:
A utilização
SELECT *
na consulta causa colunas duplicadas. Para impedir colunas duplicadas, liste as colunas individualmente na instrução SELECT.O alias que atribuir ao Valor da Propriedade de Metadados será minúsculo, independentemente do invólucro utilizado na consulta. Por exemplo,
SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey
saídas comoeventprimarykey
. Para preservar o invólucro, utilize o nível de compatibilidade 1.2.Esta função não funciona no painel de resultados de pré-visualização portal do Azure, incluindo funções de consulta de teste.
Mude o nome dos campos de payload origial antes de os dados chegarem ao ASA. O nome do campo payload será substituído se for o mesmo que o nome do campo de metadados do sistema.
MessageId e CorrelationId dos metadados de eventos do EventHub não são suportados.