Saída dos Hubs de Eventos do Azure Stream Analytics

O serviço Hubs de Eventos do Azure é um ingestor de eventos de publicação e subscrição altamente dimensionável. Pode recolher milhões de eventos por segundo. Uma utilização de um hub de eventos como saída é quando a saída de uma tarefa do Stream Analytics se torna a entrada de outra tarefa de transmissão em fluxo. Para obter informações sobre o tamanho máximo da mensagem e a otimização do tamanho do lote, veja a secção tamanho do lote de saída .

Configuração de saída

A tabela seguinte tem os parâmetros necessários para configurar fluxos de dados dos hubs de eventos como uma saída.

Nome da propriedade Description
Alias de saída Um nome amigável utilizado nas consultas para direcionar a saída da consulta para este hub de eventos.
Espaço de nomes do hub de eventos Um contentor para um conjunto de entidades de mensagens. Quando criou um novo hub de eventos, também criou um espaço de nomes do hub de eventos.
Nome do hub de eventos O nome da saída do hub de eventos.
Nome da política do hub de eventos A política de acesso partilhado, que pode criar no separador Configurar do hub de eventos. Cada política de acesso partilhado tem um nome, permissões que definiu e chaves de acesso.
Chave de política do hub de eventos A chave de acesso partilhado que é utilizada para autenticar o acesso ao espaço de nomes do hub de eventos.
Coluna da chave de partição Opcional. Uma coluna que contém a chave de partição para a saída do hub de eventos.
Formato de serialização de eventos O formato de serialização dos dados de saída. JSON, CSV e Avro são suportados.
Encoding Para CSV e JSON, UTF-8 é o único formato de codificação suportado neste momento.
Delimitador Aplicável apenas para serialização CSV. O Stream Analytics suporta vários delimitadores comuns para serializar dados no formato CSV. Os valores suportados são vírgula, ponto e vírgula, espaço, separador e barra vertical.
Formato Aplicável apenas para serialização JSON. Separados por linhas especifica que a saída é formatada ao ter cada objeto JSON separado por uma nova linha. Se selecionar Separados por linhas, o JSON é lido um objeto de cada vez. Todo o conteúdo por si só não seria um JSON válido. Matriz especifica que a saída é formatada como uma matriz de objetos JSON.
Colunas de propriedades Opcional. Colunas separadas por vírgulas que precisam de ser anexadas como propriedades de utilizador da mensagem de envio em vez do payload. Mais informações sobre esta funcionalidade estão na secção Propriedades de metadados personalizados para saída.

Criação de partições

A criação de partições varia consoante o alinhamento da partição. Quando a chave de partição da saída do hub de eventos está igualmente alinhada com o passo de consulta a montante (anterior), o número de escritores é igual ao número de partições na saída do hub de eventos. Cada escritor utiliza a classe EventHubSender para enviar eventos para a partição específica. Quando a chave de partição da saída do hub de eventos não está alinhada com o passo de consulta a montante (anterior), o número de escritores é igual ao número de partições nesse passo anterior. Cada escritor utiliza a classe SendBatchAsync no EventHubClient para enviar eventos para todas as partições de saída.

Tamanho do lote de saída

O tamanho máximo da mensagem é de 256 KB ou 1 MB por mensagem. Para obter mais informações, veja Limites dos Hubs de Eventos. Quando a criação de partições de entrada/saída não está alinhada, cada evento é embalado individualmente EventData e enviado num lote de até ao tamanho máximo da mensagem. Isto também acontece se forem utilizadas propriedades de metadados personalizadas . Quando a criação de partições de entrada/saída está alinhada, vários eventos são embalados numa única EventData instância, até ao tamanho máximo da mensagem e enviados.

Propriedades de metadados personalizados para saída

Pode anexar colunas de consulta como propriedades de utilizador às suas mensagens de envio. Estas colunas não entram no payload. As propriedades estão presentes na forma de um dicionário na mensagem de saída. A chave é o nome da coluna e o valor é o valor da coluna no dicionário de propriedades. Todos os tipos de dados do Stream Analytics são suportados, exceto Registo e Matriz.

No exemplo seguinte, os campos DeviceId e DeviceStatus são adicionados aos metadados.

  1. Utilize a seguinte consulta:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Configure DeviceId,DeviceStatus como colunas de propriedades na saída.

    Colunas de propriedades

A imagem seguinte é das propriedades esperadas da mensagem de saída inspecionadas num hub de eventos com o Service Bus Explorer.

Propriedades personalizadas do evento

Entrega Exatamente Uma Vez

Exatamente uma vez que a entrega é suportada na saída dos Hubs de Eventos por predefinição. Independentemente da sua entrada, o Stream Analytics garante que não existem perdas de dados ou duplicados numa saída dos Hubs de Eventos, em reinícios iniciados pelo utilizador desde a última hora de saída, impedindo a produção de duplicados. Isto simplifica consideravelmente o pipeline de transmissão em fluxo por não ter de monitorizar, implementar e resolver problemas de lógica de eliminação de duplicados.

Passos seguintes