Compartilhar via


Obtenha os dados do Hubs de Eventos do Azure

Neste artigo, você aprenderá a obter dados dos Hubs de Eventos em seu banco de dados KQL no Microsoft Fabric. O serviço Hubs de Eventos do Azure é uma plataforma de streaming de Big Data e um serviço de ingestão de eventos que pode processar e direcionar milhões de eventos por segundo.

Para transmitir dados dos Hubs de Eventos para a Inteligência em Tempo Real, você passa por duas etapas principais. A primeira etapa é executada no portal do Azure, onde você define a política de acesso compartilhado na instância do hub de eventos e captura os detalhes necessários para se conectar posteriormente por meio dessa política.

A segunda etapa ocorre na Inteligência em Tempo Real no Fabric, em que você conecta um banco de dados KQL ao hub de eventos e configura o esquema para os dados recebidos. Essa etapa cria duas conexões. A primeira conexão, chamada de "conexão de nuvem", conecta o Microsoft Fabric à instância do hub de eventos. A segunda conexão conecta a "conexão de nuvem" ao banco de dados KQL. Ao terminar de configurar os dados e o esquema do evento, os dados transmitidos estarão disponíveis para consulta usando um Conjunto de Consultas KQL.

Pré-requisitos

Aviso

Seu hub de eventos não pode estar atrás de um firewall.

Defina uma política de acesso compartilhado em seu hub de eventos

Antes de criar uma conexão com os dados dos Hubs de Eventos, é necessário definir uma política de acesso compartilhado (SAS) no hub de eventos e coletar algumas informações que serão usadas posteriormente na configuração da conexão. Para obter mais informações sobre a autorização de acesso aos recursos dos Hubs de Eventos, confira Assinaturas de Acesso Compartilhado.

  1. No portal do Azure, navegue até a instância dos hubs de eventos que você deseja conectar.

  2. Em Configurações, selecione Políticas de acesso compartilhado

  3. Selecione + Adicionar para adicionar uma nova política SAS ou selecione uma política existente em Gerenciar permissões.

    Captura de tela da criação de uma política SAS no portal do Azure.

  4. Insira um Nome de política.

  5. Selecione Gerenciar e, em seguida, Criar.

Coletar informações para a conexão com a nuvem

No painel de política SAS, observe os quatro campos a seguir. Talvez você queira copiar esses campos e colá-los em algum lugar, como um bloco de notas, para usá-los em uma etapa posterior.

Captura de tela mostrando como preencher a conexão com dados do portal do Azure.

Referência de campo Campo Descrição Exemplo
um Instância dos Hubs de Eventos O nome da instância do hub de eventos. iotdata
b Política SAS O nome da política SAS criada na etapa anterior DocsTest
c Chave primária A chave associada à política SAS Neste exemplo, começa com PGGIISb009...
d Chave primária da cadeia de conexão Nesse campo, copie apenas o namespace do hub de eventos, que pode ser encontrado como parte da cadeia de conexão. eventhubpm15910.servicebus.windows.net

Origem

  1. Na faixa de opções inferior do banco de dados KQL, selecione Obter Dados.

    Na janela Obter dados, a guia Origem será selecionada.

  2. Selecione a fonte de dados na lista disponível. Neste exemplo, você está ingerindo dados dos Hubs de Eventos.

    Captura de tela da janela Obter dados com a guia Fonte selecionada.

Configurar

  1. Selecione uma tabela de destino. Se você quiser ingerir dados em uma nova tabela, selecione + Nova tabela e insira o nome de uma tabela.

    Observação

    Os nomes de tabelas podem ter até 1024 caracteres, incluindo espaços, caracteres alfanuméricos, hifens e sublinhados. Não há suporte para caracteres especiais.

  2. Selecione Criar conexão ou Conexão existente e vá para a próxima etapa.

