Vue d’ensemble de l’ingestion des données dans Azure Data Explorer

L’ingestion des données implique le chargement de données dans une table de votre cluster. Azure Data Explorer garantit la validité des données, convertit les formats en fonction des besoins et effectue des manipulations telles que la correspondance de schéma, l’organisation, l’indexation, l’encodage et la compression. Une fois ingérées, les données sont disponibles pour la requête.

Azure Data Explorer offre une ingestion ponctuelle ou l’établissement d’un pipeline d’ingestion continu, à l’aide de la diffusion en continu ou de l’ingestion mise en file d’attente. Pour déterminer ce qui vous convient, consultez l’ingestion de données à usage unique et l’ingestion de données continues.

Remarque

Les données sont conservées dans le stockage en fonction de la stratégie de rétention définie.

Ingestion de données à usage unique

L’ingestion ponctuelle est utile pour le transfert de données historiques, le remplissage de données manquantes et les étapes initiales du prototypage et de l’analyse des données. Cette approche facilite l’intégration rapide des données sans avoir besoin d’un engagement de pipeline continu.

Il existe plusieurs façons d’effectuer l’ingestion de données ponctuelle. Utilisez l’arbre de décision suivant pour déterminer l’option la plus appropriée pour votre cas d’usage :

Organigramme pour la prise de décision d’ingestion ponctuelle.

Pour plus d’informations, consultez la documentation pertinente :

Légende Documentation pertinente
Consultez les formats de données pris en charge par Azure Data Explorer pour l’ingestion.
Consultez les formats de fichier pris en charge pour les pipelines Azure Data Factory.
Pour importer des données à partir d’un système de stockage existant, consultez Comment ingérer des données historiques dans Azure Data Explorer.
Dans l’interface utilisateur web d’Azure Data Explorer, vous pouvez obtenir des données à partir d’un fichier local, d’Amazon S3 ou d’Stockage Azure.
Pour l’intégrer à Azure Data Factory, consultez Copier des données dans Azure Data Explorer à l’aide d’Azure Data Factory.
Les bibliothèques clientes Kusto sont disponibles pour C#, Python, Java, JavaScript, TypeScript et Go. Vous pouvez écrire du code pour manipuler vos données, puis utiliser la bibliothèque Kusto Ingest pour ingérer des données dans votre table Azure Data Explorer. Les données doivent se trouver dans l’un des formats pris en charge avant l’ingestion.

Ingestion continue des données

L’ingestion continue excelle dans les situations exigeant des insights immédiats à partir de données actives. Par exemple, l’ingestion continue est utile pour surveiller les systèmes, les données de journal et d’événements et l’analytique en temps réel.

L’ingestion continue des données implique la configuration d’un pipeline d’ingestion avec streaming ou ingestion mise en file d’attente :

  • Ingestion de streaming : cette méthode garantit une latence quasi en temps réel pour de petits ensembles de données par table. Les données sont ingérées dans des micro-lots à partir d’une source de diffusion en continu, initialement placées dans le magasin de lignes, puis transférées dans les étendues du magasin de colonnes. Pour plus d’informations, consultez Configurer l’ingestion de streaming.

  • Ingestion mise en file d’attente : cette méthode est optimisée pour un débit d’ingestion élevé. Les données sont traitées par lots en fonction des propriétés d’ingestion, avec de petits lots, puis fusionnés et optimisés pour les résultats de requête rapides. Par défaut, les valeurs maximales mises en file d’attente sont de 5 minutes, 1 000 éléments ou une taille totale de 1 Go. La limite de taille des données pour une commande d’ingestion mise en file d’attente est de 6 Go. Cette méthode utilise des mécanismes de nouvelle tentative pour atténuer les défaillances temporaires et suit la sémantique de messagerie « au moins une fois » pour vous assurer qu’aucun message n’est perdu dans le processus. Pour plus d’informations sur l’ingestion mise en file d’attente, consultez la stratégie de traitement par lots d’ingestion.

Remarque

Pour la plupart des scénarios, nous vous recommandons d’utiliser l’ingestion mise en file d’attente, car il s’agit de l’option la plus performante.

Il existe plusieurs façons de configurer l’ingestion continue des données. Utilisez l’arbre de décision suivant pour déterminer l’option la plus appropriée pour votre cas d’usage :

Diagramme de l’arbre de décision pour l’ingestion continue.

Pour plus d’informations, consultez la documentation pertinente :

