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 ficam 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 enfileirada. Para determinar qual é a certa para você, consulte Ingestão única de dados 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 única de dados
A ingestão única é útil para a transferência de dados históricos, 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 realizar a ingestão única de dados. Use a seguinte árvore de decisão para determinar a opção mais adequada para seu caso de uso:
Para obter mais informações, consulte a documentação relevante:
Balão | Documentação relevante |
---|---|
Confira os formatos de dados compatíveis com o Azure Data Explorer para ingestão. | |
Confira os formatos de arquivo compatíveis com pipelines do 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 integrar com o Azure Data Factory, consulte Copiar dados para o Azure Data Explorer usando o 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 Kusto Ingest para ingerir dados em sua tabela do Azure Data Explorer. Os dados devem estar em um dos formatos suportados 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 em tempo real. Por exemplo, a ingestão contínua é útil para monitorar sistemas, dados de log e eventos e análises 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 enfileirada:
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, em seguida, transferidos para extensões de repositório de colunas. Para obter mais informações, consulte Configurar a assimilação de streaming.
Ingestão enfileirada: esse método é otimizado para alta taxa de transferência de ingestão. Os dados são agrupados em lotes com base nas propriedades de assimilação, com pequenos lotes mesclados e otimizados para resultados de consulta rápidos. Por padrão, os valores máximos enfileirados são 5 minutos, 1000 itens ou um tamanho total de 1 GB. O limite de tamanho de dados para um comando de ingestão enfileirado é de 6 GB. Esse método usa mecanismos de repetição para mitigar 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, recomendamos usar a ingestão enfileirada, pois é a opção de melhor desempenho.
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:
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, novas tentativas, monitoramento e alertas. | |
Faça a ingestão de 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 do Hub IoT. A integração com os Hubs IoT fornece serviços como limitação, novas tentativas, 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, novas tentativas, monitoramento e alertas. | |
Consulte 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 Kusto Ingest para ingerir dados em sua tabela do Azure Data Explorer. Os dados devem estar em um dos formatos suportados antes da ingestão. |
Observação
Não há suporte para a ingestão de streaming para todos os métodos de ingestão. Para obter detalhes de suporte, consulte 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 inline contém os dados a serem assimilados como parte do próprio texto do 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 especificam indiretamente os dados a serem ingeridos como os 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 o Armazenamento de Blobs do Azure, acessível pelo cluster e apontado pelo comando.
Observação
Em caso de falha, a ingestão é executada novamente e é repetida por até 48 horas usando o método de retirada exponencial para o tempo de espera entre as tentativas.
Comparar métodos de ingestão
A tabela a seguir compara os principais métodos de ingestão:
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 espera | 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. | Enfileirado ou por gatilho do ADF | Suporta formatos não suportados, como Excel e XML, e pode copiar arquivos grandes de mais de 90 fontes, do permanente à 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 espera | 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 | Enfileirado, streaming | Mensagens, eventos | |
Obtenha experiência de dados | *SV, JSON | 1 GB descompactado | Ingestão direta ou em fila | 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 | Enfileirado, 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. | Enfileirado, 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 ao consumidor ou pelo nível desejado de gerenciamento de serviços. |
Bibliotecas de cliente 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 custos de ingestão (COGs), minimizando as transações de armazenamento durante e após o processo de ingestão. |
LightIngest | Formatos de dados compatíveis | 1 GB descompactado | 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 | Diferencia maiúsculas de minúsculas e espaço |
Aplicativos Lógicos | Formatos de dados compatíveis | 1 GB descompactado | Em espera | Usado para automatizar pipelines | |
LogStash | JSON | Ilimitado. Herda restrições do Java. | Em espera | Pipeline existente, use a natureza madura e de código aberto do Logstash para consumo de alto volume da(s) entrada(s). | A preferência pode ser determinada pelo uso existente de vários produtores ou serviço ao consumidor ou pelo nível desejado de gerenciamento de serviços. |
Power Automate | Formatos de dados compatíveis | 1 GB descompactado | Em espera | 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, são necessárias pelo menos permissões de usuário do banco de dados.
- Para ingerir dados em uma tabela existente, sem alterar seu esquema, são necessárias pelo menos permissões do Database Ingestor.
- Para alterar o esquema de uma tabela existente, são necessárias pelo menos permissões de Administrador de Tabela ou Administrador de Banco de Dados.
Para obter mais informações, confira Kusto role-based access control.
O processo de ingestão
As etapas a seguir descrevem o processo geral de ingestão:
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.
Definir política de retenção (opcional): se a política de retenção do banco de dados não for adequada às suas necessidades, substitua-a no nível da tabela. Para obter mais informações, consulte Política de retenção.
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.
Criar um mapeamento de esquema: os mapeamentos de esquema ajudam a associar campos de dados de origem às colunas da 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é-criados na tabela.
Definir política de atualização (opcional): determinados formatos de dados, como Parquet, JSON e Avro, permitem transformações diretas no momento da 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 nos dados ingeridos na tabela original e, em seguida, ingere os dados modificados em uma ou mais tabelas de destino.
Ingerir dados: use sua ferramenta, conector ou método de ingestão preferido para trazer os dados.