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:
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:
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:
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.
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.
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.
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.
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.
Ingerir dados: utilize a ferramenta de ingestão preferencial, o conector ou o método para introduzir os dados.