Descrição geral da ingestão de dados do Azure Data Explorer

A ingestão de dados envolve carregar dados para 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 esquemas, organização, indexação, codificação e compressã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, utilizando a transmissão em fluxo ou a ingestão em fila. Para determinar qual é o ideal para si, veja Ingestão única de dados e Ingestão contínua de dados.

Nota

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

Ingestão de dados única

A ingestão única é útil para a transferência de dados históricos, o preenchimento de dados em falta e as fases iniciais de prototipagem e análise de dados. Esta abordagem facilita a integração rápida de dados sem a necessidade de uma alocação contínua do pipeline.

Existem várias formas de realizar a ingestão de dados única. Utilize a seguinte árvore de decisões para determinar a opção mais adequada para o seu caso de utilização:

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

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

Chamada Documentação relevante
Veja os formatos de dados suportados pelo Azure Data Explorer para ingestão.
Veja os formatos de ficheiro suportados para Azure Data Factory pipelines.
Para importar dados de um sistema de armazenamento existente, veja Como ingerir dados históricos no Azure Data Explorer.
Na IU da Web do Azure Data Explorer, pode obter dados de um ficheiro local, do Amazon S3 ou do Armazenamento do Azure.
Para integrar com Azure Data Factory, veja Copiar dados para o Azure Data Explorer com Azure Data Factory.
As bibliotecas de cliente Kusto estão disponíveis para C#, Python, Java, JavaScript, TypeScript e Go. Pode escrever código para manipular os seus dados e, em seguida, utilizar a biblioteca de Ingestão de Kusto para ingerir dados na sua tabela de Data Explorer do Azure. Os dados têm de estar num dos formatos suportados antes da ingestão.

Ingestão contínua de dados

A ingestão contínua destaca-se em situações que exigem informações imediatas dos dados em direto. Por exemplo, a ingestão contínua é útil para monitorizar sistemas, dados de registos 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 transmissão em fluxo ou ingestão em fila:

  • Ingestão de transmissão em fluxo: este método garante latência quase em tempo real para pequenos conjuntos de dados por tabela. Os dados são ingeridos em micro lotes a partir de uma origem de transmissão em fluxo, inicialmente colocados no arquivo de linhas e, em seguida, transferidos para extensões do arquivo de colunas. Para obter mais informações, veja Configurar a ingestão de transmissão em fluxo.

  • Ingestão em fila: este método está otimizado para débito de ingestão elevada. Os dados são colocados em lote com base em propriedades de ingestão, com pequenos lotes e, em seguida, intercalados e otimizados para resultados de consultas rápidas. Por predefinição, os valores máximos em fila são 5 minutos, 1000 itens ou um tamanho total de 1 GB. O limite de tamanho dos dados para um comando de ingestão em fila é de 6 GB. Este método utiliza mecanismos de repetição para mitigar falhas transitórias e segue a semântica de mensagens "pelo menos uma vez" para garantir que não se perdem mensagens no processo. Para obter mais informações sobre a ingestão em fila, veja Política de lotes de ingestão.

Nota

Para a maioria dos cenários, recomendamos a utilização da ingestão em fila, uma vez que é a opção mais eficaz.

Existem várias formas de configurar a ingestão contínua de dados. Utilize a seguinte árvore de decisões para determinar a opção mais adequada para o seu caso de utilização:

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

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

Chamada Documentação relevante
Para obter uma lista de conectores, veja Descrição geral dos conectores.
Criar uma ligação de dados dos Hubs de Eventos. A integração com os Hubs de Eventos fornece serviços como limitação, repetições, monitorização e alertas.
Ingerir dados do Apache Kafka, uma plataforma de transmissão em fluxo distribuída para criar pipelines de dados de transmissão em fluxo em tempo real.
Crie uma ligação de dados Hub IoT. A integração com hubs IoT fornece serviços como limitação, repetições, monitorização e alertas.
Criar uma ligação de dados do Event Grid. A integração com o Event Grid fornece serviços como limitação, repetições, monitorização e alertas.
Veja a documentação de orientação 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, veja Descrição geral dos conectores.
As bibliotecas de cliente Kusto estão disponíveis para C#, Python, Java, JavaScript, TypeScript e Go. Pode escrever código para manipular os seus dados e, em seguida, utilizar a biblioteca de Ingestão de Kusto para ingerir dados na sua tabela de Data Explorer do Azure. Os dados têm de estar num dos formatos suportados antes da ingestão.

Nota

A ingestão de transmissão em fluxo não é suportada para todos os métodos de ingestão. Para obter detalhes de suporte, veja a documentação do método de ingestão específico.

Ingestão direta com comandos de gestão

O Azure Data Explorer oferece os seguintes comandos de gestão de ingestão, que ingerem dados diretamente no cluster em vez de utilizarem o serviço de gestão de dados. Devem ser utilizadas apenas para exploração e prototipagem e não em cenários de produção ou de grande volume.

  • Ingestão inline: o comando .ingestão inline contém os dados para ingerir fazendo parte do próprio texto de comando. Este método destina-se a fins de teste improvisados.
  • Ingestão da consulta: os comandos .set, .append, .set-or-append ou .set-or-replace especificam indiretamente os dados a ingerir como resultados de uma consulta ou de um comando.
  • Ingestão do armazenamento: o comando .ingestão em obtém os dados para ingerir 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 seguinte compara os principais métodos de ingestão:

Nome da ingestão Tipo de dados Tamanho máximo do ficheiro Transmissão em fluxo, em fila, direta Cenários mais comuns Considerações
Conector do Apache Spark Todos os formatos suportados pelo ambiente do Spark Ilimitado Em fila Pipeline existente, pré-processamento no Spark antes da ingestão, forma rápida de criar um pipeline de transmissão em fluxo seguro (Spark) a partir das várias origens suportadas pelo ambiente do Spark. Considere o custo do cluster do Spark. Para escrita em lote, compare com a ligação de dados do Azure Data Explorer para o Event Grid. Para a transmissão em fluxo do Spark, compare com a ligação de dados do hub de eventos.
Azure Data Factory (ADF) Formatos de dados suportados Ilimitado. Herda restrições do ADF. Acionador em fila ou por ADF Suporta formatos que não são suportados, como o Excel e o XML, e que podem copiar ficheiros grandes de mais de 90 origens, do perm para a cloud Este método demora relativamente mais tempo até que os dados sejam ingeridos. O ADF carrega todos os dados para a memória e, em seguida, começa a ingestão.
Event Grid Formatos de dados suportados 1 GB descomprimido Em fila Ingestão contínua do armazenamento do Azure, dados externos no armazenamento do Azure A ingestão pode ser acionada através de ações de mudança de nome de blobs ou criação de blobs
Hub de Eventos Formatos de dados suportados N/D Em fila, transmissão em fluxo Mensagens, eventos
Obter experiência de dados *SV, JSON 1 GB descomprimido Ingestão direta ou em fila One-off, create table schema, definition of continuous ingestion with Event Grid, bulk ingestion with container (até 5.000 blobs; no limit when using historical ingestion)
Hub IoT Formatos de dados suportados N/D Em fila, transmissão em fluxo Mensagens IoT, eventos IoT, propriedades IoT
Conector do Kafka Avro, ApacheAvro, JSON, CSV, Parquet e ORC Ilimitado. Herda restrições java. Em fila, transmissão em fluxo Pipeline existente, consumo de volume elevado da origem. A preferência pode ser determinada pela utilização existente de vários produtores ou serviços de consumidores ou pelo nível pretendido de gestão de serviços.
Bibliotecas de cliente Kusto Formatos de dados suportados 1 GB descomprimido Em fila, transmissão em fluxo, direto Escrever o seu próprio código de acordo com as necessidades organizacionais A ingestão programática é otimizada para reduzir os custos de ingestão (COGs), minimizando as transações de armazenamento durante e seguindo o processo de ingestão.
LightIngest Formatos de dados suportados 1 GB descomprimido Ingestão direta ou em fila Migração de dados, dados históricos com carimbos de data/hora de ingestão ajustados, ingestão em massa Sensível às maiúsculas e minúsculas e sensível ao espaço
Logic Apps Formatos de dados suportados 1 GB descomprimido Em fila Utilizado para automatizar pipelines
LogStash JSON Ilimitado. Herda restrições java. Em fila Pipeline existente, utilize a natureza madura e open source do Logstash para um consumo de volume elevado a partir das entradas. A preferência pode ser determinada pela utilização existente de vários produtores ou serviços de consumidores ou pelo nível pretendido de gestão de serviços.
Power Automate Formatos de dados suportados 1 GB descomprimido Em fila Comandos de ingestão como parte do fluxo. Utilizado para automatizar pipelines.

Para obter informações sobre outros conectores, veja Descrição geral dos conectores.

Permissões

A lista seguinte 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 Utilizador da Base de Dados.
  • Para ingerir dados numa tabela existente, sem alterar o esquema, é necessário, pelo menos, permissões do Ingestor de Bases de Dados.
  • Para alterar o esquema de uma tabela existente, é necessário, pelo menos, permissões de Administração de Tabelas ou Administração de Base de Dados.

Para obter mais informações, veja Controlo de acesso baseado em funções do Kusto.

O processo de ingestão

Os passos seguintes descrevem o processo geral de ingestão:

  1. Definir política de criação de lotes (opcional): os dados são colocados em lotes com base na política de criação de lotes de ingestão. Para obter orientações, veja Otimizar para débito.

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

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

  4. Criar um mapeamento de esquema: os mapeamentos de esquema ajudam a vincular os campos de dados de origem às colunas da tabela de destino. São suportados diferentes tipos de mapeamentos, incluindo formatos orientados para linhas, como CSV, JSON e AVRO, e formatos orientados para colunas como Parquet. Na maioria dos métodos, os mapeamentos também podem ser pré-configurados 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 processamento mais complexo durante a ingestão, utilize a política de atualização. Esta política executa automaticamente extrações e transformações em dados ingeridos na tabela original e, em seguida, ingere os dados modificados numa ou mais tabelas de destino.

  6. Ingerir dados: utilize a ferramenta de ingestão preferencial, o conector ou o método para introduzir os dados.