Compartilhar via


Ingerir dados dos Hubs de Eventos no Data Explorer do Azure Synapse

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ê criará Hubs de Eventos, irá conectar-se a eles a partir do Data Explorer do Azure Synapse e verá 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.

    1. No Synapse Studio, no painel esquerdo, selecione Dados.

    2. 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.
    3. 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

    1. No Synapse Studio, no painel do lado esquerdo, selecione Desenvolver.

    2. Em Scripts KQL, selecione + (Adicionar novo recurso) >Script KQL. No painel do lado direito, você pode nomear o script.

    3. No menu Conexão, selecione contosodataexplorer.

    4. No menu Usar banco de dados, selecione TestDatabase.

    5. 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.

    6. 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 Evento

Crie um hub de eventos usando um modelo do Azure Resource Manager no portal do Azure.

  1. 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.

    Botão para implantar o modelo do Resource Manager no Azure.

    O botão Implantar no Azure leva você ao portal do Azure.

  2. Selecione a assinatura na qual você deseja criar o hub de eventos e crie um grupo de recursos denominado test-hub-rg.

    Criar um grupo de recursos

  3. 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 seu Hubs 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 dos Hubs de Eventos na mesma Localização que o cluster do Data Explorer do Azure Synapse para melhor desempenho (mais importante para namespaces dos Hubs 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 dos Hub de Eventos test-hub Os Hubs de Eventos ficam sob o namespace, que fornece um contêiner de escopo exclusivo. O nome dos Hubs 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.
  4. Selecione Examinar + criar.

  5. Revise o Resumo dos recursos criados. Selecione Criar, que confirma que você está criando recursos na sua assinatura.

    Captura de tela do portal do Azure para revisar e criar namespace dos Hubs de Eventos, Hubs de Eventos e grupo de consumidores.

  6. 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.

    ícone Notificações

Considerações sobre autenticação

Dependendo do tipo de identidade que você está usando para autenticar com o Hubs de Eventos, talvez seja necessário algumas outras configurações.

  • Se você estiver autenticando com Hubs de Eventos usando uma identidade gerenciada atribuída pelo usuário, vá para seus Hubs de Eventos >Rede e, em seguida, em Permitir acesso de, selecione Todas as redes e salve as alterações.

    Captura de tela da página de rede dos Hubs de Eventos, mostrando a seleção da permissão de acesso a todas as redes.

  • Se você estiver autenticando com Hubs de Eventos usando uma identidade gerenciada atribuída pelo sistema, vá para seu Hubs de Eventos >Rede e, em seguida, permita o acesso de todas as redes ou em Permitir acesso de, selecione Redes selecionadas, selecione Permitir que serviços confiáveis da Microsoft ignorem esse firewall e salve as alterações.

    Captura de tela da página de rede dos Hubs de Eventos, mostrando a seleção da permissão acesso a serviços confiáveis.

Conectar-se ao Hubs de Eventos

Agora você se conectar-se aos Hubs de Eventos a partir do pool do Data Explorer. Quando essa conexão estiver em vigor, os dados que fluem para o Hubs de Eventos serão transmitidos para a tabela de teste que você criou anteriormente nesse artigo.

  1. Selecione Notificações na barra de ferramentas para verificar se a implantação dos Hubs de Eventos foi bem-sucedida.

  2. No pool do Data Explorer que você criou, selecione bancos de dados>TestDatabase.

    Captura de tela do pool de bancos de dados de teste, mostrando a seleção de banco de dados de teste.

  3. Selecione conexões de dados e Adicionar conexão de dados.

    Selecione Ingestão 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.

Captura de tela do painel de conexão de dados nos Hubs de Eventos.

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.
Subscription A ID da assinatura em que o recurso dos Hubs de Eventos está localizado. Este campo é preenchido automaticamente.
Namespace do Hubs de Eventos Um nome de namespace exclusivo O nome escolhido anteriormente que identifica seu namespace.
Hubs de Eventos test-hub Os Hubs de Eventos que você criou.
Grupo de consumidores test-group O grupo de consumidores definido nos Hubs de Eventos que você criou.
Propriedades do sistema de eventos Selecionar propriedades relevantes As propriedades do sistema dos Hubs 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 Nenhuma O tipo de compactação do conteúdo das mensagens dos Hubs 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 aos Hubs 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 dos Hubs de Eventos incluir informações de roteamento de dados, essas informações de roteamento substituirão as configurações padrão.

  1. Preencha as seguintes configurações de roteamento:

    Configurações de roteamento padrão para ingerir dados nos Hubs de Eventos - Data Explorer do Azure Synapse.

    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.
  2. 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 tabela csv.
  • 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 em Pré-requisitos, a cadeia de conexão é necessária para o namespace dos Hubs de Eventos.

  1. No namespace dos Hubs de Eventos que você criou, selecione Políticas de acesso compartilhado, depois RootManageSharedAccessKey.

    Políticas de acesso compartilhado.

  2. Cópia cadeia de Conexão – chave primária. Você pode colá-lo na próxima seção.

    Cadeia de conexão.

Gerar dados de exemplo

Use o aplicativo de exemplo baixado para gerar dados.

Aviso

Esse exemplo usa autenticação por cadeia de conexão para se conectar aos Hubs de Eventos para simplificar o exemplo. No entanto, codificar uma cadeia de conexão no seu script requer um grau muito alto de confiança no aplicativo e acarreta riscos de segurança.

Para soluções seguras de longo prazo, use uma destas opções:

  1. Abrir o aplicativo de exemplo no Visual Studio.

  2. No arquivo program.cs, atualize a eventHubName constante para o nome dos seus Hubs de Eventos e atualize a connectionString constante para a cadeia de conexão que você copiou do namespace dos Hubs de Eventos.

    const string eventHubName = "test-hub";
    // Copy the connection string ("Connection string-primary key") from your Event Hub namespace.
    const string connectionString = @"<YourConnectionString>";
    
  3. Compilar e executar o aplicativo. O aplicativo envia mensagens para os Hubs de Eventos e imprime seu status a cada 10 segundos.

  4. Depois que o aplicativo enviar algumas mensagens, avance para a próxima etapa: revisar o fluxo de dados nos seus Hubs de Eventos e tabela de teste.

Revise o fluxo de dados

Com o aplicativo gerando dados, você poderá ver agora o fluxo desses dados dos Hubs de Eventos para a tabela no seu cluster.

  1. No portal do Azure, nos seus Hubs de Eventos, você verá o pico de atividade enquanto o aplicativo estiver em execução.

    Grafo do Hub de Eventos.

  2. 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
    
  3. Para ver o conteúdo das mensagens, execute a consulta a seguir:

    TestTable
    

    O conjunto de resultados deve ser parecido com a seguinte imagem:

    Conjunto de resultados de mensagem.

    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 seus Hubs de Eventos novamente, limpe test-hub-rg para evitar custos.

  1. 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 Expandir botão. para expandi-lo.

    Selecione o grupo de recursos para exclusão.

  2. Em test-resource-group, selecione Excluir grupo de recursos.

  3. Na nova janela, digite o nome do grupo de recursos para excluir (test-hub-rg) e, em seguida, selecione excluir.

Próximas etapas