Lab 10 | Créer un pipeline de données dans Azure Synapse Analytique
Gonzague Ducos
Dans cet exercice, vous allez charger des données dans un pool SQL dédié à l’aide d’un pipeline dans Azure Synapse Analytique Explorer. Le pipeline encapsule un flux de données qui charge les données produit dans une table d’un entrepôt de données.
dans lequel vous disposez d’un accès de niveau administratif.
Approvisionner un espace de travail Azure Synapse Analytique
Vous aurez besoin d’un espace de travail Azure Synapse Analytique avec accès au stockage du lac de données et d’un pool SQL dédié hébergeant un entrepôt de données relationnelles.
Dans cet exercice, vous allez utiliser une combinaison d’un script PowerShell et d’un modèle ARM pour provisionner un espace de travail Azure Synapse Analytique.
Utilisez le bouton [>_] à droite de la barre de recherche en haut de la page pour créer un Cloud Shell dans le portail Azure, en sélectionnant un environnement PowerShell et en créant un stockage si vous y êtes invité. Cloud Shell fournit une interface de ligne de commande dans un volet situé au bas du portail Azure, comme illustré ici :
Remarque : Si vous avez déjà créé un Cloud Shell qui utilise un environnement Bash, utilisez le menu déroulant en haut à gauche du volet Cloud Shell pour le remplacer par PowerShell.
Notez que Cloud Shell peut être redimensionné en faisant glisser la barre de séparation en haut du volet ou en utilisant les icônes —, ◻ et X en haut à droite du volet pour réduire, agrandir et fermer le volet. Pour plus d’informations sur l’utilisation d’Azure Cloud Shell, consultez la
Une fois le référentiel cloné, entrez les commandes suivantes pour passer au dossier de cet exercice, puis exécutez le script setup.ps1 qu’il contient :
cd dp-203/Allfiles/labs/10
./setup.ps1
Si vous y êtes invité, choisissez l’abonnement que vous souhaitez utiliser (cela ne se produira que si vous avez accès à plusieurs abonnements Azure).
Lorsque vous y êtes invité, entrez un mot de passe approprié à définir pour votre pool SQL Azure Synapse.
Remarque : N’oubliez pas ce mot de passe !
Attendez que le script soit terminé - cela prend généralement environ 10 minutes, mais dans certains cas, cela peut prendre plus de temps. Pendant que vous attendez, consultez l’article
Afficher les magasins de données source et de destination
Les données sources de cet exercice sont un fichier texte contenant des données sur le produit. La destination est une table dans un pool SQL dédié. Votre objectif est de créer un pipeline qui encapsule un flux de données dans lequel les données produit du fichier sont chargées dans la table. l’insertion de nouveaux produits et la mise à jour des produits existants.
Une fois le script terminé, dans le portail Azure, accédez au groupe de ressources dp203-xxxxxxx qu’il a créé, puis sélectionnez votre espace de travail Synapse.
Dans la page Vue d’ensemble de votre espace de travail Synapse, dans la carte Ouvrir Synapse Studio, sélectionnez Ouvrir pour ouvrir Synapse Studio dans un nouvel onglet du navigateur ; Connectez-vous si vous y êtes invité.
Sur le côté gauche de Synapse Studio, utilisez l’icône ›› pour développer le menu, ce qui révèle les différentes pages de Synapse Studio que vous utiliserez pour gérer les ressources et effectuer des tâches d’analytique de données.
Sur la page Gérer, sous l’onglet Pools SQL, sélectionnez la ligne du pool SQL dédié sql xxxxxxx et utilisez son icône ▷ pour le démarrer. confirmer que vous souhaitez le reprendre lorsque vous y êtes invité.
La reprise de la piscine peut prendre quelques minutes. Vous pouvez utiliser le bouton ↻ Actualiser pour vérifier périodiquement son état. L’état s’affichera comme En ligne lorsqu’il sera prêt. Pendant que vous attendez, passez aux étapes ci-dessous pour afficher les données sources.
Dans la page Données, affichez l’onglet Lié et vérifiez que votre espace de travail inclut un lien vers votre compte de stockage Azure Data Lake Storage Gen2, qui doit avoir un nom similaire à synapsexxxxxxx (Principal - datalakexxxxxxx).
Développez votre compte de stockage et vérifiez qu’il contient un conteneur de système de fichiers nommé files (principal).
Sélectionnez le conteneur de fichiers et notez qu’il contient un dossier nommé data.
Ouvrez le dossier data et observez le fichier Product.csv qu’il contient.
Cliquez avec le bouton droit de la souris sur Product.csv et sélectionnez Aperçu pour afficher les données qu’il contient. Notez qu’il contient une ligne d’en-tête et quelques enregistrements de données produit.
Revenez à la page Gérer et assurez-vous que votre pool SQL dédié est maintenant en ligne. Si ce n’est pas le cas, attendez.
Sur la page Données, sous l’onglet Espace de travail, développez Base de données SQL, votre base de données sqlxxxxxxx (SQL) et ses tables.
Sélectionnez le dbo. Table DimProduct. Ensuite, dans son menu ..., sélectionnez Nouveau script SQL > Sélectionnez TOP 100 lignes ; qui exécutera une requête qui renvoie les données du produit à partir de la table - il ne doit y avoir qu’une seule ligne.
Mettre en place un pipeline
Pour charger les données du fichier texte dans la table de base de données, vous allez implémenter un pipeline Azure Synapse Analytique qui contient un flux de données encapsulant la logique pour ingérer les données du fichier texte, rechercher la colonne ProductKey de substitution pour les produits qui existent déjà dans la base de données, puis insérer ou mettre à jour des lignes dans la table en conséquence.
Créer un pipeline avec une activité de flux de données
Dans Synapse Studio, sélectionnez la page Intégrer. Ensuite, dans le menu +, sélectionnez Pipeline pour créer un nouveau pipeline.
Dans le volet Propriétés de votre nouveau pipeline, remplacez son nom Pipeline1 par Charger les donnees du produit. Utilisez ensuite le bouton Propriétés situé au-dessus du volet Propriétés pour le masquer.
Dans la sous-fenêtre Activités, développez Déplacer et transformer ; puis faites glisser un Flux de données vers l’aire de conception du pipeline, comme illustré ici :
Sous l’aire de conception du pipeline, dans l’onglet Général, définissez la propriété Nom sur LoadProducts.
Sous l’onglet Paramètres, en bas de la liste des paramètres, développez Gestion intermédiaire et définissez les paramètres de transfert suivants :
Service lié intermédiaire : sélectionnez le service lié synapsexxxxxxx-WorkspaceDefaultStorage.
Dossier de stockage intermédiaire : définissez Conteneur sur files et Annuaire sur stage_products.
Configurer le flux de données
En haut de l’onglet Paramètres du flux de données LoadProducts, pour la propriété Flux de données, sélectionnez + Nouveau.
Dans le volet Propriétés de la nouvelle surface de conception de flux de données qui s’ouvre, définissez le nom sur LoadProductsData, puis masquez le volet Propriétés. Le concepteur de flux de données doit ressembler à ceci :
Ajouter des sources
Dans l’aire de conception du flux de données, dans la liste déroulante Ajouter une source, sélectionnez Ajouter une source. Configurez ensuite les paramètres de la source comme suit :
Nom du flux de sortie : ProductsText
Description : Données textuelles des produits
Type de source : Jeu de données d’intégration
Jeu de données: ajoutez un + nouveau jeu de données avec les propriétés suivantes :
Type : Azure Datalake Storage Gen2
Format : Texte délimité
Nom : Products_Csv
Service lié : synapsexxxxxxx-WorkspaceDefaultStorage
Chemin d’accès au fichier : files/data/Product.csv
Première ligne comme en-tête : Sélectionné
Importer le schéma : à partir de la connexion/du magasin
Autoriser la dérive du schéma : Sélectionné
Dans l’onglet Projection de la nouvelle source ProductsText, définissez les types de données suivants :
ProductID : chaîne
ProductName : chaîne
Couleur : chaîne
Taille : chaîne
ListPrice : décimal
Discontinué : booléen
Ajoutez une deuxième source avec les propriétés suivantes :
Nom du flux de sortie : ProductTable
Description : Tableau des produits
Type de source : Jeu de données d’intégration
Jeu de données : ajoutez un + nouveau jeu de données avec les propriétés suivantes :
Type : Azure Synapse Analytique
Nom : DimProduct
Service lié : créez un nouveau service lié avec les propriétés suivantes :
Nom : Data_Warehouse
Description : pool SQL dédié
Se connecter via le runtime d’intégration : AutoResolveIntegrationRuntime
Version : Héritage
Méthode de sélection du compte À partir d’un abonnement Azure
Nom du serveur : synapsexxxxxxx (espace de travail Synapse)
Nom de la base de données : sqlxxxxxxx
Pool SQL : sqlxxxxxxxType d’authentification : Identité managée affectée par le système
Nom de la table : dbo. DimProduit
Importer le schéma : à partir de la connexion/du magasin
Autoriser la dérive du schéma : Sélectionné
Dans l’onglet Projection de la nouvelle source ProductTable, vérifiez que les types de données suivants sont définis :
ProductKey : entier
ProductAltKey : chaîne
ProductName : chaîne
Couleur : chaîne
Taille : chaîne
ListPrice : décimal
Discontinué : booléen
Vérifiez que votre flux de données contient deux sources, comme illustré ici :
Ajouter une recherche
Sélectionnez l’icône + en bas à droite de la source ProductsText et sélectionnez Rechercher.
Configurez les paramètres de recherche comme suit :
Nom du flux de sortie : MatchedProducts
Description : Données produit appariées
Flux principal : ProductText
Flux de recherche : ProductTable
Correspondance de plusieurs rangées : Non sélectionné
Correspond à : Dernière rangée
Conditions de tri : ProductKey croissant
Conditions de recherche : ProductID == ProductAltKey
Vérifiez que votre flux de données ressemble à ceci :
Loading…
La recherche renvoie un ensemble de colonnes des deux sources, formant essentiellement une jointure externe qui fait correspondre la colonne ProductID du fichier texte à la colonne ProductAltKey de la table de l’entrepôt de données. Lorsqu’un produit avec la clé alternative existe déjà dans la table, le jeu de données inclut les valeurs des deux sources. Lorsque le produit n’existe pas déjà dans l’entrepôt de données, le jeu de données contient des valeurs NULL pour les colonnes de la table.
Ajouter une ligne Alter
Sélectionnez l’icône + en bas à droite de la recherche MatchedProducts et sélectionnez Modification deligne.
Configurez les paramètres de modification de ligne comme suit :
Nom du flux de sortie : SetLoadAction
Description : Insérer un nouveau, mettre à jour un existant
Flux entrant : MatchedProducts
Conditions de modification de ligne : modifiez la condition existante et utilisez le bouton + pour ajouter une deuxième condition comme suit (notez que les expressions sont sensibles à la casse):
Insérer si : isNull(ProductKey)
Upsert si : not(isNull(ProductKey))
Vérifiez que le flux de données ressemble à ceci :
Loading…
L’étape Modifier la ligne configure le type d’action de chargement à effectuer pour chaque ligne. Lorsqu’il n’y a pas de ligne existante dans la table (la ProductKey est NULL), la ligne du fichier texte est insérée. Lorsqu’il existe déjà une ligne pour le produit, une mise à niveau est effectuée pour mettre à jour la ligne existante. Cette configuration applique essentiellement une mise à jour de dimension de type 1 à changement lent.
Ajouter un récepteur
Sélectionnez l’icône + en bas à droite de l’étape de modification de ligne SetLoadAction et sélectionnez Récepteur.
Configurez les propriétés du Récepteur comme suit :
Nom du flux de sortie : DimProductTable
Description : table Load DimProduct
Flux entrant : SetLoadAction
Type de récepteur : jeu de données d’intégration
Jeu de données : DimProduct
Autoriser la dérive du schéma : Sélectionné
Dans l’onglet Paramètres du nouvel évier DimProductTable, spécifiez les paramètres suivants :
Méthode de mise à jour : sélectionnez Autoriser l’insertion et Autoriser la mise à jour.
Colonnes clés : sélectionnez Liste de colonnes, puis sélectionnez la colonne ProductAltKey.
Dans l’onglet Mappages du nouveau récepteur DimProductTable, décochez la case Mappage automatique et spécifiez uniquement les mappages de colonnes suivants :
ProductID : ProductAltKey
ProductsText@ProductName : Nom du produit
ProductsText@Color : Couleur
ProductsText@Size : Taille
ProductsText@ListPrice : ListPrice
ProductsText@Discontinued : Discontinué
Vérifiez que votre flux de données ressemble à ceci :
Loading…
Déboguer le flux de données
Maintenant que vous avez créé un flux de données dans un pipeline, vous pouvez le déboguer avant de le publier.
En haut du concepteur de flux de données, activez le débogage du flux de données. Passez en revue la configuration par défaut et sélectionnez OK, puis attendez que le cluster de débogage démarre (ce qui peut prendre quelques minutes).
Dans le concepteur de flux de données, sélectionnez le récepteur DimProductTable et affichez son onglet Aperçu des données.
Utilisez le bouton ↻ Actualiser pour actualiser l’aperçu, ce qui a pour effet d’exécuter des données dans le flux de données pour le déboguer.
Examinez les données d’aperçu, en notant qu’elles indiquent une ligne upserted (pour le produit AR5381 existant), indiquée par un *+ icône; et dix rangées insérées, indiquées par une icône +.
Publier et exécuter le pipeline
Vous êtes maintenant prêt à publier et à exécuter le pipeline.
Utilisez le bouton Tout publier pour publier le pipeline (et toutes les autres ressources non enregistrées).
Une fois la publication terminée, fermez le volet de flux de données LoadProductsData et revenez au volet Charger les données de produit.
En haut du volet du concepteur de pipeline, dans le menu Ajouter un déclencheur, sélectionnez Déclencher maintenant. Sélectionnez ensuite OK pour confirmer que vous souhaitez exécuter le pipeline.
Remarque : Vous pouvez également créer un déclencheur pour exécuter le pipeline à une heure planifiée ou en réponse à un événement spécifique.
Lorsque le pipeline a commencé à s’exécuter, sur la page Surveiller, affichez l’onglet Exécutions du pipeline et vérifiez l’état du pipeline Charger les données du produit.
La réalisation du pipeline peut prendre cinq minutes ou plus. Vous pouvez utiliser le bouton ↻ Actualiser de la barre d’outils pour vérifier son état.
Une fois l’exécution du pipeline réussie, sur la page Données, utilisez le menu ... pour le dbo. DimProduct dans votre base de données SQL pour exécuter une requête qui sélectionne les 100 premières lignes. La table doit contenir les données chargées par le pipeline.
Supprimer des ressources Azure
Si vous avez terminé d’explorer Azure Synapse Analytique, vous devez supprimer les ressources que vous avez créées pour éviter des coûts Azure inutiles.
Fermez l’onglet du navigateur Synapse Studio et revenez au portail Azure.
Sur le portail Azure, dans la page Accueil, sélectionnez Groupes de ressources.
Sélectionnez le groupe deressources dp203-xxxxxxx pour votre espace de travail Synapse Analytique (et non le groupe de ressources géré) et vérifiez qu’il contient l’espace de travail Synapse, le compte de stockage et le pool SQL dédié pour votre espace de travail.
En haut de la page Vue d’ensemble de votre groupe de ressources, sélectionnez Supprimer le groupe de ressources.
Entrez le nom du groupe de ressources dp203-xxxxxxx pour confirmer que vous souhaitez le supprimer, puis sélectionnez Supprimer.
Au bout de quelques minutes, votre groupe de ressources d’espace de travail Azure Synapse et le groupe de ressources d’espace de travail managé qui lui est associé seront supprimés.