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

L’ingestion de 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, la organization, 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 continue, à l’aide d’une ingestion en streaming ou d’une ingestion en file d’attente. Pour déterminer ce qui vous convient, consultez Ingestion de données unique et Ingestion continue des données.

Notes

Les données sont conservées dans le stockage conformément à la stratégie de rétention de l’ensemble.

Ingestion de données ponctuelle

L’ingestion ponctuelle est utile pour le transfert de données historiques, le remplissage des données manquantes et les premières étapes 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 une ingestion de données unique. 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 appropriée :

Légende Documentation pertinente
Consultez les formats de données pris en charge par Azure Data Explorer pour l’ingestion.
Consultez les formats de fichiers 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 Azure Data Explorer, vous pouvez obtenir des données à partir d’un fichier local, Amazon S3 ou Stockage Azure.
Pour intégrer à Azure Data Factory, consultez Copier des données dans Azure Data Explorer à l’aide de 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 être 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 une ingestion en streaming ou une ingestion 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 streaming, placées initialement dans le magasin de lignes, puis transférées vers les étendues du magasin de colonnes. Pour plus d’informations, consultez Configurer l’ingestion de streaming.

  • Ingestion 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 des résultats de requête rapides. Par défaut, les valeurs maximales mises en file d’attente sont de 5 minutes, de 1 000 éléments ou d’une taille totale de 1 Go. La taille limite des données d’une commande d’ingestion en file d’attente est de 6 Go. Cette méthode utilise des mécanismes de nouvelle tentative pour atténuer les échecs temporaires et suit la sémantique de messagerie « au moins une fois » pour s’assurer qu’aucun message n’est perdu dans le processus. Pour plus d’informations sur l’ingestion en file d’attente, consultez Stratégie de traitement par lots d’ingestion.

Notes

Pour la plupart des scénarios, nous vous recommandons d’utiliser l’ingestion 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 appropriée :

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 permettant de créer des 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 instructions relatives au 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 être dans l’un des formats pris en charge avant l’ingestion.

Notes

L’ingestion en streaming n’est pas prise en charge pour toutes les méthodes d’ingestion. Pour plus d’informations sur le support, case activée 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 dans 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 des scénarios de production ou de volume élevé.

  • Inline ingestion : la commande .ingest inline contient les données à ingérer faisant partie du texte de la commande lui-même. Cette méthode est destinée à des fins de tests improvisés.
  • Ingérer à partir d’une 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.
  • Ingérer à partir du stockage : la commande .ingest into obtient les données à ingérer à partir d’un stockage externe, comme Stockage Blob Azure, accessibles par votre cluster et pointées par la commande.

Comparer les méthodes d’ingestion

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

Nom de l’ingestion Type de données Taille maximale du fichier Streaming, file d’attente, direct Scénarios les plus courants Considérations
Connecteur Apache Spark Chaque format pris en charge par l’environnement Spark Illimité Mis 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. Mis 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 peut copier des fichiers volumineux à partir de plus de 90 sources, de l’environnement local vers le 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 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 N/A Mise en file d’attente, diffusion en continu Messages, événements
Obtenir une expérience de données *SV, JSON 1 Go non compressé Ingestion directe ou en file d’attente 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 N/A 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 par le niveau de gestion de service souhaité.
Bibliothèques clientes Kusto Formats de données pris en charge 1 Go non compressé Mis en file d’attente, streaming, 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 après le processus d’ingestion.
LightIngest Formats de données pris en charge 1 Go non compressé Ingestion directe ou en file d’attente Migration de données, données historiques avec horodatages d’ingestion ajustés, ingestion en bloc Respect de la casse et de l’espace
Logic Apps Formats de données pris en charge 1 Go non compressé Mis en file d'attente. Utilisé pour automatiser des pipelines
LogStash JSON Illimité. Hérite des restrictions Java. Mis en file d'attente. Pipeline existant, utilisez la nature mature et open source de Logstash pour une consommation de volume élevée à 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 par le niveau de gestion de service souhaité.
Power Automate Formats de données pris en charge 1 Go non compressé Mis 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 :

  • La création d’une table nécessite au moins des 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.
  • La modification du schéma d’une table existante nécessite au moins des autorisations Administration de table ou de Administration 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 le débit.

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

  3. Créer 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 la table de destination. Différents types de mappages sont pris en charge, notamment les formats orientés lignes comme 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 comme Parquet, JSON et Avro permettent des transformations d’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. Ingérer des données : utilisez votre outil, connecteur ou méthode d’ingestion préféré pour importer les données.