Criar nova conexão

  1. Preencha as Configurações de conexão de acordo com a tabela a seguir:

    Captura de tela da guia de origem.

    Configuração Descrição Valor de exemplo
    Namespace do Hub de Eventos Campo d da tabela acima. eventhubpm15910.servicebus.windows.net
    Hub de eventos Campo a da tabela acima. O nome da instância do hub de eventos. iotdata
    Conexão Para usar uma conexão de nuvem existente entre o Fabric e os Hubs de Eventos, selecione o nome dessa conexão. Caso contrário, selecione Criar nova conexão. Criar nova conexão
    Nome da conexão O nome da nova conexão de nuvem. Esse nome é gerado automaticamente, mas pode ser substituído. Deve ser exclusivo dentro do locatário do Fabric. Conexão
    Tipo de autenticação Preenchido automaticamente. Atualmente, há suporte apenas para a chave de acesso compartilhada. Chave de acesso compartilhada
    Nome da Chave de Acesso Compartilhado Campo b da tabela acima. O nome que você deu à política de acesso compartilhado. DocsTest
    Chave de acesso compartilhada Campo c da tabela acima. A chave primária da política SAS.
  2. Selecione Salvar. É criada uma nova conexão de dados na nuvem entre o Fabric e os Hubs de Eventos.

Conectar a conexão de nuvem ao banco de dados KQL

Se você criou uma nova conexão de nuvem ou se está usando uma existente, será necessário definir o grupo de consumidores. Opcionalmente, você pode definir parâmetros que definem ainda mais aspectos da conexão entre o banco de dados KQL e a conexão de nuvem.

  1. Preencha os campos restantes de acordo com a tabela a seguir:

    Captura de tela da criação da conexão de banco de dados.

    Configuração Descrição Valor de exemplo
    Grupo de consumidores O grupo de consumidores relevante definido no hub de eventos. Para obter mais informações, confira grupos de consumidores. Depois de adicionar um novo grupo de consumidores, você precisará selecionar esse grupo no menu suspenso. NewConsumer
    Mais parâmetros
    Compactação Compactação de dados dos eventos, como provenientes do hub de eventos. As opções são Nenhum (padrão) ou compressão Gzip. Nenhum
    Propriedades do sistema de eventos Para obter mais informações, confira 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. Confira Propriedades do sistema de eventos.
    Data de início da recuperação do evento A conexão de dados recupera eventos existentes do hub de eventos criados desde a data de início da recuperação de eventos. Ela só pode recuperar eventos retidos pelo hub de eventos, com base em seu período de retenção. O fuso horário é UTC. Se nenhuma hora for especificada, a hora padrão será a hora em que a conexão de dados for criada.
  2. Selecione Avançar para continuar para a guia Inspecionar.

Propriedades do sistema de eventos

As propriedades do sistema armazenam propriedades que são definidas pelos Hubs de Eventos, no momento em que o evento é colocado na fila. A conexão de dados com o hub de eventos pode inserir um conjunto selecionado de propriedades do sistema nos dados ingeridos em uma tabela com base em um determinado mapeamento.

Propriedade Tipo de Dados Descrição
x-opt-enqueued-time datetime Hora UTC em que o evento foi colocado na fila.
x-opt-sequence-number longo O número de sequência lógica do evento no fluxo de partição do hub de eventos.
x-opt-offset string O deslocamento do evento em relação ao fluxo da partição do hub de eventos. O identificador de deslocamento é exclusivo em uma partição do fluxo do hub de eventos.
x-opt-publisher string O nome do editor, se a mensagem foi enviada a um ponto de extremidade do editor.
x-opt-partition-key string A chave da partição correspondente que armazenou o evento.

Inspecionar

Para concluir o processo de ingestão, selecione Concluir.

Captura de tela da guia de inspeção.

Se desejar:

  • Selecione Visualizador de comando para ver e copiar os comandos automáticos gerados com base nas entradas.

  • Altere o formato de dados inferido automaticamente selecionando o formato desejado na lista suspensa. Os dados são lidos no hub de eventos na forma de objetos EventData. Os formatos com suporte são CSV, JSON, PSV, SCsv, SOHsv TSV, TXT e TSVE.

  • Editar colunas.

  • Explore Opções avançadas com base no tipo de dados.

  • Se os dados exibidos na janela de pré-visualização não estiverem completos, talvez você precise de mais dados para criar uma tabela com todos os campos de dados necessários. Use os seguintes comandos para buscar novos dados do hub de eventos:

    • Descartar e buscar novos dados: descarta os dados apresentados e procura novos eventos.
    • Buscar mais dados: procura mais eventos além dos eventos já encontrados.

Editar colunas

