Ingerir dados do Hub de Eventos no Azure Synapse Data Explorer
O Azure Synapse Data Explorer é um serviço de exploração de dados rápido e altamente escalonável para dados de log e telemetria. O Azure Synapse Data Explorer oferece ingestão (carregamento de dados) de Hubs de Eventos, Hubs IoT e blobs gravados nos contêineres de blob.
O Azure Synapse Data Explorer oferece a ingestão (carregamento de dados) dos Hubs de Eventos, uma plataforma de streaming de Big Data e serviço de ingestão de eventos. Os Hubs de Eventos podem processar milhões de eventos por segundo quase em tempo real. Neste artigo, você cria um Hub de Eventos, conecta-se a ele usando o Azure Synapse Data Explorer e vê o fluxo de dados pelo sistema.
Pré-requisitos
Uma assinatura do Azure. Criar uma conta gratuita do Azure.
Criar um pool do Data Explorer usando o Synapse Studio ou o portal do Azure
Criar um banco de dados do Data Explorer.
No Synapse Studio, no painel esquerdo, selecione Dados.
Selecione + (Adicionar novo recurso) >Pool do Data Explorer e use as seguintes informações:
Configuração Valor sugerido Descrição Nome do pool contosodataexplorer O nome do pool do Data Explorer a ser usado Nome TestDatabase O nome do banco de dados deve ser exclusivo dentro do cluster. Período de retenção padrão 365 O período de tempo (em dias) durante o qual há a garantia de que os dados serão mantidos disponíveis para consulta. O período é medido a partir do momento em que os dados são incluídos. Período de cache padrão 31 O período de tempo (em dias) durante o qual os dados consultados com frequência devem ser mantidos disponíveis no armazenamento SSD ou RAM, em vez de no armazenamento de longo prazo. Selecione Criar para criar o banco de dados. A criação geralmente leva menos de um minuto.
Criar uma tabela de destino para a qual os Hubs de Eventos enviarão dados
No Synapse Studio, no painel do lado esquerdo, selecione Desenvolver.
Em Scripts KQL, selecione + (Adicionar novo recurso) >Script KQL. No painel do lado direito, você pode nomear o script.
No menu Conexão, selecione contosodataexplorer.
No menu Usar banco de dados, selecione TestDatabase.
Cole o comando a seguir e selecione Executar para criar uma tabela.
.create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
Dica
Verifique se a tabela foi criada com êxito. No painel esquerdo, selecione Dados, selecione o menu contosodataexplorer e, em seguida, selecione Atualizar. Em contosodataexplorer, expanda Tabelas e verifique se a tabela TestTable é exibida na lista.
Copie o seguinte comando na janela e selecione Executar para mapear os dados JSON de entrada para os tipos de dados e nomes de coluna da tabela (TestTable).
.create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp", "Properties": {"Path": "$.timeStamp"}},{"column":"Name", "Properties": {"Path":"$.name"}} ,{"column":"Metric", "Properties": {"Path":"$.metric"}}, {"column":"Source", "Properties": {"Path":"$.source"}}]'
É recomendável usar uma identidade gerenciada atribuída pelo usuário ou uma identidade gerenciada atribuída pelo sistema para a conexão de dados (opcional).
Um aplicativo de exemplo que gera dados e os envia para um Hub de Eventos. Baixe o aplicativo de exemplo em seu sistema.
Visual Studio 2019 para executar o aplicativo de exemplo.
Entre no Portal do Azure
Entre no portal do Azure.
Criar um hub de eventos
Crie um Hub de Eventos usando um modelo do Azure Resource Manager no portal do Azure.
Para criar um Hub de Eventos, use o botão a seguir para iniciar a implantação. Clique com o botão direito do mouse e selecione Abrir em nova janela para que você possa acompanhar o restante das etapas neste artigo.
O botão Implantar no Azure leva você ao portal do Azure.
Selecione a assinatura na qual você deseja criar o Hub de Eventos e crie um grupo de recursos denominado test-hub-rg.
Preencha o formulário com as seguintes informações.
Use padrões para quaisquer configurações não listadas na tabela a seguir.
Configuração Valor sugerido Descrição do campo Subscription Sua assinatura Selecione a assinatura do Azure que você deseja usar para o seu Hub de Eventos. Grupo de recursos test-hub-rg Criar um grupo de recursos. Localização Oeste dos EUA Selecione Oeste dos EUA para este artigo. Para um sistema de produção, selecione a região que melhor atenda às suas necessidades. Crie o namespace do Hub de Eventos na mesma Localização do cluster do Azure Synapse Data Explorer para melhor desempenho (mais importante para namespaces do Hub de Eventos com alta taxa de transferência). Nome do Namespace Um nome de namespace exclusivo Escolha um nome exclusivo que identifique seu namespace. Por exemplo, mytestnamespace . O nome do domínio servicebus.windows.net é anexado ao nome que você fornece. O campo pode conter apenas letras, números e hifens. O nome deve começar com uma letra e terminar com uma letra ou um número. O valor deve ter entre 6 e 50 caracteres. Nome do Hub de Eventos test-hub O Hub de Eventos fica sob o namespace, que fornece um contêiner de determinação de escopo exclusivo. O nome do Hub de Eventos deve ser exclusivo dentro do namespace. Nome do grupo de consumidor test-group Grupos de consumidores permitem que vários aplicativos de consumo tenham uma visão separada do fluxo de eventos. Selecione Examinar + criar.
Revise o Resumo dos recursos criados. Selecione Criar, que confirma que você está criando recursos na sua assinatura.
Selecione Notificações na barra de ferramentas para monitorar o processo de provisionamento. Pode levar alguns minutos para que a implantação seja bem-sucedida, mas você pode passar para a próxima etapa agora.
Considerações sobre autenticação
Dependendo do tipo de identidade que você está usando para autenticar com o Hub de Eventos, talvez precise de algumas configurações adicionais.
Se você estiver autenticando com o Hub de eventos usando uma identidade gerenciada atribuída pelo usuário, vá para o Hub de Eventos >Rede e, em seguida, em Permitir acesso de, selecione Todas as redes e salve as alterações.
Se você estiver autenticando com o Hub de Eventos usando uma identidade gerenciada atribuída pelo sistema, vá para o Hub de Eventos >Rede e, em seguida, permita o acesso de todas as redes ou, em Permitir acesso de, selecione Redes selecionadas e Permitir que serviços Microsoft confiáveis ignorem esse firewall e salve as alterações.
Conectar-se ao Hub de Eventos
Agora você se conecta ao Hub de Eventos no pool do Data Explorer. Quando essa conexão está funcionando, os dados que seguem para o Hub de Eventos fluem para a tabela de teste que você criou no início deste artigo.
Selecione Notificações na barra de ferramentas para verificar se a implantação do Hub de Eventos foi bem-sucedida.
No pool do Data Explorer que você criou, selecione bancos de dados>TestDatabase.
Selecione conexões de dados e Adicionar conexão de dados.
Criar uma conexão de dados (versão prévia)
Preencha o formulário com as seguintes informações e, em seguida, selecione Criar.
Configuração | Valor sugerido | Descrição do campo |
---|---|---|
Nome da conexão de dados | teste de hub de conexão | O nome da conexão que você deseja criar no Azure Synapse Data Explorer. |
Assinatura | A ID da assinatura em que o recurso do Hub de Eventos está localizado. Este campo é preenchido automaticamente. | |
Namespace do Hub de Eventos | Um nome de namespace exclusivo | O nome escolhido anteriormente que identifica seu namespace. |
Hub de evento | test-hub | O Hub de Eventos que você criou. |
Grupo de consumidores | test-group | O grupo de consumidores definido no Hub de Eventos que você criou. |
Propriedades do sistema de eventos | Selecionar propriedades relevantes | As propriedades do sistema do Hub de Eventos. Se houver vários registros por mensagem de evento, as propriedades do sistema serão adicionadas ao primeiro registro. Ao adicionar propriedades do sistema, crie ou atualize o esquema de tabela e o mapeamento de maneira a incluir as propriedades selecionadas. |
Compactação | Nenhum | O tipo de compactação da carga de mensagens do Hub de Eventos. Tipos de compactação compatíveis: Nenhum, Gzip. |
Identidade Gerenciada | Atribuída pelo sistema | A identidade gerenciada usada pelo cluster do Data Explorer para acesso de leitura do Hub de Eventos. Observação: Quando a conexão de dados é criada: - As identidades atribuídas pelo sistema serão criadas automaticamente se ainda não existirem – A identidade gerenciada é atribuída automaticamente à função receptor de dados dos Hubs de Eventos do Azure e adicionada ao cluster do Data Explorer. É recomendável verificar se a função foi atribuída e se a identidade foi adicionada ao cluster. |
Tabela de destino
Há duas opções para rotear os dados ingeridos: estático e dinâmico. Para este artigo, você usará o roteamento estático, no qual especificará o nome da tabela, o formato de dados e o mapeamento como valores padrão. Se a mensagem do Hub de Eventos incluir informações de roteamento de dados, essas informações substituirão as configurações padrão.
Preencha as seguintes configurações de roteamento:
Configuração Valor sugerido Descrição do campo Nome da tabela TestTable A tabela criada na TestDatabase. Formato de dados JSON Os formatos com suporte são Avro, CSV, JSON, MULTILINE JSON, ORC, PARQUET, PSV, SCSV, SOHSV, TSV, TXT, TSVE, APACHEAVRO e W3CLOG. Mapeamento TestMapping O mapeamento que você criou em TestDatabase, que mapeia os dados de entrada para os tipos de dados e nomes de coluna de TestTable. Obrigatório para JSON, MULTILINE JSON e AVRO e opcional para outros formatos. Observação
- Você não precisa especificar todas as Configurações de roteamento padrão. Configurações parciais também são aceitas.
- Somente os eventos enfileirados após a criação da conexão de dados são ingeridos.
Selecione Criar.
Mapeamento de propriedades do sistema de eventos
Observação
- As propriedades do sistema têm suporte para
json
e para formatos tabulares (csv
,tsv
etc.) e não têm suporte em dados compactados. Ao usar um formato sem suporte, os dados ainda serão ingeridos, mas as propriedades serão ignoradas. - Para dados tabulares, as propriedades do sistema têm suporte apenas para mensagens de evento de registro único.
- Para dados JSON, as propriedades do sistema também têm suporte para mensagens de evento de vários registros. Nesses casos, as propriedades do sistema são adicionadas somente ao primeiro registro da mensagem de evento.
- Para mapeamento de
csv
, as propriedades são adicionadas no início do registro na ordem listada na tabelacsv
. - Para mapeamento de
json
, as propriedades são adicionadas de acordo com os nomes de propriedade na tabela Propriedades do sistema.
Se você selecionou Propriedades do sistema de eventos na seção Fonte de dados da tabela, inclua as propriedades do sistema no esquema e no mapeamento da tabela.
Copiar a cadeia de conexão
Quando você executa o aplicativo de exemplo listado nos pré-requisitos, precisa da cadeia de conexão para o namespace do Hub de Eventos.
Sob o namespace do Hub de Eventos que você criou, selecione Políticas de acesso compartilhado e, em seguida, RootManageSharedAccessKey.
Cópia cadeia de Conexão – chave primária. Você pode colá-lo na próxima seção.
Gerar dados de exemplo
Use o aplicativo de exemplo baixado para gerar dados.
Abrir o aplicativo de exemplo no Visual Studio.
No arquivo program.cs, atualize a constante
eventHubName
para o nome do Hub de Eventos e a constanteconnectionString
para a cadeia de conexão copiada do namespace do Hub de Eventos.const string eventHubName = "test-hub"; // Copy the connection string ("Connection string-primary key") from your Event Hub namespace. const string connectionString = @"<YourConnectionString>";
Compile e execute o aplicativo. O aplicativo envia mensagens para o Hub de Eventos e imprime o status a cada dez segundos.
Depois que o aplicativo enviar algumas mensagens, passe para a próxima etapa: analise o fluxo de dados no Hub de Eventos e na tabela de teste.
Revise o fluxo de dados
Agora que o aplicativo está gerando dados, você pode ver o fluxo de dados do Hub de Eventos para a tabela em seu cluster.
No portal do Azure, sob seu Hub de Eventos, você vê o pico de atividade enquanto o aplicativo está em execução.
Para verificar quantas mensagens chegaram ao banco de dados até o momento, execute a consulta a seguir em seu banco de dados de teste.
TestTable | count
Para ver o conteúdo das mensagens, execute a consulta a seguir:
TestTable
O conjunto de resultados deve ser parecido com a seguinte imagem:
Observação
- O Azure Synapse Data Explorer tem uma política de agregação (envio em lote) para a ingestão de dados, criada para otimizar o processo de ingestão. A política de envio em lote padrão está configurada para lacrar um lote quando uma das seguintes condições for verdadeira para o lote: um tempo de atraso máximo de cinco minutos, tamanho total de 1G ou 1.000 blobs. Portanto, você pode ter alguma latência. Para obter mais informações, confira a política de envio em lote.
- A ingestão do Hub de Eventos inclui o tempo de resposta do Hub de Eventos de 10 segundos ou 1 MB.
- Para reduzir o retardo de tempo de resposta, configure sua tabela para dar suporte ao streaming. Confira política de streaming.
Limpar os recursos
Se você não planeja usar seu Hub de Eventos novamente, limpe test-hub-rg para evitar custos.
No portal do Azure, selecione Grupos de recursos na extremidade esquerda, depois selecione o recurso de grupo que você criou.
Se o menu esquerdo estiver recolhido, selecione para expandi-lo.
Em test-resource-group, selecione Excluir grupo de recursos.
Na nova janela, digite o nome do grupo de recursos para excluir (test-hub-rg) e, em seguida, selecione excluir.