Melhores práticas para a biblioteca de Ingestão do Kusto

Este artigo explica as melhores práticas para a ingestão de dados com a biblioteca de Ingestão do Kusto.

Preferir colocação em fila em vez da ingestão direta

Para cenários de produção, utilize o cliente de ingestão em fila. Para obter mais informações, veja Ingestão em fila e Ingestão direta.

Utilizar uma única instância de cliente de ingestão

As implementações de cliente da Ingestão Kusto são seguras para threads e reutilizáveis. Para cada cluster de destino, utilize uma única instância de um cliente de ingestão direta ou em fila por processo. A execução de várias instâncias pode sobrecarregar o cluster, fazendo com que deixe de responder ou atrase para responder a pedidos válidos.

Limitar o estado da operação de controlo

Para fluxos de dados de grandes volumes, limite a utilização de notificações positivas para pedidos de ingestão. O controlo excessivo pode levar a uma maior latência de ingestão e até mesmo a uma total falta de capacidade de resposta do cluster. Para obter mais informações, veja Estado da operação.

Otimizar para débito

Ao planear o pipeline de ingestão, considere os seguintes fatores, uma vez que podem ter implicações significativas no débito de ingestão.

Fator Description
Tamanho dos dados A ingestão é mais eficiente quando feita em grandes segmentos. Recomendamos o envio de dados em lotes de 100 MB para 1 GB (descomprimidos).
Formato de dados O CSV é o formato mais rápido de ingestão. Para o mesmo volume de dados, o JSON pode demorar 2x ou 3 vezes mais. Para obter mais informações, veja Formatos de dados suportados para ingestão.
Largura da tabela Ingerir apenas dados essenciais. Cada coluna tem de ser codificada e indexada, o que significa que as tabelas mais largas podem ter um débito inferior. Controle os campos que são ingeridos ao fornecer um mapeamento de ingestão.
Localização dos dados de origem Evite leituras entre regiões para acelerar a ingestão.
Carregar no cluster Quando um cluster tem uma carga de consulta elevada, a ingestão demora mais tempo a ser concluída.

Nota

O cliente de ingestão em fila divide grandes conjuntos de dados em segmentos e agrega-os, o que é útil quando os dados não podem ser colocados em lotes antes da ingestão.

Otimizar para o custo

A utilização de bibliotecas de cliente Kusto para ingerir dados no cluster continua a ser a opção mais barata e robusta. Exortamos os nossos clientes a reverem os respetivos métodos de ingestão para otimizar o custo e tirar partido dos preços do Armazenamento do Azure que tornarão as transações de blobs significativamente rentáveis.

Para ingestão económica:

  • Limite o número de segmentos de dados ingeridos, como ficheiros, blobs e fluxos.
  • Ingerir grandes segmentos de até 1 GB de dados não comprimidos.
  • Opte por criação de batches.
  • Forneça um tamanho de dados exato e não comprimido para evitar transações de armazenamento adicionais.
  • Evite definir FlushImmediately como true.
  • Evite enviar pequenas quantidades de dados com ingest-by ou drop-byetiquetas de extensão.

Nota

A utilização excessiva dos dois últimos métodos pode interromper a agregação de dados, levar a transações de armazenamento adicionais e prejudicar a ingestão e o desempenho das consultas.