Légende Documentation pertinente
Pour obtenir la liste des connecteurs, consultez vue d’ensemble des connecteurs.
Créez une connexion de données Event Hubs. L’intégration à Event Hubs fournit des services tels que la limitation, les nouvelles tentatives, la surveillance et les alertes.
Ingérer des données à partir d’Apache Kafka, une plateforme de diffusion en continu distribuée pour la création de pipelines de données de streaming en temps réel.
Créez une connexion de données IoT Hub. L’intégration à IoT Hubs fournit des services tels que la limitation, les nouvelles tentatives, la surveillance et les alertes.
Créez une connexion de données Event Grid. L’intégration à Event Grid fournit des services tels que la limitation, les nouvelles tentatives, la surveillance et les alertes.
Consultez les conseils pour le connecteur approprié, comme Apache Spark, Apache Kafka, Azure Cosmos DB, Fluent Bit, Logstash, Open Telemetry, Power Automate, Splunk, etc. Pour plus d’informations, consultez vue d’ensemble des connecteurs.
Les bibliothèques clientes Kusto sont disponibles pour C#, Python, Java, JavaScript, TypeScript et Go. Vous pouvez écrire du code pour manipuler vos données, puis utiliser la bibliothèque Kusto Ingest pour ingérer des données dans votre table Azure Data Explorer. Les données doivent se trouver dans l’un des formats pris en charge avant l’ingestion.

Remarque

L’ingestion de streaming n’est pas prise en charge pour toutes les méthodes d’ingestion. Pour plus d’informations sur le support, consultez la documentation relative à la méthode d’ingestion spécifique.

Ingestion directe avec des commandes de gestion

Azure Data Explorer propose les commandes de gestion d’ingestion suivantes, qui ingèrent des données directement sur votre cluster au lieu d’utiliser le service de gestion des données. Ils doivent être utilisés uniquement pour l’exploration et le prototypage, et non dans les scénarios de production ou de volume élevé.

  • Inline ingestion : la commande .ingest inline contient les données à ingérer en tant que partie du texte de commande lui-même. Cette méthode est destinée à des fins de tests improvisés.
  • Ingestion à partir de la requête : les commandes .set, .append, .set-or-append ou .set-or-replace spécifient indirectement les données à ingérer en tant que résultats d’une requête ou d’une commande.
  • Ingestion à partir du stockage : la commande .ingestion obtient les données à ingérer à partir du stockage externe, telles que Stockage Blob Azure, accessibles par votre cluster et pointées par la commande.

Remarque

En cas d’échec, l’ingestion est à nouveau effectuée et retentée pendant 48 heures à l’aide de la méthode d’interruption exponentielle pour le temps d’attente entre les tentatives.

Comparer les méthodes d’ingestion

Le tableau suivant compare les principales méthodes d’ingestion :

