Meilleures pratiques pour la bibliothèque d’ingestion Kusto
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
Cet article explique les meilleures pratiques pour l’ingestion de données avec la bibliothèque Kusto Ingest.
Préférer la file d’attente par rapport à l’ingestion directe
Pour les scénarios de production, utilisez le client d’ingestion mis en file d’attente. Pour plus d’informations, consultez Ingestion mise en file d’attente et Ingestion directe.
Utiliser une seule instance cliente d’ingestion
Les implémentations du client Kusto Ingest sont thread-safe et réutilisables. Pour chaque base de données cible, utilisez une seule instance d’un client d’ingestion en file d’attente ou directe par processus. L’exécution de plusieurs instances peut surcharger la base de données, ce qui lui permet de ne pas répondre ou de ralentir la réponse aux requêtes valides.
Limiter l’état de l’opération de suivi
Pour les flux de données volumineux, limitez l’utilisation de notifications positives pour les demandes d’ingestion. Un suivi excessif peut entraîner une latence d’ingestion accrue et même une non-réactivité complète. Pour plus d’informations, consultez l’état de l’opération.
Optimiser le débit
Lors de la planification de votre pipeline d’ingestion, tenez compte des facteurs suivants, car ils peuvent avoir des implications significatives sur le débit d’ingestion.
Facteur | Description |
---|---|
Taille des données | L’ingestion est plus efficace lorsqu’elle est effectuée en blocs volumineux. Nous vous recommandons d’envoyer des données par lots de 100 Mo à 1 Go (non compressé). |
Format de données | Préférez les formats de données tels que CSV ou tout format de texte délimité comme PSV ou TSV, ainsi que Parquet, JSON ou AVRO, qui sont optimisés pour un débit maximal. Pour plus d’informations, consultez Les formats de données pris en charge pour l’ingestion. |
Largeur de la table | Ingérer uniquement des données essentielles. Chaque colonne doit être encodée et indexée, ce qui signifie que les tables plus larges peuvent avoir un débit inférieur. Contrôlez les champs ingérés en fournissant un mappage d’ingestion. |
Emplacement des données sources | Évitez les lectures interrégions pour accélérer l’ingestion. |
Charger sur la base de données | Lorsqu’une base de données rencontre une charge de requête élevée, l’ingestion prend plus de temps. |
Remarque
Le client d’ingestion mis en file d’attente fractionne les jeux de données volumineux en blocs et les agrège, ce qui est utile lorsque les données ne peuvent pas être traitées par lot avant l’ingestion.
Optimiser le coût
L’utilisation des bibliothèques clientes Kusto pour ingérer des données dans votre base de données reste la plus économique et la plus robuste option. Nous demandons à nos clients de passer en revue leurs méthodes d’ingestion afin d’optimiser les coûts et de tirer parti de la tarification Stockage Azure qui rend les transactions d’objets blob significativement rentables.
Pour une ingestion économique :
- Limitez le nombre de blocs de données ingérés, tels que les fichiers, les objets blob et les flux.
- Ingérer des blocs volumineux allant jusqu’à 1 Go de données non compressées.
- Optez pour le traitement par lots.
- Fournissez une taille de données exacte et non compressée pour éviter des transactions de stockage supplémentaires.
- Évitez de définir la valeur
FlushImmediately
true
. - Évitez d’envoyer de petites quantités de données avec
ingest-by
oudrop-by
d’étendues.
Remarque
La surutilisation des deux dernières méthodes peut perturber l’agrégation des données, entraîner des transactions de stockage supplémentaires et nuire aux performances d’ingestion et de requête.