Créer un pipeline de données à l’aide de Azure Data Factory, DevOps et Machine Learning
Azure DevOps Services
Commencez à créer un pipeline de données avec l’ingestion de données, la transformation des données et l’entraînement de modèle.
Découvrez comment récupérer des données à partir d’un fichier CSV (valeurs séparées par des virgules) et enregistrer les données dans Stockage Blob Azure. Transformez les données et enregistrez-les dans une zone de préproduction. Entraînez ensuite un modèle Machine Learning à l’aide des données transformées. Écrivez le modèle dans le stockage d’objets blob sous la forme d’un fichier pickle Python.
Prérequis
Avant de commencer, vous avez besoin des éléments suivants :
- Un compte Azure disposant d’un abonnement actif. Créez un compte gratuitement.
- Organisation Azure DevOps active. Inscrivez-vous à Azure Pipelines.
- Le rôle d’administrateur pour les connexions de service dans votre projet Azure DevOps. Découvrez comment ajouter le rôle d’administrateur.
- Données de sample.csv.
- Accès à la solution de pipeline de données dans GitHub.
- DevOps pour Azure Databricks
Approvisionner des ressources Azure
Connectez-vous au portail Azure.
Dans le menu, sélectionnez le bouton Cloud Shell. Quand vous y êtes invité, sélectionnez l’expérience Bash.
Notes
Pour conserver les fichiers que vous créez tout en travaillant dans Cloud Shell, vous devez avoir une ressource de stockage Azure. Quand vous ouvrez Cloud Shell pour la première fois, vous êtes invité à créer un groupe de ressources, un compte de stockage et un partage Azure Files. Cette configuration est automatiquement utilisée pour toutes les futures sessions Cloud Shell.
Sélectionner une région Azure
Une région représente un ou plusieurs centres de données Azure dans une localisation géographique. USA Est, USA Ouest et Europe Nord sont des exemples de régions. Une région est affectée à chaque ressource Azure, notamment à une instance App Service.
Pour faciliter l’exécution des commandes, commencez par sélectionner une région par défaut. Une fois la région par défaut spécifiée, les commandes utilisent par la suite cette région tant que vous n’en spécifiez pas une autre.
Dans Cloud Shell, exécutez la commande
az account list-locations
suivante pour lister les régions disponibles à partir de votre abonnement Azure.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Dans la colonne
Name
de la sortie, choisissez une région proche de vous. Par exemple, choisissezasiapacific
ouwestus2
.Exécutez
az config
pour définir votre région par défaut. Dans l’exemple suivant, remplacez par<REGION>
le nom de la région que vous avez choisie.az config set defaults.location=<REGION>
Dans cet exemple,
westus2
est défini comme région par défaut.az config set defaults.location=westus2
Créer des variables Bash
À partir de Cloud Shell, générez un nombre aléatoire. Vous allez utiliser ce nombre pour créer des noms globaux uniques pour certains services à l’étape suivante.
resourceSuffix=$RANDOM
Créez des noms globaux uniques pour votre compte de stockage et votre coffre de clés. Ces commandes utilisent des guillemets doubles, qui indiquent à Bash d’interpoler les variables en utilisant la syntaxe inline.
storageName="datacicd${resourceSuffix}" keyVault="keyvault${resourceSuffix}"
Créez une autre variable Bash pour stocker les noms et la région de votre groupe de ressources. Dans l’exemple suivant, remplacez par
<REGION>
la région que vous avez choisie pour la région par défaut.rgName='data-pipeline-cicd-rg' region='<REGION>'
Créez des noms de variables pour vos instances Azure Data Factory et Azure Databricks.
datafactorydev='data-factory-cicd-dev' datafactorytest='data-factory-cicd-test' databricksname='databricks-cicd-ws'
Créer des ressources Azure
Exécutez la commande suivante
az group create
pour créer un groupe de ressources à l’aide dergName
.az group create --name $rgName
Exécutez la commande
az storage account create
suivante pour créer un compte de stockage.az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_RAGRS \ --kind StorageV2
Exécutez la commande suivante
az storage container create
pour créer deux conteneurs,rawdata
etprepareddata
.az storage container create -n rawdata --account-name $storageName az storage container create -n prepareddata --account-name $storageName
Exécutez la commande
az keyvault create
suivante pour créer un coffre de clés.az keyvault create \ --name $keyVault \ --resource-group $rgName
Créez une fabrique de données à l’aide de l’interface utilisateur du portail ou d’Azure CLI :
- Nom :
data-factory-cicd-dev
- Version :
V2
- Groupe de ressources :
data-pipeline-cicd-rg
- Emplacement : votre emplacement le plus proche
- Désactivez la sélection pour Activer Git.
Ajoutez l’extension Azure Data Factory.
az extension add --name datafactory
Exécutez la commande
az datafactory create
suivante pour créer une fabrique de données.az datafactory create \ --name data-factory-cicd-dev \ --resource-group $rgName
Copiez l’ID d’abonnement. Votre fabrique de données utilise cet ID ultérieurement.
- Nom :
Créez une deuxième fabrique de données à l’aide de l’interface utilisateur du portail ou d’Azure CLI : Vous utilisez cette fabrique de données pour les tests.
- Nom :
data-factory-cicd-test
- Version :
V2
- Groupe de ressources :
data-pipeline-cicd-rg
- Emplacement : votre emplacement le plus proche
- Désactivez la sélection pour Activer GIT.
Exécutez la commande
az datafactory create
suivante pour créer un test.az datafactory create \ --name data-factory-cicd-test \ --resource-group $rgName
Copiez l’ID d’abonnement. Votre fabrique de données utilise cet ID ultérieurement.
- Nom :
Ajoutez un nouveau service Azure Databricks :
- Groupe de ressources :
data-pipeline-cicd-rg
- Nom de l'espace de travail :
databricks-cicd-ws
- Emplacement : votre emplacement le plus proche
Ajoutez l’extension Azure Databricks si elle n’est pas déjà installée.
az extension add --name databricks
Exécutez la commande
az databricks workspace create
suivante pour créer un espace de travail.az databricks workspace create \ --resource-group $rgName \ --name databricks-cicd-ws \ --location eastus2 \ --sku trial
Copiez l’ID d’abonnement. Votre service Databricks utilise cet ID ultérieurement.
- Groupe de ressources :
Charger des données dans votre conteneur de stockage
- Dans le Portail Azure, ouvrez votre compte de stockage dans le
data-pipeline-cicd-rg
groupe de ressources. - Accédez à Conteneurs>de service Blob.
- Ouvrez le conteneur de
prepareddata
. - Chargez le fichier sample.csv.
Configuration d’Azure Key Vault
Vous utilisez Azure Key Vault pour stocker toutes les informations de connexion pour vos services Azure.
Créer un jeton d’accès personnel Databricks
- Dans le Portail Azure, accédez à Databricks, puis ouvrez votre espace de travail.
- Dans l’interface utilisateur Azure Databricks, créez et copiez un jeton d’accès personnel.
Copiez la clé de compte et la chaîne de connexion pour votre compte de stockage
- Accédez à votre compte de stockage.
- Ouvrir Clé d'accès .
- Copiez la première clé et la chaîne de connexion.
Enregistrer des valeurs dans Key Vault
Créez trois secrets :
- databricks-token :
your-databricks-pat
- StorageKey :
your-storage-key
- StorageConnectString:
your-storage-connection
- databricks-token :
Exécutez la commande suivante
az keyvault secret set
pour ajouter des secrets à votre coffre de clés.az keyvault secret set --vault-name "$keyVault" --name "databricks-token" --value "your-databricks-pat" az keyvault secret set --vault-name "$keyVault" --name "StorageKey" --value "your-storage-key" az keyvault secret set --vault-name "$keyVault" --name "StorageConnectString" --value "your-storage-connection"
Importer la solution de pipeline de données
- Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
- Accédez à Repos, puis importez votre version dupliquée du référentiel GitHub. Pour plus d’informations, consultez Importer un référentiel Git dans votre projet.
Ajouter une connexion de service Azure Resource Manager
- Créer une connexion de service Azure Resource Manager.
- Sélectionnez l’inscription d’application (automatique) et la fédération des identités de charge de travail.
- Sélectionnez votre abonnement.
- Choisissez le groupe de ressources data-pipeline-cicd-rg .
- Nommez la connexion de service
azure_rm_connection
. - Sélectionnez Accorder une autorisation d’accès à tous les pipelines. Vous devez avoir le rôle Administrateur des connexions de service pour sélectionner cette option.
Ajouter des variables de pipeline
Créez un groupe de variables nommé
datapipeline-vg
.Ajoutez l’extension Azure DevOps si elle n’est pas déjà installée.
az extension add --name azure-devops
Connectez-vous à votre organisation Azure DevOps.
az devops login --org https://dev.azure.com/<yourorganizationname>
az pipelines variable-group create --name datapipeline-vg -p <yourazuredevopsprojectname> --variables \ "LOCATION=$region" \ "RESOURCE_GROUP=$rgName" \ "DATA_FACTORY_NAME=$datafactorydev" \ "DATA_FACTORY_DEV_NAME=$datafactorydev" \ "DATA_FACTORY_TEST_NAME=$datafactorytest" \ "ADF_PIPELINE_NAME=DataPipeline" \ "DATABRICKS_NAME=$databricksname" \ "AZURE_RM_CONNECTION=azure_rm_connection" \ "DATABRICKS_URL=<URL copied from Databricks in Azure portal>" \ "STORAGE_ACCOUNT_NAME=$storageName" \ "STORAGE_CONTAINER_NAME=rawdata"
Créez un deuxième groupe de variables nommé
keys-vg
. Ce groupe extrait des variables de données à partir de Key Vault.Sélectionnez l’option Lier les secrets d’un coffre de clés Azure Key Vault en tant que variables. Pour plus d’informations, consultez Lier un groupe de variables aux secrets dans Azure Key Vault.
Autorisez l’abonnement Azure.
Choisissez tous les secrets disponibles à ajouter en tant que variables (
databricks-token
,StorageConnectString
,StorageKey
).
Configurer Azure Databricks et Azure Data Factory
Suivez les étapes des sections suivantes pour configurer Azure Databricks et Azure Data Factory.
Créer un testscope dans Azure Databricks
- Dans le Portail Azure, accédez àPropriétés du >coffre de clés.
- Copiez le nom DNS et l’ID de ressource.
- Dans votre espace de travail Azure Databricks, créez une étendue secrète nommée
testscope
.
Ajouter un nouveau cluster dans Azure Databricks
- Dans l’espace de travail Azure Databricks, accédez à Clusters.
- Sélectionnez Créer un cluster.
- Nommez et enregistrez votre nouveau cluster.
- Sélectionnez le nouveau nom de votre cluster.
- Dans la chaîne d’URL, copiez le contenu entre
/clusters/
et/configuration
. Par exemple, dans la chaîneclusters/0306-152107-daft561/configuration
, vous devez copier0306-152107-daft561
. - Enregistrez cette chaîne pour l’utiliser ultérieurement.
Configurer votre référentiel de code dans Azure Data Factory
- Dans Azure Data Factory, accédez à Auteur et surveillance. Pour plus d’informations, consultez Créer une fabrique de données.
- Sélectionnez Configurer le référentiel de code, puis connectez votre référentiel.
- Type de dépôt : Azure DevOps Git
- Azure DevOps organization : votre compte actif
- Nom du projet : votre projet de pipeline de données Azure DevOps
- Nom du référentiel Git : utilisez existant.
- Sélectionnez la branche principale pour la collaboration.
- Définissez /azure-data-pipeline/factorydata comme dossier racine.
- Branche dans laquelle importer la ressource : sélectionnez Utiliser la branche existante et principale.
Lier Azure Data Factory à votre coffre de clés
- Dans l’interface utilisateur du Portail Azure, ouvrez le coffre de clés.
- Sélectionnez Stratégies d’accès.
- Sélectionnez Ajouter une stratégie d’accès.
- Pour Configurer à partir d’un modèle, sélectionnez Clé et gestion des secrets.
- Dans Sélectionner un principal, recherchez le nom de votre fabrique de données de développement et ajoutez-le.
- Sélectionnez Ajouter pour ajouter vos stratégies d’accès.
- Répétez ces étapes pour ajouter une stratégie d’accès pour la fabrique de données de test.
Mettre à jour le service lié de coffre de clés dans Azure Data Factory
- Accédez à Gérer>Services liés.
- Mettez à jour le coffre de clés Azure pour vous connecter à votre abonnement.
Mettre à jour le service lié de stockage dans Azure Data Factory
- Accédez à Gérer>Services liés.
- Mettez à jour la valeur Stockage Blob Azure pour vous connecter à votre abonnement.
Mettre à jour le service lié Azure Databricks dans Azure Data Factory
- Accédez à Gérer>Services liés.
- Mettez à jour la valeur Azure Databricks pour vous connecter à votre abonnement.
- Pour l’ID de cluster existant, entrez la valeur du cluster que vous avez enregistrée précédemment.
Tester et publier la fabrique de données
- Dans Azure Data Factory, accédez à Modifier.
- Ouvrez
DataPipeline
. - Sélectionnez Variables.
- Vérifiez que le
storage_account_name
fait référence à votre compte de stockage dans le Portail Azure. Mettez à jour la valeur par défaut si nécessaire. Enregistrez vos modifications. - Sélectionnez Valider pour vérifier
DataPipeline
. - Sélectionnez Publier pour publier des ressources de fabrique de données dans la
adf_publish
branche de votre référentiel.
Exécuter le pipeline CI/CD
Procédez comme suit pour exécuter le pipeline d’intégration continue et de livraison continue (CI/CD) :
- Accédez à la page Pipelines. Choisissez ensuite l’action pour créer un pipeline.
- Sélectionnez Azure Repos Git comme emplacement de votre code.
- Quand la liste des dépôts s’affiche, sélectionnez votre dépôt.
- Lorsque vous configurez votre pipeline, sélectionnez Fichier YAML Azure Pipelines existant. Choisissez le fichier YAML : /azure-data-pipeline/data_pipeline_ci_cd.yml.
- Exécuter le pipeline. Lors de l’exécution de votre pipeline pour la première fois, vous devrez peut-être accorder l’autorisation d’accéder à une ressource pendant l’exécution.
Nettoyer les ressources
Si vous ne pensez pas continuer à utiliser cette application, supprimez votre pipeline de données en procédant comme suit :
- Supprimer le
data-pipeline-cicd-rg
groupe de ressources. - Supprimez votre projet Azure DevOps.