Share via


Intégrer Azure Data Explorer avec Azure Data Factory

Azure Data Factory (ADF) est un service d’intégration de données basé sur le cloud qui vous permet d’intégrer différents magasins de données et d’effectuer des activités sur les données. Azure Data Factory (ADF) vous permet de créer des flux de travail basés sur les données afin d’orchestrer et d’automatiser le déplacement et la transformation des données. Azure Data Explorer est l’un des magasins de données pris en charge dans Azure Data Factory.

Activités Azure Data Factory pour Azure Data Explorer

Diverses intégrations à Azure Data Factory sont disponibles pour les utilisateurs d’Azure Data Explorer :

Activité de copie

L’activité de copie d’Azure Data Factory est utilisée pour transférer des données entre les magasins de données. Azure Data Explorer est pris en charge en tant que source (les données sont copiées depuis Azure Data Explorer vers n’importe quel magasin de données pris en charge) et en tant que récepteur (les données sont copiées depuis n’importe quel magasin de données pris en charge vers Azure Data Explorer). Pour plus d’informations, consultez Copier des données vers ou depuis Azure Data Explorer à l’aide d’Azure Data Factory. Pour obtenir une procédure détaillée, consultez Charger des données de Azure Data Factory dans Azure Data Explorer. Azure Data Explorer est pris en charge par Azure IR (Integration Runtime), utilisé lorsque les données sont copiées dans Azure et dans le runtime d’intégration auto-hébergé, lors de la copie de données depuis/vers des magasins de données situés localement ou dans un réseau avec contrôle d’accès, tel qu’un réseau virtuel Azure. Pour plus d’informations, consultez l’ir à utiliser.

Conseil

Lors de l’utilisation de l’activité de copie et de la création d’un service lié ou d’un jeu de données, sélectionnez le magasin de données Azure Data Explorer (Kusto) et non l’ancien magasin de données Kusto.

Activité de recherche

L’activité de recherche est utilisée pour exécuter des requêtes sur Azure Data Explorer. Le résultat de la requête est retourné en tant que sortie de l’activité de recherche et peut être utilisé dans l’activité suivante dans le pipeline, comme décrit dans la documentation relative à la Recherche ADF.

En plus de la limite de taille de réponse de 5 000 lignes et 2 Mo, l’activité a également une limite de délai d’expiration de requête de 1 heure.

Activité de commande

L’activité Command permet l’exécution de commandes de gestion Azure Data Explorer. Contrairement aux requêtes, les commandes de gestion peuvent potentiellement modifier des données ou des métadonnées. Certaines commandes de gestion sont destinées à ingérer des données dans Azure Data Explorer, à l’aide de commandes telles que .ingestou .set-or-append) ou à copier des données d’Azure Data Explorer vers des magasins de données externes à l’aide de commandes telles que .export. Pour obtenir une procédure détaillée de l’activité de commande, consultez Utiliser Azure Data Factory’activité de commande pour exécuter des commandes de gestion Azure Data Explorer. L’utilisation d’une commande de gestion pour copier des données peut parfois être une option plus rapide et moins coûteuse que la activité Copy. Pour déterminer quand utiliser l’activité de commande et l’activité de copie, consultez Choisir entre les activités de copie et de commande lors de la copie de données.

Copier en bloc à partir d’un modèle de base de données

Le pipeline Copier en bloc à partir d’une base de données vers Azure Data Explorer à l’aide du modèle Azure Data Factory est un pipeline Azure Data Factory prédéfini. Le modèle est utilisé pour créer un grand nombre de pipelines par base de données ou par table pour accélérer la copie de données.

Mappage des flux de données

Les flux de données de mappage Azure Data Factory sont des transformations de données visuellement conçues qui permettent aux ingénieurs de données de développer une logique de transformation de données graphique sans écrire de code. Pour créer un flux de données et ingérer des données dans Azure Data Explorer, appliquez la méthode suivante :

  1. Créez le flux de données de mappage.
  2. Exportez les données dans Objet blob Azure.
  3. Définissez Event Grid ou l’activité de copie ADF pour ingérer les données dans Azure Data Explorer.

Choisir entre les activités de copie et de commande Azure Data Explorer lors de la copie de données

Cette section vous aide à sélectionner l’activité appropriée pour vos besoins de copie de données.

Lorsque vous copiez des données depuis ou vers Azure Data Explorer, deux options sont disponibles dans Azure Data Factory :

  • Activité de copie.
  • Activité Azure Data Explorer Command, qui exécute l’une des commandes de gestion qui transfèrent des données dans Azure Data Explorer.

Copier des données depuis Azure Data Explorer

