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.
Para obter dados dos Hubs de Eventos usando o Eventstream, consulte Adicionar fonte dos Hubs de Eventos do Azure a um Eventstream.
Pré-requisitos
- Uma assinatura do Azure. Criar uma conta gratuita do Azure
- Um hub de eventos
- Um workspace com uma capacidade habilitada para o Microsoft Fabric
- Um banco de dados KQL com permissões de edição
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.
No portal do Azure, navegue até a instância dos hubs de eventos que você deseja conectar.
Em Configurações, selecione Políticas de acesso compartilhado
Selecione + Adicionar para adicionar uma nova política SAS ou selecione uma política existente em Gerenciar permissões.
Insira um Nome de política.
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.
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
Na faixa de opções inferior do banco de dados KQL, selecione Obter Dados.
Na janela Obter dados, a guia Origem será selecionada.
Selecione a fonte de dados na lista disponível. Neste exemplo, você está ingerindo dados dos Hubs de Eventos.
Configurar
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.
Selecione Criar conexão ou Conexão existente e vá para a próxima etapa.
Criar nova conexão
Preencha as Configurações de conexão de acordo com a tabela a seguir:
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. 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.
Preencha os campos restantes de acordo com a tabela a seguir:
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. 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.
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.
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 |
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:
- Mapeie o campo
Body
do evento capturado em uma coluna de tipodynamic
na tabela de destino. - 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.
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.
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.