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

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

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 como eventprimarykey. 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.