Vous pouvez copier des données depuis Azure Data Explorer à l’aide de l’activité de copie ou de la commande .export. La commande .export exécute une requête, puis exporte les résultats de la requête.

Consultez le tableau suivant pour obtenir une comparaison entre l’activité de copie et la commande .export pour la copie de données depuis Azure Data Explorer.

Activité de copie commande .export
Description du flux ADF exécute une requête sur Kusto, traite le résultat et l’envoie au magasin de données cible.
(Magasin de données du récepteur Azure Data Explorer > ADF>)
ADF envoie une commande de .export gestion à Azure Data Explorer, qui exécute la commande et envoie les données directement au magasin de données cible.
(** Magasin de données du récepteur Azure Data Explorer>**)
Magasins de données cibles pris en charge Un large éventail de magasins de données pris en charge ADLSv2, Objet blob Azure, SQL Database
Performances Centralisé
  • Distribué (par défaut), exportation des données à partir de plusieurs nœuds simultanément
  • Plus rapide et efficace en termes du coût des marchandises vendues.
Limites du serveur Les limites de requête peuvent être étendues/désactivées. Par défaut, les requêtes ADF comportent :
  • Une limite de taille de 500 000 enregistrements ou 64 Mo.
  • Une limite de temps de 10 minutes.
  • noTruncation défini sur False.
Par défaut, étend ou désactive les limites de requête :
  • Les limites de taille sont désactivées.
  • Le délai d’expiration du serveur est étendu à 1 heure.
  • MaxMemoryConsumptionPerIterator et MaxMemoryConsumptionPerQueryPerNode sont étendus au maximum (5 Go, TotalPhysicalMemory/2).

Conseil

Si votre destination de copie est l’un des magasins de données pris en charge par la commande .export, et si aucune des fonctionnalités de l’activité de copie n’est essentielle à vos besoins, sélectionnez la commande .export.

Copier des données dans Azure Data Explorer

Vous pouvez copier des données dans Azure Data Explorer à l’aide de l’activité de copie ou de commandes d’ingestion, telles que Ingestion à partir d’une requête (.set-or-append, .set-or-replace, .set, .replace) et Ingestion à partir du stockage (.ingest).

Consultez le tableau suivant pour obtenir une comparaison entre l’activité de copie et les commandes d’ingestion pour la copie de données dans Azure Data Explorer.

