Visão geral da ingestão de dados do Azure Data Explorer

A ingestão de dados envolve o carregamento de dados em uma tabela no cluster. O Azure Data Explorer garante a validade dos dados, converte formatos conforme necessário e executa manipulações como correspondência de esquema, organização, indexação, codificação e compactação. Depois de ingeridos, os dados estão disponíveis para consulta.

O Azure Data Explorer oferece ingestão única ou o estabelecimento de um pipeline de ingestão contínua, usando streaming ou ingestão na fila. Para determinar qual é o ideal para você, consulte Ingestão de dados únicos e Ingestão contínua de dados.

Observação

Os dados são mantidos no armazenamento de acordo com a política de retenção definida.

Ingestão de dados únicos

A ingestão única é útil para a transferência de dados históricos, o preenchimento de dados ausentes e os estágios iniciais de prototipagem e análise de dados. Essa abordagem facilita a integração rápida de dados sem a necessidade de um compromisso contínuo de pipeline.

Há várias maneiras de executar a ingestão de dados únicos. Use a seguinte árvore de decisão para determinar a opção mais adequada para seu caso de uso:

Fluxograma para tomada de decisão de ingestão única.

Para obter mais informações, consulte a documentação relevante:

Balão Documentação relevante
Consulte os formatos de dados com suporte do Azure Data Explorer para ingestão.
Consulte os formatos de arquivo com suporte para pipelines de Azure Data Factory.
Para importar dados de um sistema de armazenamento existente, consulte Como ingerir dados históricos no Azure Data Explorer.
Na interface do usuário da Web do Azure Data Explorer, você pode obter dados de um arquivo local, Amazon S3 ou Armazenamento do Azure.
Para se integrar ao Azure Data Factory, consulte Copiar dados para o Azure Data Explorer usando Azure Data Factory.
As bibliotecas de cliente Kusto estão disponíveis para C#, Python, Java, JavaScript, TypeScript e Go. Você pode escrever código para manipular seus dados e, em seguida, usar a biblioteca de Ingestão do Kusto para ingerir dados em sua tabela Data Explorer do Azure. Os dados devem estar em um dos formatos com suporte antes da ingestão.

Ingestão de dados contínua

A ingestão contínua se destaca em situações que exigem insights imediatos de dados dinâmicos. Por exemplo, a ingestão contínua é útil para sistemas de monitoramento, dados de logs e eventos e análise em tempo real.

A ingestão contínua de dados envolve a configuração de um pipeline de ingestão com streaming ou ingestão na fila:

  • Ingestão de streaming: esse método garante latência quase em tempo real para pequenos conjuntos de dados por tabela. Os dados são ingeridos em microlotes de uma fonte de streaming, inicialmente colocados no repositório de linhas e transferidos para extensões de repositório de colunas. Para obter mais informações, consulte Configurar a ingestão de streaming.

  • Ingestão na fila: esse método é otimizado para alta taxa de transferência de ingestão. Os dados são agrupados em lote com base nas propriedades de ingestão, com lotes pequenos mesclados e otimizados para resultados rápidos da consulta. Por padrão, os valores máximos enfileirados são 5 minutos, 1.000 itens ou um tamanho total de 1 GB. O limite de tamanho de dados para um comando de ingestão na fila é de 6 GB. Esse método usa mecanismos de repetição para atenuar falhas transitórias e segue a semântica de mensagens "pelo menos uma vez" para garantir que nenhuma mensagem seja perdida no processo. Para obter mais informações sobre a ingestão enfileirada, consulte Política de envio em lote de ingestão.

Observação

Para a maioria dos cenários, é recomendável usar a ingestão na fila, pois ela é a opção mais eficaz.

Há várias maneiras de configurar a ingestão contínua de dados. Use a seguinte árvore de decisão para determinar a opção mais adequada para seu caso de uso:

Diagrama da árvore de decisão para ingestão contínua.

Para obter mais informações, consulte a documentação relevante:

