Partager via


Meilleures pratiques en matière d'écriture de fichiers dans un lac de données à l'aide de flux de données

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Si vous débutez avec Azure Data Factory, consultez Présentation d’Azure Data Factory.

Ce tutoriel présente les meilleures pratiques à suivre lors de l'écriture de fichiers dans ADLS Gen2 ou Stockage Blob Azure à l'aide de flux de données. Vous devez avoir accès à un compte Stockage Blob Azure ou Azure Data Lake Store Gen2 pour lire un fichier Parquet, puis stocker les résultats dans des dossiers.

Prérequis

  • Abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte Azure gratuit avant de commencer.
  • Compte Azure Storage. Vous utilisez le stockage ADLS comme magasins de données source et récepteur. Si vous ne possédez pas de compte de stockage, consultez l’article Créer un compte de stockage Azure pour découvrir comment en créer un.

Les étapes de ce tutoriel supposent que vous avez

Créer une fabrique de données

Au cours de cette étape, vous allez créer une fabrique de données et ouvrir l’interface utilisateur de Data Factory afin de créer un pipeline dans la fabrique de données.

  1. Ouvrez Microsoft Edge ou Google Chrome. L’interface utilisateur de Data Factory n’est actuellement prise en charge que par les navigateurs web Microsoft Edge et Google Chrome.

  2. Dans le menu de gauche, sélectionnez Créer une ressource>Intégration>Data Factory.

  3. Sur la page Nouvelle fabrique de données, entrez ADFTutorialDataFactory dans le champ Nom.

  4. Sélectionnez l’abonnement Azure dans lequel vous voulez créer la fabrique de données.

  5. Pour Groupe de ressources, réalisez l’une des opérations suivantes :

    a. Sélectionnez Utiliser l’existant, puis sélectionnez un groupe de ressources existant dans la liste déroulante.

    b. Sélectionnez Créer, puis entrez le nom d'un groupe de ressources. Pour en savoir plus sur les groupes de ressources, consultez Utiliser des groupes de ressources pour gérer vos ressources Azure.

  6. Sous Version, sélectionnez V2.

  7. Sous Emplacement, sélectionnez l’emplacement de la fabrique de données. Seuls les emplacements pris en charge sont affichés dans la liste déroulante. Les magasins de données (comme le Stockage Azure et SQL Database) et les services de calcul (comme Azure HDInsight) utilisés par la fabrique de données peuvent se trouver dans d’autres régions.

  8. Sélectionnez Create (Créer).

  9. Une fois la création terminée, vous voyez apparaître l’avis dans le centre de notifications. Sélectionnez Accéder à la ressource pour accéder à la page de la fabrique de données.

  10. Sélectionnez Créer et surveiller pour lancer l’interface utilisateur de Data Factory dans un onglet séparé.

Créer un pipeline avec une activité de flux de données

Au cours de cette étape, vous allez créer un pipeline qui contient une activité de flux de données.

  1. Dans la page d’accueil Azure Data Factory, sélectionnez Orchestrer.

    Screenshot that shows the data factory home page with the Orchestrate button highlighted.

  2. Dans l’onglet Général du pipeline, entrez DeltaLake pour le nom du pipeline.

  3. Dans la barre supérieure de la fabrique, faites glisser le curseur Débogage du flux de données. Le mode de débogage permet un test interactif de la logique de transformation sur un cluster Spark activé. Le préchauffage des clusters de flux de données nécessite 5 à 7 minutes et il est recommandé aux utilisateurs d’activer d’abord le débogage s’ils envisagent d’effectuer un développement de flux de données. Pour plus d’informations, consultez Mode de débogage.

    Data Flow Activity

  4. Dans le volet Activités, développez la section Déplacer et transformer. Faites glisser et déposez l’activité Flux de données à partir du volet vers le canevas du pipeline.

    Screenshot that shows the pipeline canvas where you can drop the Data Flow activity.

  5. Dans la fenêtre contextuelle Ajout de flux de données, sélectionnez Créer un flux de données, puis nommez votre flux de données DeltaLake. Une fois que vous avez fini, cliquez sur Terminer.

    Screenshot that shows where you name your data flow when you create a new data flow.

Générer une logique de transformation dans le canevas de flux de données

Vous prendrez n'importe quelle donnée source (dans ce tutoriel, nous utiliserons un fichier Parquet) et utiliserez une transformation du récepteur pour déposer les données au format Parquet en utilisant les mécanismes les plus efficaces pour le processus ETL du lac de données.

Final flow

Objectifs du tutoriel

  1. Choisissez l’un de vos jeux de données sources dans un nouveau flux de données 1. Utiliser des flux de données pour partitionner efficacement votre jeu de données récepteur
  2. Déposer vos données partitionnées dans les dossiers du lac ADLS Gen2

Démarrer à partir d’un canevas de flux de données vide

