Partilhar via


Saída dos Event Hubs a partir do Azure Stream Analytics

O serviço Azure Event Hubs é um gestor de eventos de publicação-subscrição altamente escalá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 um trabalho de Stream Analytics se torna a entrada de outro trabalho de streaming. Para informações sobre o tamanho máximo da mensagem e a otimização do tamanho do lote, consulte a secção do tamanho do lote de saída .

Configuração de saída

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

Nome da propriedade Descrição
Alias de saída Um nome amigável usado 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 criaste um novo hub de eventos, também criaste um espaço de nomes de hub de eventos.
Nome do hub de eventos O nome da saída do seu hub de eventos.
Nome da política do hub de eventos A política de acesso partilhado, que pode criar no separador Configurar do event hub. Cada política de acesso partilhado tem um nome, permissões que defines e chaves de acesso.
Chave de política do hub de eventos A chave de acesso partilhada usada para autenticar o acesso ao namespace 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 para dados de saída. JSON, CSV e Avro são suportados.
Codificação Para CSV e JSON, o 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 em formato CSV. Os valores suportados são vírgula, ponto e vírgula, espaço, tab e barra vertical.
Formato Aplicável apenas para serialização JSON. A separação por linha especifica que a saída é formatada tendo cada objeto JSON separado por uma nova linha. Se selecionares separado por linhas, o JSON é lido um objeto de cada vez. O conteúdo todo, por si só, não seria um JSON válido. O array especifica que a saída é formatada como um array de objetos JSON.
Colunas de propriedades Opcional. Colunas separadas por vírgulas que precisam de ser associadas como propriedades do utilizador da mensagem de saída em vez da carga útil. Mais informações sobre esta funcionalidade encontram-se na secção Propriedades de metadados personalizadas para saída.

Partitioning

A partição varia consoante o alinhamento da partição. Quando a chave de partição para a 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 para a 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 a 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 mais informações, consulte os limites dos Centros de Eventos. Quando a partição de entrada/saída não está alinhada, cada evento é embalado individualmente EventData e enviado num lote até ao tamanho máximo da mensagem. Isto também acontece se forem usadas propriedades de metadados personalizadas . Quando a partição de entrada/saída está alinhada, múltiplos eventos são embalados numa única EventData instância, até ao tamanho máximo da mensagem, e enviados.

Propriedades personalizadas de metadados para saída

Podes anexar colunas de consulta como propriedades de utilizador às tuas mensagens de saída. Estas colunas não entram na carga útil. As propriedades estão presentes sob a 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 Stream Analytics são suportados, exceto Registo e Array.

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

  1. Utilize a seguinte consulta:

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

    Colunas de propriedade

A imagem seguinte mostra as propriedades esperadas da mensagem de saída inspecionadas num hub de eventos usando o Service Bus Explorer.

Propriedades personalizadas de eventos

Entrega Exatamente Uma Vez

A entrega exatamente uma vez é suportada na saída do Event Hubs por defeito. Independentemente da sua entrada, o Stream Analytics garante que não há perda de dados nem duplicados na saída de um Event Hubs, através dos reinícios iniciados pelo utilizador a partir do último momento de saída, prevenindo a produção de duplicados. Isto simplifica muito o pipeline de streaming ao não ter de monitorizar, implementar e resolver problemas com lógica de deduplicação.

Passos seguintes