Observação

  • Para formatos tabulares (CSV, TSV, PSV), você não pode mapear uma coluna duas vezes. Para mapear para uma coluna existente, primeiro exclua a nova coluna.
  • Não é possível alterar um tipo de coluna existente. Se você tentar mapear para uma coluna com um formato diferente, poderá ficar com colunas vazias.

As alterações que você pode fazer em uma tabela dependem dos seguintes parâmetros:

  • O tipo de tabela é novo ou existente
  • O tipo de mapeamento é novo ou existente
Tipo de tabela Tipo de mapeamento Ajustes disponíveis
Nova tabela Novo mapeamento Renomear coluna, alterar tipo de dados, alterar fonte de dados, transformação de mapeamento, adicionar coluna, excluir coluna
Tabela existente Novo mapeamento Adicionar coluna (na qual você pode alterar o tipo de dados, renomear e atualizar)
Tabela existente Mapeamento existente nenhum

Captura de tela de colunas abertas para edição.

Transformações de mapeamento

Alguns mapeamentos de formato de dados (Parquet, JSON e Avro) dão suporte a transformações de tempo de ingestão simples. Para aplicar transformações de mapeamento, crie ou atualize uma coluna na janela Editar colunas.

As transformações de mapeamento podem ser executadas em uma coluna de cadeia de caracteres de tipo ou de datetime, com o tipo de dados int ou long selecionado em Origem. As transformações de mapeamento com suporte são:

  • DateTimeFromUnixSeconds
  • DateTimeFromUnixMilliseconds
  • DateTimeFromUnixMicroseconds
  • DateTimeFromUnixNanoseconds

Mapeamento de esquema para arquivos Avro de Captura dos Hubs de Eventos

Uma forma de consumir dados dos Hubs de Eventos é capturar eventos por meio de Hubs de Eventos do Azure no Armazenamento de Blobs do Azure ou no Azure Data Lake Storage. Você pode então ingerir os arquivos de captura conforme eles são gravados usando uma Conexão de Dados da Grade de Eventos.

O esquema dos arquivos de captura é diferente do esquema do evento original enviado ao Hub de Eventos. Você deve projetar o esquema da tabela de destino com essa diferença em mente. Especificamente, o conteúdo do evento é representado no arquivo de captura como uma matriz de bytes, e essa matriz não é decodificada automaticamente pela conexão de dados do Azure Data Explorer da Grade de Eventos. Para obter informações mais específicas sobre o esquema de arquivos para dados de captura do Avro dos Hubs de Eventos, confira Explorar arquivos Avro capturados em Hubs de Eventos do Azure.

Para decodificar corretamente o conteúdo do evento:

  1. Mapeie o campo Body do evento capturado em uma coluna de tipo dynamic na tabela de destino.
  2. Aplique uma política de atualização que converte a matriz de bytes em uma cadeia de caracteres legível usando a função unicode_codepoints_to_string().

Opções avançadas com base no tipo de dados

Tabular (CSV, TSV, PSV):

  • Se você estiver ingerindo formatos tabulares em uma tabela existente, poderá selecionar Avançado>Manter esquema de tabela. Os dados tabulares não incluem necessariamente os nomes de coluna usados para mapear os dados de origem para as colunas existentes. Quando essa opção é marcada, o mapeamento é feito por ordem, e o esquema da tabela permanece o mesmo. Se essa opção estiver desmarcada, novas colunas serão criadas para os dados de entrada, independentemente da estrutura de dados.

  • Para usar a primeira linha como nomes de coluna, selecione Avançado>A primeira linha é o cabeçalho da coluna.

    Captura de tela de opções avançadas CSV.

JSON:

  • Para determinar a divisão de coluna dos dados JSON, selecione Avançado>Níveis aninhados, de 1 a 100.

  • Se você selecionar Avançado>Ignorar linhas JSON com erros, os dados serão ingeridos no formato JSON. Se você deixar essa caixa de seleção desmarcada, os dados serão ingeridos no formato multijson.

    Captura de tela de opções avançadas JSON.

Resumo

Na janela Preparação de dados, todas as três etapas serão assinaladas com marcas de seleção verdes quando a ingestão de dados for concluída com sucesso. Você pode selecionar um cartão para consultar, remover os dados ingeridos ou ver um painel do resumo da ingestão.

Captura de tela da página de resumo com a ingestão bem-sucedida concluída.