Práticas recomendadas para a biblioteca Kusto Ingest
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer
Este artigo explica as práticas recomendadas para ingestão de dados com a biblioteca Kusto Ingest.
Prefira a ingestão em fila em vez da direta
Para cenários de produção, use o cliente de ingestão enfileirado. Para obter mais informações, consulte Ingestão enfileirada e Ingestão direta.
Usar uma única instância de cliente de ingestão
As implementações do cliente Kusto Ingest são thread-safe e reutilizáveis. Para cada banco de dados de destino, use uma única instância de um cliente de ingestão enfileirada ou direta por processo. A execução de várias instâncias pode sobrecarregar o banco de dados, fazendo com que ele pare de responder ou fique lento para responder a solicitações válidas.
Limitar o status da operação de rastreamento
Para fluxos de dados de grande volume, limite o uso de notificações positivas para solicitações de ingestão. O rastreamento excessivo pode levar ao aumento da latência de ingestão e até mesmo à falta de resposta completa. Para obter mais informações, consulte Status da operação.
Otimize para taxa de transferência
Ao planejar seu pipeline de ingestão, considere os seguintes fatores, pois eles podem ter implicações significativas na taxa de transferência de ingestão.
Fator | Descrição |
---|---|
Tamanho dos dados | A ingestão é mais eficiente quando feita em grandes partes. Recomendamos o envio de dados em lotes de 100 MB a 1 GB (descompactados). |
Formato dos dados | Prefira formatos de dados como CSV ou qualquer formato de texto delimitado como PSV ou TSV, bem como Parquet, JSON ou AVRO, que são otimizados para taxa de transferência máxima. Para obter mais informações, consulte Formatos de dados com suporte para ingestão. |
Largura da tabela | Ingira apenas dados essenciais. Cada coluna precisa ser codificada e indexada, o que significa que tabelas mais largas podem ter menor taxa de transferência. Controle quais campos são assimilados fornecendo um mapeamento de ingestão. |
Localização dos dados de origem | Evite leituras entre regiões para acelerar a ingestão. |
Carregar no banco de dados | Quando um banco de dados experimenta uma alta carga de consulta, a ingestão leva mais tempo para ser concluída. |
Observação
O cliente de ingestão enfileirado divide grandes conjuntos de dados em partes e os agrega, o que é útil quando os dados não podem ser agrupados em lote antes da ingestão.
Otimizar para custos
Usar bibliotecas de cliente Kusto para ingerir dados em seu banco de dados continua sendo a opção mais barata e robusta. Recomendamos que nossos clientes examinem seus métodos de ingestão para otimizar o custo e aproveitar os preços do Armazenamento do Azure que tornarão as transações de blob significativamente econômicas.
Para ingestão econômica:
- Limite o número de partes de dados ingeridas, como arquivos, blobs e fluxos.
- Ingerir grandes blocos de até 1 GB de dados não compactados.
- Opte por lotes.
- Forneça o tamanho exato e descompactado dos dados para evitar transações de armazenamento extra.
- Evite definir
FlushImmediately
comotrue
. - Evite enviar pequenas quantidades de dados com
ingest-by
tags oudrop-by
extent.
Observação
O uso excessivo dos dois últimos métodos pode interromper a agregação de dados, levar a transações de armazenamento extras e prejudicar a ingestão e o desempenho da consulta.