Nom de l’ingestion Type de données Taille maximale du fichier Streaming, mis en file d’attente, direct Scénarios les plus courants À propos de l’installation
Connecteur Apache Spark Chaque format pris en charge par l’environnement Spark Illimité Mis(e) en file d’attente Pipeline existant, prétraitement sur Spark avant ingestion, méthode rapide de création d’un pipeline de streaming (Spark) sécurisé à partir des différentes sources prises en charge par l’environnement Spark. Envisagez le coût du cluster Spark. Pour l’écriture par lot, comparez avec la connexion de données Azure Data Explorer pour Event Grid. Pour le streaming Spark, comparez avec la connexion de données pour le hub d’événements.
Azure Data Factory (ADF) Formats de données pris en charge Illimité. Hérite des restrictions ADF. En file d’attente ou par déclencheur ADF Prend en charge les formats qui ne sont pas pris en charge, tels qu’Excel et XML, et peuvent copier des fichiers volumineux de plus de 90 sources, de perm à cloud Avec cette méthode, l’ingestion des données prend relativement plus de temps. ADF charge toutes les données dans la mémoire, puis commence l’ingestion.
Event Grid Formats de données pris en charge 1 Go non compressé Mis(e) en file d’attente Ingestion continue à partir du stockage Azure, données externes dans le stockage Azure L’ingestion peut être déclenchée par des actions de création ou de renommage d’objets blob
Event Hub Formats de données pris en charge S/O Mise en file d’attente, diffusion en continu Messages, événements
Obtenir l’expérience des données *SV, JSON 1 Go non compressé Ingestion mise en file d’attente ou directe Scénario ponctuel, création d’un schéma de table, définition de l’ingestion continue avec Event Grid, ingestion en bloc avec conteneur (jusqu’à 5 000 objets blob ; sans limite lorsque l’ingestion historique est utilisée)
IoT Hub Formats de données pris en charge S/O Mise en file d’attente, diffusion en continu Messages IoT, événements IoT, propriétés IoT
Connecteur Kafka Avro, ApacheAvro, JSON, CSV, Parquet et ORC Illimité. Hérite des restrictions Java. Mise en file d’attente, diffusion en continu Pipeline existant, consommation élevée de volume à partir de la source. La préférence peut être déterminée par l’utilisation existante d’un service de plusieurs producteurs ou consommateurs ou du niveau de gestion de service souhaité.
Bibliothèques clientes Kusto Formats de données pris en charge 1 Go non compressé Mise en file d’attente, diffusion en continu, direct Code personnalisé en fonction des besoins de l’organisation L’ingestion par programmation est optimisée pour réduire les coûts d’ingestion (COG) en réduisant les transactions de stockage pendant et en suivant le processus d’ingestion.
LightIngest Formats de données pris en charge 1 Go non compressé Ingestion mise en file d’attente ou directe Migration des données, données historiques avec horodatages d’ingestion ajustés, ingestion en bloc Respect de la casse et respect de l’espace
Logic Apps Formats de données pris en charge 1 Go non compressé Mis(e) en file d’attente Utilisé pour automatiser des pipelines
LogStash JSON Illimité. Hérite des restrictions Java. Mis(e) en file d’attente Pipeline existant, utilisez la maturité, code source ouvert nature de Logstash pour une consommation élevée de volume à partir des entrées. La préférence peut être déterminée par l’utilisation existante d’un service de plusieurs producteurs ou consommateurs ou du niveau de gestion de service souhaité.
Power Automate Formats de données pris en charge 1 Go non compressé Mis(e) en file d’attente Commandes d’ingestion dans le cadre du flux. Utilisé pour automatiser des pipelines.

Pour plus d’informations sur d’autres connecteurs, consultez vue d’ensemble des connecteurs.

autorisations

La liste suivante décrit les autorisations requises pour différents scénarios d’ingestion :

  • Pour créer une table, vous devez disposer au moins d’autorisations utilisateur de base de données.
  • Pour ingérer des données dans une table existante, sans modifier son schéma, nécessite au moins des autorisations d’ingestion de base de données.
  • Pour modifier le schéma d’une table existante, vous devez disposer au moins des autorisations d’administrateur de table ou d’administrateur de base de données.

Pour plus d’informations, consultez Contrôle d’accès en fonction du rôle Kusto.

Processus d’ingestion

Les étapes suivantes décrivent le processus d’ingestion général :

  1. Définir la stratégie de traitement par lots (facultatif) : les données sont traitées par lot en fonction de la stratégie de traitement par lot d’ingestion. Pour obtenir des conseils, consultez Optimiser pour le débit.

  2. Définir la stratégie de rétention (facultative) : si la stratégie de rétention de base de données n’est pas adaptée à vos besoins, remplacez-la au niveau de la table. Pour plus d’informations, consultez Stratégie de conservation.

  3. Créez une table : si vous utilisez l’expérience Obtenir des données, vous pouvez créer une table dans le cadre du flux d’ingestion. Sinon, créez une table avant l’ingestion dans l’interface utilisateur web d’Azure Data Explorer ou avec la commande .create table.

  4. Créer un mappage de schéma : les mappages de schéma permettent de lier des champs de données sources aux colonnes de table de destination. Différents types de mappages sont pris en charge, notamment les formats orientés lignes tels que CSV, JSON et AVRO, et les formats orientés colonnes comme Parquet. Dans la plupart des méthodes, les mappages peuvent également être précréés sur la table.

  5. Définir la stratégie de mise à jour (facultatif) : certains formats de données tels que Parquet, JSON et Avro permettent des transformations ingestion simples. Pour un traitement plus complexe pendant l’ingestion, utilisez la stratégie de mise à jour. Cette stratégie exécute automatiquement des extractions et des transformations sur les données ingérées dans la table d’origine, puis ingère les données modifiées dans une ou plusieurs tables de destination.

  6. Données d’ingestion : utilisez votre outil d’ingestion, connecteur ou méthode préféré pour importer les données.