Commençons par configurer l'environnement de flux de données correspondant à chacun des mécanismes décrits ci-dessous pour les données déposées dans ADLS Gen2.

  1. Cliquez sur la transformation de la source.
  2. Cliquez sur le nouveau bouton en regard du jeu de données dans le panneau inférieur.
  3. Choisissez un jeu de données ou créez-en un nouveau. Pour cette démonstration, nous allons utiliser un jeu de données Parquet nommé Données utilisateur.
  4. Ajoutez une transformation de colonne dérivée. Nous l'utiliserons pour définir dynamiquement les noms de dossier de votre choix.
  5. Ajoutez une transformation du récepteur.

Sortie de dossiers hiérarchiques

Il est très courant d'utiliser des valeurs uniques disponibles dans les données pour créer des hiérarchies de dossiers et partitionner les données au sein du lac. Il s'agit d'un moyen optimal d'organiser et de traiter les données au sein du lac et dans Spark (le moteur de calcul qui est derrière les flux de données). Cela dit, ce type d'organisation de votre production aura un léger coût en termes de performances. Attendez-vous à une légère diminution des performances globales du pipeline si vous utilisez ce mécanisme dans le récepteur.

  1. Revenez au concepteur de flux de données et modifiez le flux de données créé ci-dessus. Cliquez sur la transformation du récepteur.
  2. Cliquez sur Optimiser > Définir le partitionnement > Clé.
  3. Sélectionnez la ou les colonnes que vous souhaitez utiliser pour définir votre structure hiérarchique de dossiers.
  4. Notez que l'exemple ci-dessous utilise l'année et le mois comme colonnes pour la dénomination des dossiers. Les résultats seront des dossiers au format releaseyear=1990/month=8.
  5. Lorsque vous accédez aux partitions de données au sein d'une source de flux de données, vous pointez uniquement vers le dossier de niveau supérieur situé au dessus de releaseyear et utilisez un modèle de caractère générique pour chaque dossier suivant, par exemple : **/**/*.parquet
  6. Pour manipuler les valeurs des données, ou même si vous devez générer des valeurs synthétiques pour les noms de dossier, utilisez la transformation de colonne dérivée afin de créer les valeurs que vous souhaitez utiliser dans vos noms de dossier.

Key partitioning

Nommer le dossier d'après les valeurs des données

Name folder as column data est une technique de récepteur légèrement plus performante pour les données de lac utilisant ADLS Gen2, mais elle n'offre pas le même avantage que le partitionnement clé/valeur. Alors que le style de partitionnement des clés de la structure hiérarchique vous permettra de traiter plus facilement les tranches de données, cette technique est une structure de dossiers aplatis qui permet d'écrire les données plus rapidement.

  1. Revenez au concepteur de flux de données et modifiez le flux de données créé ci-dessus. Cliquez sur la transformation du récepteur.
  2. Cliquez sur Optimiser > Définir le partitionnement > Utiliser le partitionnement actuel.
  3. Cliquez sur Paramètres > Nommer le dossier d'après les données de la colonne.
  4. Sélectionnez la colonne que vous souhaitez utiliser pour générer les noms de dossier.
  5. Pour manipuler les valeurs des données, ou même si vous devez générer des valeurs synthétiques pour les noms de dossier, utilisez la transformation de colonne dérivée afin de créer les valeurs que vous souhaitez utiliser dans vos noms de dossier.

Folder option

Nommer le fichier d'après les valeurs des données

Les techniques répertoriées dans les tutoriels ci-dessus sont de bons cas d'usage pour créer des catégories de dossiers dans votre lac de données. Le schéma de dénomination de fichier par défaut utilisé par ces techniques consiste à utiliser l'ID de travail de l'exécuteur Spark. Parfois, vous pouvez souhaiter définir le nom du fichier de sortie dans un récepteur de texte de flux de données. Cette technique est uniquement suggérée pour les petits fichiers. Le processus de fusion des fichiers de partition en un seul fichier de sortie est un processus de longue haleine.

  1. Revenez au concepteur de flux de données et modifiez le flux de données créé ci-dessus. Cliquez sur la transformation du récepteur.
  2. Cliquez sur Optimiser > Définir le partitionnement > Partition unique. Cette exigence de partition unique crée un goulot d'étranglement dans le processus d'exécution lors de la fusion des fichiers. Cette option est uniquement recommandée pour les petits fichiers.
  3. Cliquez sur Paramètres > Nommer le fichier d'après les données de la colonne.
  4. Sélectionnez la colonne que vous souhaitez utiliser pour générer les noms de fichier.
  5. Pour manipuler les valeurs des données, ou même si vous devez générer des valeurs synthétiques pour les noms de fichier, utilisez la transformation de colonne dérivée afin de créer les valeurs que vous souhaitez utiliser dans vos noms de fichier.

Découvrez-en plus sur les récepteurs de flux de données.