Activité de copie Ingestion à partir d’une requête
.set-or-append / .set-or-replace / .set / .replace
Ingestion à partir du stockage
.ingest
Description du flux ADF récupère les données du magasin de données source, les convertit au format tabulaire et effectue les modifications de mappage de schéma requises. ADF charge ensuite les données dans des objets blob Azure, les divise en blocs, puis télécharge les objets blob pour les ingérer dans la table Azure Data Explorer.
(Stockage de données > source Objets blob > Azure ADF > Azure Data Explorer)
Ces commandes peuvent exécuter une requête ou une .show commande et ingérer les résultats de la requête dans une table (Azure Data Explorer > Azure Data Explorer). Cette commande ingère les données dans une table en « extrayant » les données d’un ou de plusieurs artefacts de stockage cloud.
Magasins de données sources pris en charge variété d’options ADLS Gen 2, Azure Blob, SQL (à l’aide du plug-in sql_request(), Azure Cosmos DB (à l’aide du plug-in cosmosdb_sql_request) et tout autre magasin de données qui fournit des API HTTP ou Python. Filesystem, Stockage Blob Azure, ADLS Gen 1, ADLS Gen 2
Performances Les ingestions sont mises en file d’attente et gérées, ce qui garantit des ingestions de petite taille ainsi qu’une haute disponibilité en fournissant une gestion de l’équilibrage de charge, des nouvelles tentatives et des erreurs.
  • Ces commandes n’ont pas été conçues pour l’importation de données volumineuses.
  • Fonctionne comme prévu et plus économique. Mais utilisez l’activité de copie pour les scénarios de production et lorsque le débit du trafic et les tailles de données sont importants.
Limites du serveur
  • Aucune limite de taille.
  • Limite de délai d’attente maximale : une heure par objet blob ingéré.
  • Il n’existe qu’une limite de taille sur la partie de la requête, qui peut être ignorée en spécifiant noTruncation=true.
  • Limite de délai d’attente maximale : une heure.
  • Aucune limite de taille.
  • Limite de délai d’attente maximale : une heure.

Conseil

  • Utilisez les commandes ingest from query lorsque vous copiez des données depuis ADF vers Azure Data Explorer.
  • Pour les jeux de données volumineux (>1 Go), utilisez le activité Copy.

Autorisations requises

Le tableau suivant répertorie les autorisations requises pour les différentes étapes de l’intégration avec Azure Data Factory.

Étape Opération Niveau minimal d’autorisations Notes
Créer un service lié Navigation de la base de données visionneuse de base de données
L’utilisateur connecté qui utilise ADF doit être autorisé à lire les métadonnées de la base de données.
L’utilisateur peut fournir le nom de la base de données manuellement.
Tester la connexion moniteur de base de données ou ingéreur de table
Le principal du service doit être autorisé à exécuter des commandes .show au niveau de la base de données ou l’ingestion au niveau de la table.
  • L’opération TestConnection vérifie la connexion au cluster, et non à la base de données. Elle peut s’effectuer correctement même si la base de données n’existe pas.
  • Les autorisations d’administrateur de table ne sont pas suffisantes.
Création d’un jeu de données Navigation de la table moniteur de base de données
L’utilisateur connecté qui utilise ADF doit être autorisé à exécuter des commandes .show au niveau de la base de données.
L’utilisateur peut fournir le nom de la table manuellement.
Création d’un jeu de données ou Activité de copie Aperçu des données visionneuse de base de données
Le principal du service doit être autorisé à lire les métadonnées de la base de données.
Importer un schéma visionneuse de base de données
Le principal du service doit être autorisé à lire les métadonnées de la base de données.
Quand Azure Data Explorer est la source d’une copie tabulaire vers tabulaire, ADF importe automatiquement le schéma, même si l’utilisateur n’a pas importé explicitement le schéma.
Azure Data Explorer en tant que récepteur Créer un mappage de colonnes par nom moniteur de base de données
Le principal du service doit être autorisé à exécuter des commandes .show au niveau de la base de données.
  • Toutes les opérations obligatoires fonctionnent avec l’ingesteur de table.
  • Certaines opérations facultatives peuvent échouer.
  • Créer un mappage CSV sur la table
  • Supprimer le mappage
ingéreur de table ou administrateur de base de données
Le principal du service doit être autorisé à apporter des modifications à une table.
Réception de données ingéreur de table ou administrateur de base de données
Le principal du service doit être autorisé à apporter des modifications à une table.
Azure Data Explorer en tant que source Exécuter la requête visionneuse de base de données
Le principal du service doit être autorisé à lire les métadonnées de la base de données.
Commande Kusto En fonction du niveau d’autorisation de chaque commande.

Performances

Si Azure Data Explorer est la source et que vous utilisez l’activité de recherche, de copie ou de commande qui contient une requête, consultez les meilleures pratiques relatives aux requêtes pour obtenir des informations sur les performances et la documentation ADF pour l’activité de copie.

Cette section aborde l’utilisation de l’activité de copie lorsqu’Azure Data Explorer est le récepteur. Le débit estimé pour le récepteur Azure Data Explorer est de 11 à 13 Mbits/s. Le tableau suivant décrit les paramètres qui affectent les performances du récepteur Azure Data Explorer.

Paramètre Notes
Proximité géographique des composants Placez tous les composants dans la même région :
  • magasins de données source et récepteur.
  • Runtime d’intégration ADF.
  • Votre cluster Azure Data Explorer.
Veillez à placer au moins le runtime d’intégration dans la même région que votre cluster Azure Data Explorer.
Nombre d’unités d’intégration de données Une machine virtuelle pour quatre DIU utilisées par ADF.
L’augmentation du nombre de DIU est utile uniquement si votre source est un magasin basé sur des fichiers avec plusieurs fichiers. Chaque machine virtuelle traitera ensuite un fichier différent en parallèle. Par conséquent, la copie d’un seul fichier volumineux a une latence plus élevée que la copie de plusieurs fichiers plus petits.
Montant et référence SKU de votre cluster Azure Data Explorer Le nombre élevé de nœuds Azure Data Explorer augmente le temps de traitement de l’ingestion. L’utilisation de références SKU de développement limite sérieusement les performances
Parallélisme Pour copier une grande quantité de données à partir d’une base de données, partitionnez vos données, puis utilisez une boucle ForEach qui copie chaque partition en parallèle ou utilisez le modèle De copie en bloc de la base de données vers Azure Data Explorer Modèle. Remarque : Paramètres>Degré de parallélisme dans l’activité de copie n’est pas pertinent pour Azure Data Explorer.
Complexité du traitement des données La latence varie selon le format du fichier source, le mappage de colonnes et la compression.
La machine virtuelle exécutant votre runtime d’intégration
  • Pour la copie Azure, les machines virtuelles ADF et les références SKU de machine virtuelle ne peuvent pas être modifiées.
  • Pour la copie locale vers Azure, déterminez que la machine virtuelle hébergeant votre ir auto-hébergé est suffisamment forte.

Astuces et écueils courants

Surveiller la progression des activités

  • Lors de la surveillance de la progression de l’activité, la propriété Data written peut être supérieure à la propriété Data read , car data read est calculée en fonction de la taille du fichier binaire, tandis que les données écrites sont calculées en fonction de la taille en mémoire, une fois les données désérialisées et décompressées.

  • Lorsque vous surveillez la progression des activités, vous pouvez voir que les données sont écrites dans le récepteur Azure Data Explorer. Lorsque vous interrogez la table Azure Data Explorer, vous constatez que les données ne sont pas arrivées. C’est parce qu’il existe deux étapes lors de la copie vers Azure Data Explorer.

    • La première étape lit les données sources, les divise en blocs de 900 Mo et charge chaque bloc dans un objet blob Azure. La première étape s’affiche sur la vue de progression de l’activité ADF.
    • La deuxième étape commence une fois que toutes les données ont été chargées dans des objets blob Azure. Les nœuds de votre cluster téléchargent les objets blob et ingèrent les données dans la table récepteur. Les données sont ensuite affichées dans votre table Azure Data Explorer.

Échec de l’ingestion des fichiers CSV en raison d’un d’échappement incorrect

Azure Data Explorer exige que les fichiers CSV soient conformes à la norme RFC 4180. Les exigences sont les suivantes :

  • Les champs qui contiennent des caractères qui requièrent un échappement (comme le double guillemet droit et le caractère de nouvelle ligne) doivent commencer et se terminer par un " , sans espace blanc. Tous les caractères de " compris dans le champ sont échappés à l’aide d’un double caractère " ( "" ). Par exemple, "Hello, ""World""" est un fichier CSV valide avec un seul enregistrement présentant une colonne ou un champ unique avec le contenu Hello, "Hello, "World" .
  • Tous les enregistrements du fichier doivent avoir le même nombre de colonnes et de champs.

Azure Data Factory autorise le la barre oblique inverse comme caractère d’échappement. Si vous générez un fichier CSV avec une barre oblique inverse avec Azure Data Factory, l’ingestion du fichier dans Azure Data Explorer échoue.

Exemple

Les valeurs de texte suivantes : Hello, "World"
ABC DEF
"ABC\D"EF
"ABC DEF

Doivent apparaître dans un fichier CSV correct de la manière suivante : "Hello, ""World"""
"ABC DEF"
"""ABC\D""EF"
"""ABC DEF"

En utilisant le caractère d’échappement par défaut (barre oblique inverse), le fichier CSV suivant ne fonctionne pas avec Azure Data Explorer : "Hello, "World""
"ABC DEF"
""ABC\D"EF"
""ABC DEF"

Objets JSON imbriqués

Lorsque vous copiez un fichier JSON dans Azure Data Explorer, notez les points suivants :

  • Les tableaux ne sont pas pris en charge.
  • Si votre structure JSON contient des types de données d’objet, Azure Data Factory aplatit les éléments enfants de l’objet et tente de mapper chaque élément enfant sur une colonne différente dans votre table Azure Data Explorer. Si vous souhaitez que la totalité de l’élément de l’objet soit mappée sur une seule colonne dans Azure Data Explorer :
    • Ingérez la ligne JSON entière dans une seule colonne dynamique dans Azure Data Explorer.
    • Modifiez manuellement la définition du pipeline à l’aide de l’éditeur JSON d’Azure Data Factory. Dans Mappages
      • Supprimez les mappages multiples créés pour chaque élément enfant et ajoutez un mappage unique qui associe votre type d’objet à votre colonne de table.
      • Après le crochet fermant, ajoutez une virgule suivie de :
        "mapComplexValuesToString": true.

Spécification de propriétés supplémentaires lors de la copie vers Azure Data Explorer

Vous pouvez ajouter des propriétés d’ingestion supplémentaires en les spécifiant dans l’activité de copie dans le pipeline.

Pour ajouter des propriétés

  1. Dans Azure Data Factory, sélectionnez l’outil crayon Auteur.

  2. Sous Pipeline, sélectionnez le pipeline dans lequel vous souhaitez ajouter des propriétés d’ingestion supplémentaires.

  3. Dans le canevas Activités, sélectionnez l’activité Copier des données.

  4. Dans les détails de l’activité, sélectionnez Récepteur, puis développez Propriétés supplémentaires.

  5. Sélectionnez Nouveau, choisissez Ajouter un nœud ou Ajouter un tableau en fonction des besoins, puis spécifiez le nom et la valeur de la propriété d’ingestion. Répétez cette étape pour ajouter d’autres propriétés.

  6. Une fois terminé, enregistrez et publiez votre pipeline.

Étape suivante