Ingestion des données dans l’Explorateur de données AzureAzure Data Explorer data ingestion

L’ingestion des données est le processus qui consiste à charger des enregistrements de données à partir d’une ou plusieurs sources pour créer ou mettre à jour une table dans l’Explorateur de données Azure.Data ingestion is the process used to load data records from one or more sources to create or update a table in Azure Data Explorer. Une fois ingérées, les données sont disponibles pour les requêtes.Once ingested, the data becomes available for query. Le diagramme ci-dessous illustre le flux de bout en bout d’utilisation de l’Explorateur de données Azure, notamment l’ingestion des données.The diagram below shows the end-to-end flow for working in Azure Data Explorer, including data ingestion.

Flux de données

Le service de gestion des données Explorateur de données Azure, qui est responsable de l’ingestion des données, offre les fonctionnalités suivantes :The Azure Data Explorer data management service, which is responsible for data ingestion, provides the following functionality:

  1. Extraction de données : extraire des données provenant de sources externes (hubs d’événements) ou lire des requêtes d’ingestion à partir d’une file d’attente Azure.Data pull: Pull data from external sources (Event Hubs) or read ingestion requests from an Azure Queue.

  2. Traitement par lot : traiter par lot des données à destination de la même base de données et de la même table, afin optimiser le débit d’ingestion.Batching: Batch data flowing to the same database and table to optimize ingestion throughput.

  3. Validation : validation et conversion de format préliminaires si nécessaire.Validation: Preliminary validation and format conversion if necessary.

  4. Manipulation de données : mise en correspondance de schéma, organisation, indexation, encodage et compression des données.Data manipulation: Matching schema, organizing, indexing, encoding and compressing the data.

  5. Point de persistance dans le flux d’ingestion : gérer la charge d’ingestion sur le moteur et traiter les nouvelles tentatives en cas de défaillance temporaire.Persistence point in the ingestion flow: Manage ingestion load on the engine and handle retries upon transient failures.

  6. Validation de l’ingestion des données : rend les données interrogeables.Commit the data ingest: Makes the data available for query.

Méthodes d’ingestionIngestion methods

L’Explorateur de données Azure prend en charge plusieurs méthodes d’ingestion, chacune avec ses propres scénarios cibles, avantages et inconvénients.Azure Data Explorer supports several ingestion methods, each with its own target scenarios, advantages, and disadvantages. L’Explorateur de données Azure offre des pipelines et des connecteurs pour les services les plus courants, l’ingestion par programmation à l’aide de SDK et un accès direct au moteur de fins d’exploration.Azure Data Explorer offers pipelines and connectors to common services, programmatic ingestion using SDKs, and direct access to the engine for exploration purposes.

Ingestion à l'aide de pipelines, de connecteurs et de plug-insIngestion using pipelines, connectors, and plugins

Azure Data Explorer prend actuellement en charge ce qui suit :Azure Data Explorer currently supports:

Ingestion à l'aide des services d'intégrationIngestion using integration services

Ingestion par programmationProgrammatic ingestion

L’Explorateur de données Azure fournit des SDK qui peuvent être utilisées pour l’ingestion de données et les requêtes.Azure Data Explorer provides SDKs that can be used for query and data ingestion. L’ingestion par programmation est optimisée afin de réduire les coûts d’ingestion, grâce à la réduction des transactions de stockage pendant et après le processus d’ingestion.Programmatic ingestion is optimized for reducing ingestion costs (COGs), by minimizing storage transactions during and following the ingestion process.

SDK et projets open source disponibles :Available SDKs and open-source projects:

Kusto propose des SDK client qui peuvent être utilisés pour ingérer et interroger des données avec :Kusto offers client SDK that can be used to ingest and query data with:

Techniques d’ingestion par programmation :Programmatic ingestion techniques:

  • Ingestion de données par le biais du service de gestion de données Explorateur de données Azure (ingestion à débit élevé et fiable) :Ingesting data through the Azure Data Explorer data management service (high-throughput and reliable ingestion):

    Ingestion par lot (fournie par le SDK) : le client charge les données vers le stockage d’objets blob Azure (désigné par le service de gestion des données Explorateur de données Azure) et envoie une notification à une file d’attente Azure.Batch ingestion (provided by SDK): the client uploads the data to Azure Blob storage (designated by the Azure Data Explorer data management service) and posts a notification to an Azure Queue. L’ingestion par lot est la technique recommandée pour une ingestion des données à volume élevé, fiable et peu coûteuse.Batch ingestion is the recommended technique for high-volume, reliable, and cheap data ingestion.

  • Ingestion des données directement dans le moteur de l’Explorateur de données Azure (approche la plus appropriée pour l’exploration et le prototypage) :Ingesting data directly into the Azure Data Explorer engine (most appropriate for exploration and prototyping):

    • Ingestion inline : commande de contrôle (.ingest inline) contenant des données intrabande et destinée aux tests ad hoc.Inline ingestion: control command (.ingest inline) containing in-band data is intended for ad hoc testing purposes.

    • Ingestion à partir de requête : commande de contrôle (.set, .set-or-append, .set-or-replace) qui pointe vers des résultats de requête et qui sert à générer des rapports ou de petites tables temporaires.Ingest from query: control command (.set, .set-or-append, .set-or-replace) that points to query results is used for generating reports or small temporary tables.

    • Ingestion à partir du stockage : commande de contrôle (.ingest into) avec données stockées en externe (par exemple, Stockage Blob Azure) qui permet d’effectuer une ingestion en bloc efficace des données.Ingest from storage: control command (.ingest into) with data stored externally (for example, Azure Blob Storage) allows efficient bulk ingestion of data.

