Ingerir dados de Hubs de Eventos no Azure Synapse Data Explorer
O Azure Synapse Data Explorer é um serviço de exploração de dados rápido e altamente escalá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 em contêineres de blob.
O Azure Synapse Data Explorer oferece ingestão (carregamento de dados) de 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 Hubs de Eventos, conecta-se a ele a partir do Azure Synapse Data Explorer e vê o fluxo de dados pelo sistema.
Pré-requisitos
Uma subscrição do Azure. Crie uma conta do Azure gratuita.
Criar um pool do Data Explorer usando o Synapse Studio ou o portal do Azure
Crie um banco de dados do Data Explorer.
No Synapse Studio, no painel do lado esquerdo, selecione Dados.
Selecione + (Adicionar novo recurso) >Pool do Data Explorer e use as seguintes informações:
Definição Valor sugerido Description Nome do conjunto contosodataexplorer O nome do pool do Data Explorer a ser usado Nome TestDatabase O nome da base de dados tem de ser exclusivo dentro do cluster. Período de retenção predefinido 365 O período de tempo (em dias) durante o qual é garantido que os dados são mantidos disponíveis para consulta. O intervalo de tempo é medido desde o momento em que os dados são ingeridos. Período de cache padrão 31 O período de tempo (em dias) durante o qual manter os dados frequentemente consultados disponíveis no armazenamento SSD ou RAM, em vez de no armazenamento a longo prazo. Selecione Criar para criar o banco de dados. Normalmente, a criação demora menos de um minuto.
Criar uma tabela de destino para a qual os Hubs de Eventos enviarão dados
No Synapse Studio, no painel esquerdo, selecione Desenvolver.
Em Scripts KQL, Selecione + (Adicionar novo recurso) >Script KQL. No painel do lado direito, você pode nomear seu script.
No menu Conectar a, selecione contosodataexplorer.
No menu Usar banco de dados, selecione TestDatabase.
Cole no comando a seguir e selecione Executar para criar a tabela.
.create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
Gorjeta
Verifique se a tabela foi criada com êxito. No painel esquerdo, selecione Dados, selecione o menu contosodataexplorer mais e selecione Atualizar. Em contosodataexplorer, expanda Tabelas e verifique se a tabela TestTable aparece na lista.
Copie o seguinte comando para a janela e selecione Executar para mapear os dados JSON de entrada para os nomes de coluna e tipos de dados 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"}}]'
Recomendamos o uso de uma identidade gerenciada atribuída ao usuário ou uma identidade gerenciada atribuída ao sistema para a conexão de dados (opcional).
Um aplicativo de exemplo que gera dados e os envia para um hub de eventos. Transfira a aplicação de exemplo para o seu sistema.
Visual Studio 2019 para executar o aplicativo de exemplo.
Inicie sessão no portal do Azure
Inicie sessão 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 seguir o restante das etapas neste artigo.
O botão Implantar no Azure leva você ao portal do Azure.
Selecione a subscrição em que quer criar o hub de eventos e crie um grupo de recursos chamado test-hub-rg.
Preencha o formulário com as seguintes informações.
Utilize as predefinições para todas as definições não listadas na tabela seguinte.
Definição Valor sugerido Descrição do campo Subscrição a sua subscrição Selecione a assinatura do Azure que você deseja usar para seus Hubs de Eventos. Grupo de recursos test-hub-rg Criar um novo grupo de recursos. Location E.U.A. Oeste Selecione West US para este artigo. Para um sistema de produção, selecione a região que melhor se adequa às suas necessidades. Crie o namespace Hubs de Eventos no mesmo Local que o cluster do Azure Synapse Data Explorer para obter o melhor desempenho (mais importante para namespaces de Hubs de Eventos com alta taxa de transferência). Nome do espaço de nomes Um nome de espaço de nomes exclusivo Escolha um nome exclusivo que identifique o seu espaço de nomes. Por exemplo, mytestnamespace. O nome de domínio servicebus.windows.net é anexado ao nome que indicar. O nome só pode conter letras, números e hífenes. O nome tem de começar com uma letra e terminar com uma letra ou número. O valor deve ter entre 6 e 50 carateres. Nome dos Hubs 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 consumidores test-group Os grupos de consumidores permitem que cada aplicação de consumo tenha uma vista separada do fluxo de eventos. Selecione Rever + criar.
Revise o Resumo dos recursos criados. Selecione Criar, que reconhece que você está criando recursos em sua assinatura.
Selecione Notificações na barra de ferramentas para monitorizar o processo de aprovisionamento. Poderá demorar alguns minutos até que a implementação seja bem-sucedida, mas pode avançar para o passo seguinte agora.
Considerações sobre autenticação
Dependendo do tipo de identidade que você está usando para autenticar com os Hubs de Eventos, talvez precise de outras configurações.
Se estiver a autenticar-se com Hubs de Eventos utilizando uma identidade gerida atribuída ao utilizador, aceda à Rede de Hubs de> Eventos e, em seguida, em Permitir acesso de, selecione Todas as redes e guarde as alterações.
Se estiver a autenticar-se com os Hubs de Eventos utilizando uma identidade gerida atribuída ao sistema, aceda à Rede dos Hubs >de Eventos e, em seguida, permita o acesso a partir de todas as redes ou, em Permitir acesso de, selecione Redes selecionadas, selecione Permitir que serviços Microsoft fidedignos ignorem esta firewall e guarde as alterações.
Conectar-se aos Hubs de Eventos
Agora você se conecta aos Hubs de Eventos a partir do pool do Data Explorer. Quando essa conexão está em vigor, os dados que fluem para os Hubs de Eventos são transmitidos para a tabela de teste criada anteriormente neste artigo.
Selecione Notificações na barra de ferramentas para verificar se a implantação dos Hubs de Eventos foi bem-sucedida.
No pool do Data Explorer que você criou, selecione Databases>TestDatabase.
Selecione Conexões de dados e Adicionar conexão de dados.
Criar uma conexão de dados (Visualização)
Preencha o formulário com as seguintes informações e selecione Criar.
Definição | Valor sugerido | Descrição do campo |
---|---|---|
Nome da ligação de dados | test-hub-connection | O nome da conexão que você deseja criar no Azure Synapse Data Explorer. |
Subscrição | A ID da assinatura onde o recurso Hubs de Eventos está localizado. Este campo é preenchido automaticamente. | |
Espaço de nomes dos Event Hubs | Um nome de espaço de nomes exclusivo | O nome que escolheu anteriormente que identifica o seu espaço de nomes. |
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 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 e o mapeamento da tabela para incluir as propriedades selecionadas. |
Compressão | Nenhuma | O tipo de compactação da carga útil de mensagens dos Hubs de Eventos. Tipos de compressão suportados: Nenhum, Gzip. |
Identidade Gerida | Atribuída pelo sistema | A identidade gerenciada usada pelo cluster do Data Explorer para acesso à leitura dos Hubs de Eventos. Nota: Quando a conexão de dados é criada: - As identidades atribuídas ao sistema são criadas automaticamente se não existirem - A identidade gerenciada recebe automaticamente a função de Recetor de Dados dos Hubs de Eventos do Azure e é adicionada ao cluster do Data Explorer. Recomendamos verificar se a função foi atribuída e se a identidade foi adicionada ao cluster. |
Tabela de destino
Existem duas opções para rotear os dados ingeridos: estático e dinâmico. Para este artigo, você usa o roteamento estático, onde especifica o nome da tabela, o formato de dados e o mapeamento como valores padrão. Se a mensagem Hubs de Eventos incluir informações de roteamento de dados, essas informações de roteamento substituirão as configurações padrão.
Preencha as seguintes configurações de roteamento:
Definição Valor sugerido Descrição do campo Nome da tabela TestTable A tabela que criou em TestDatabase. Formato dos dados JSON Os formatos suportados 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 dados de entrada para os nomes de coluna e tipos de dados de TestTable. Necessário para JSON, MULTILINE JSON e AVRO, e opcional para outros formatos. Nota
- Não é necessário 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
Nota
- As propriedades do sistema são suportadas para
json
formatos tabulares (csv
,tsv
etc.) e não são suportadas 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 são suportadas apenas para mensagens de eventos de registro único.
- Para dados JSON, as propriedades do sistema também são suportadas para mensagens de eventos de vários registros. Nesses casos, as propriedades do sistema são adicionadas somente ao primeiro registro da mensagem de evento.
- Para
csv
mapeamento, as propriedades são adicionadas no início do registro na ordem listada na tabela Propriedades do sistema. - Para
json
mapeamento, 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, deverá incluir as propriedades do sistema no esquema e no mapeamento da tabela.
Copiar a cadeia de ligação
Ao executar o aplicativo de exemplo listado em Pré-requisitos, você precisa da cadeia de conexão para o namespace Hubs de Eventos.
No namespace Hubs de Eventos que você criou, selecione Políticas de acesso compartilhado e, em seguida , RootManageSharedAccessKey.
Copie Cadeia de ligação - chave primária. Cole na próxima secção.
Gerar dados de exemplo
Use o aplicativo de exemplo que você baixou para gerar dados.
Aviso
Este exemplo usa a autenticação de cadeia de conexão para se conectar a Hubs de Eventos para simplificar o exemplo. No entanto, codificar uma cadeia de conexão em seu script requer um grau muito alto de confiança no aplicativo e acarreta riscos de segurança.
Para soluções seguras e de longo prazo, use uma destas opções:
- Autenticação sem senha
- Armazene sua cadeia de conexão em um Cofre de Chaves do Azure e use esse método para recuperá-la em seu código.
Abra a solução de aplicação de exemplo no Visual Studio.
No arquivo program.cs, atualize a
eventHubName
constante para o nome dos Hubs de Eventos e atualize aconnectionString
constante para a cadeia de conexão copiada 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>";
Compile e execute a aplicação. O aplicativo envia mensagens para os Hubs de Eventos e imprime seu status a cada 10 segundos.
Depois que o aplicativo enviar algumas mensagens, passe para a próxima etapa: revisar o fluxo de dados em seus Hubs de Eventos e tabela de teste.
Rever o fluxo de dados
Com o aplicativo gerando dados, agora você pode ver o fluxo desses dados dos Hubs de Eventos para a tabela em seu cluster.
No portal do Azure, em seus Hubs de Eventos, você vê o pico de atividade enquanto o aplicativo está em execução.
Para verificar quantas mensagens chegaram à base de dados até ao momento, execute a consulta seguintes na base de dados de teste.
TestTable | count
Para ver o conteúdo das mensagens, execute a seguinte consulta:
TestTable
O conjunto de resultados deve ser semelhante à seguinte imagem:
Nota
- O Azure Synapse Data Explorer tem uma política de agregação (loteamento) para ingestão de dados, projetada para otimizar o processo de ingestão. A política de lote padrão é configurada para selar um lote quando uma das seguintes condições for verdadeira para o lote: um tempo máximo de atraso de 5 minutos, tamanho total de 1G ou 1000 blobs. Portanto, você pode enfrentar uma latência. Para obter mais informações, consulte Política de lotes.
- A ingestão do Hub de Eventos inclui um tempo de resposta do Hub de Eventos de 10 segundos ou 1 MB.
- Para reduzir o atraso no tempo de resposta, configure sua tabela para oferecer suporte a streaming. Consulte a política de streaming.
Clean up resources (Limpar recursos)
Se você não planeja usar seus Hubs de Eventos novamente, limpe o test-hub-rg para evitar incorrer em custos.
No portal do Azure, selecione Grupos de recursos à esquerda e, em seguida, selecione o grupo de recursos que criou.
Se o menu esquerdo estiver recolhido, selecione para expandi-lo.
Em test-resource-group, selecione Eliminar grupo de recursos.
Na nova janela, escreva o nome do grupo de recursos a eliminar (test-hub-rg) e, em seguida, selecione Eliminar.