Balão Documentação relevante
Para obter uma lista de conectores, consulte Visão geral dos conectores.
Crie uma conexão de dados dos Hubs de Eventos. A integração com os Hubs de Eventos fornece serviços como limitação, repetições, monitoramento e alertas.
Ingerir dados do Apache Kafka, uma plataforma de streaming distribuída para criar pipelines de dados de streaming em tempo real.
Crie uma conexão de dados Hub IoT. A integração com os Hubs IoT fornece serviços como limitação, repetições, monitoramento e alertas.
Crie uma conexão de dados da Grade de Eventos. A integração com a Grade de Eventos fornece serviços como limitação, repetições, monitoramento e alertas.
Confira as diretrizes para o conector relevante, como Apache Spark, Apache Kafka, Azure Cosmos DB, Fluent Bit, Logstash, Open Telemetry, Power Automate, Splunk e muito mais. Para obter mais informações, consulte Visão geral dos conectores.
As bibliotecas de cliente Kusto estão disponíveis para C#, Python, Java, JavaScript, TypeScript e Go. Você pode escrever código para manipular seus dados e, em seguida, usar a biblioteca de Ingestão do Kusto para ingerir dados em sua tabela Data Explorer do Azure. Os dados devem estar em um dos formatos com suporte antes da ingestão.

Observação

Não há suporte para ingestão de streaming para todos os métodos de ingestão. Para obter detalhes de suporte, marcar a documentação do método de ingestão específico.

Ingestão direta com comandos de gerenciamento

O Azure Data Explorer oferece os seguintes comandos de gerenciamento de ingestão, que ingerem dados diretamente no cluster em vez de usar o serviço de gerenciamento de dados. Eles devem ser usados apenas para exploração e prototipagem e não em cenários de produção ou de alto volume.

  • Ingestão embutida: o comando .ingest embutido contém os dados a serem ingeridos como parte do próprio texto de comando. Esse método se destina a fins de teste improvisado.
  • Ingerir da consulta: os comandos .set, .append, .set-or-append ou .set-or-replace especifica indiretamente os dados a serem ingeridos como resultados de uma consulta ou de um comando.
  • Ingerir do armazenamento: o comando .ingest into obtém os dados a serem ingeridos do armazenamento externo, como Armazenamento de Blobs do Azure, acessíveis pelo cluster e apontados pelo comando .

Comparar métodos de ingestão

A tabela a seguir compara os métodos de ingestão main:

Nome da ingestão Tipo de dados Tamanho máximo do arquivo Streaming, enfileirado, direto Cenários mais comuns Considerações
Conector do Apache Spark Todos os formatos com suporte no ambiente do Spark Ilimitado Em fila Pipeline existente, pré-processamento no Spark antes da ingestão, maneira rápida de criar um pipeline de streaming seguro (Spark) das várias origens às quais o ambiente do Spark dá suporte. Considere o custo do cluster Spark. Para gravação em lote, compare com a conexão de dados do Azure Data Explorer para a Grade de Eventos. Para o streaming do Spark, compare com a conexão de dados para o hub de eventos.
ADF (Azure Data Factory) Formatos de dados compatíveis Ilimitado. Herda restrições do ADF. Na fila ou por gatilho do ADF Dá suporte a formatos sem suporte, como Excel e XML, e pode copiar arquivos grandes de mais de 90 fontes, de perm para nuvem Esse método leva relativamente mais tempo até que os dados sejam ingeridos. O ADF carrega todos os dados na memória e, em seguida, inicia a ingestão.
Grade de Eventos Formatos de dados compatíveis 1 GB descompactado Em fila Ingestão contínua do armazenamento do Azure, dados externos do armazenamento do Azure A ingestão pode ser disparada por ações de renomeação de blob ou de criação de blob
Hub de Evento Formatos de dados compatíveis N/D Na fila, streaming Mensagens, eventos
Obter experiência de dados *SV, JSON 1 GB descompactado Ingestão na fila ou direta One-off, criar esquema de tabela, definição de ingestão contínua com Grade de Eventos, ingestão em massa com contêiner (até 5.000 blobs, sem limite ao usar a ingestão de dados históricos)
Hub IoT Formatos de dados compatíveis N/D Na fila, streaming Mensagens de IoT, eventos de IoT, propriedades de IoT
Conector kafka Avro, ApacheAvro, JSON, CSV, Parquet e ORC Ilimitado. Herda restrições do Java. Na fila, streaming Pipeline existente, alto consumo de volume da origem. A preferência pode ser determinada pelo uso existente de vários produtores ou serviço de consumidor ou pelo nível desejado de gerenciamento de serviços.
Bibliotecas de clientes kusto Formatos de dados compatíveis 1 GB descompactado Enfileirado, streaming, direto Escreva um código próprio de acordo com as necessidades da organização A ingestão programática é otimizada para reduzir os COGs (custos de ingestão) minimizando as transações de armazenamento durante e seguindo o processo de ingestão.
LightIngest Formatos de dados compatíveis 1 GB descompactado Ingestão na fila ou direta Migração de dados, dados históricos com carimbos de data/hora de ingestão ajustados, ingestão em massa Diferencia maiúsculas de minúsculas e diferencia espaço
Aplicativos Lógicos Formatos de dados compatíveis 1 GB descompactado Em fila Usado para automatizar pipelines
LogStash JSON Ilimitado. Herda restrições do Java. Em fila Pipeline existente, use a natureza madura código aberto do Logstash para alto consumo de volume das entradas. A preferência pode ser determinada pelo uso existente de vários produtores ou serviço de consumidor ou pelo nível desejado de gerenciamento de serviços.
Power Automate Formatos de dados compatíveis 1 GB descompactado Em fila Comandos de ingestão como parte do fluxo. Usado para automatizar pipelines.

Para obter informações sobre outros conectores, consulte Visão geral dos conectores.

Permissões

A lista a seguir descreve as permissões necessárias para vários cenários de ingestão:

  • Para criar uma nova tabela, é necessário pelo menos permissões de Usuário do Banco de Dados.
  • Para ingerir dados em uma tabela existente, sem alterar seu esquema, requer pelo menos permissões de Ingestor de Banco de Dados.
  • Para alterar o esquema de uma tabela existente, é necessário pelo menos permissões de Administração de tabela ou Administração de banco de dados.

Para obter mais informações, consulte Controle de acesso baseado em função do Kusto.

O processo de ingestão

As etapas a seguir descrevem o processo geral de ingestão:

  1. Definir política de envio em lote (opcional): os dados são agrupados em lote com base na política de envio em lote de ingestão. Para obter diretrizes, consulte Otimizar para taxa de transferência.

  2. Definir política de retenção (opcional): se a política de retenção de banco de dados não for adequada para suas necessidades, substitua-a no nível da tabela. Para obter mais informações, consulte Política de retenção.

  3. Criar uma tabela: se você estiver usando a experiência Obter dados, poderá criar uma tabela como parte do fluxo de ingestão. Caso contrário, crie uma tabela antes da ingestão na interface do usuário da Web do Azure Data Explorer ou com o comando .create table.

  4. Criar um mapeamento de esquema: os mapeamentos de esquema ajudam a associar campos de dados de origem a colunas de tabela de destino. Há suporte para diferentes tipos de mapeamentos, incluindo formatos orientados a linhas como CSV, JSON e AVRO e formatos orientados a colunas, como Parquet. Na maioria dos métodos, os mapeamentos também podem ser pré-cridos na tabela.

  5. Definir política de atualização (opcional): determinados formatos de dados, como Parquet, JSON e Avro, permitem transformações simples de tempo de ingestão. Para um processamento mais complexo durante a ingestão, use a política de atualização. Essa política executa automaticamente extrações e transformações em dados ingeridos dentro da tabela original e, em seguida, ingere os dados modificados em uma ou mais tabelas de destino.

  6. Ingerir dados: use sua ferramenta de ingestão, conector ou método preferido para trazer os dados.