Latence des différentes méthodes :Latency of different methods:

MéthodeMethod LatenceLatency
Ingestion inlineInline ingestion ImmédiatImmediate
Ingestion à partir de requêteIngest from query Temps de requête + temps de traitementQuery time + processing time
Ingestion à partir du stockageIngest from storage Temps de téléchargement + temps de traitementDownload time + processing time
Ingestion en file d’attenteQueued ingestion Temps de traitement par lot + temps de traitementBatching time + processing time

Le temps de traitement dépend de la taille des données (il est inférieur à quelques secondes).Processing time depends on the data size, less than a few seconds. Le temps de traitement par lot par défaut est de cinq minutes.Batching time defaults to 5 minutes.

Choix de la méthode d’ingestion la plus appropriéeChoosing the most appropriate ingestion method

Avant de commencer à ingérer les données, vous devez vous poser les questions suivantes.Before you start to ingest data, you should ask yourself the following questions.

  • Où mes données résident-elles ?Where does my data reside?
  • Quel est le format des données, et peut-il être modifié ?What is the data format, and can it be changed?
  • Quels sont les champs obligatoires à interroger ?What are the required fields to be queried?
  • Quels sont la vélocité et le volume de données attendus ?What is the expected data volume and velocity?
  • Combien de types d’événements sont attendus (correspondant au nombre de tables) ?How many event types are expected (reflected as the number of tables)?
  • Quelle est la fréquence de changement attendue du schéma d’événement ?How often is the event schema expected to change?
  • Combien de nœuds les données génèreront-elles ?How many nodes will generate the data?
  • Quel est le système d’exploitation source ?What is the source OS?
  • Quelles sont les exigences de latence ?What are the latency requirements?
  • Peut-on utiliser l’un des pipelines d’ingestion managés existants ?Can one of the existing managed ingestion pipelines be used?

Pour les organisations disposant d’une infrastructure existante basée sur un service de messagerie tel qu’Event Hub et IoT Hub, l’utilisation d’un connecteur est probablement la solution la plus appropriée.For organizations with an existing infrastructure that are based on a messaging service like Event Hub and IoT Hub, using a connector is likely the most appropriate solution. L’ingestion en file d’attente convient aux grands volumes de données.Queued ingestion is appropriate for large data volumes.

Formats de données pris en chargeSupported data formats

Pour toutes les méthodes d’ingestion autres que l’ingestion à partir de requête, mettez en forme les données afin qu’Azure Data Explorer puisse les analyser.For all ingestion methods other than ingest from query, format the data so that Azure Data Explorer can parse it.

  • les formats de données pris en charge sont : TXT, CSV, TSV, TSVE, PSV, SCSV, SOH, JSON (séparé par une ligne, multiligne), Avro et Parquet.The supported data formats are: TXT, CSV, TSV, TSVE, PSV, SCSV, SOH, JSON (line-separated, multi-line), Avro, and Parquet.
  • Prend en charge la compression ZIP et GZIP.Supports ZIP and GZIP compression.

Notes

Quand des données sont ingérées, les types de données sont déduits d’après les colonnes de la table cible.When data is being ingested, data types are inferred based on the target table columns. Si un enregistrement est incomplet ou un champ ne peut pas être analysé en tant que type de données requis, les colonnes correspondantes de la table sont remplies avec des valeurs null.If a record is incomplete or a field cannot be parsed as the required data type, the corresponding table columns will be populated with null values.

Restrictions et recommandations d’ingestionIngestion recommendations and limitations

  • La stratégie de rétention effective des données ingérées est dérivée de la stratégie de rétention de la base de données.The effective retention policy of ingested data is derived from the database's retention policy. Pour plus d’informations, consultez Stratégie de rétention.See retention policy for details. L’ingestion des données nécessite l’autorisation Ingéreur de table ou Ingéreur de base de données.Ingesting data requires Table ingestor or Database ingestor permissions.
  • L’ingestion prend en charge une taille de fichier maximale de 5 Go.Ingestion supports a maximum file size of 5 GB. Nous vous recommandons d’ingérer des fichiers entre 100 Mo et 1 Go.The recommendation is to ingest files between 100 MB and 1 GB.

Mappage de schémaSchema mapping

Le mappage de schéma permet de lier des champs de données sources à des colonnes de table de destination.Schema mapping helps bind source data fields to destination table columns.

  • Le mappage CSV (facultatif) fonctionne avec tous les formats basés sur un ordinal.CSV Mapping (optional) works with all ordinal-based formats. Il peut être effectué à l’aide du paramètre de commande d’ingestion ou précréé sur la table et référencé à partir du paramètre de commande d’ingestion.It can be performed using the ingest command parameter or pre-created on the table and referenced from the ingest command parameter.
  • Le mappage JSON (obligatoire) et le mappage Avro (obligatoire) peuvent être effectués à l'aide du paramètre de commande ingest.JSON Mapping (mandatory) and Avro mapping (mandatory) can be performed using the ingest command parameter. Ils peuvent également être pré-créés sur la table et référencés à partir du paramètre de commande ingest.They can also be pre-created on the table and referenced from the ingest command parameter.

Étapes suivantesNext steps