Een gegevenspijplijn bouwen met behulp van Azure Data Factory, DevOps en machine learning
Azure DevOps Services
Ga aan de slag met het bouwen van een gegevenspijplijn met gegevensopname, gegevenstransformatie en modeltraining.
Informatie over het ophalen van gegevens uit een CSV-bestand (door komma's gescheiden waarden) en het opslaan van de gegevens in Azure Blob Storage. Transformeer de gegevens en sla deze op in een faseringsgebied. Train vervolgens een machine learning-model met behulp van de getransformeerde gegevens. Schrijf het model naar blobopslag als een Python-pickle-bestand.
Vereisten
Voordat u begint, hebt u het volgende nodig:
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een actieve Azure DevOps-organisatie. Meld u aan voor Azure Pipelines.
- De beheerdersrol voor serviceverbindingen in uw Azure DevOps-project. Meer informatie over het toevoegen van de beheerdersrol.
- Gegevens uit sample.csv.
- Toegang tot de oplossing voor gegevenspijplijnen in GitHub.
- DevOps voor Azure Databricks.
Azure-resources inrichten
Meld u aan bij het Azure-portaal.
Selecteer in het menu de knop Cloud Shell . Wanneer u hierom wordt gevraagd, selecteert u de Bash-ervaring .
Notitie
U hebt een Azure Storage-resource nodig om alle bestanden die u in Azure Cloud Shell maakt, vast te houden. Wanneer u Cloud Shell voor het eerst opent, wordt u gevraagd om een resourcegroep, opslagaccount en Azure Files-share te maken. Deze installatie wordt automatisch gebruikt voor alle toekomstige Cloud Shell-sessies.
Een Azure-regio selecteren
Een regio is een of meer Azure-datacenters binnen een geografische locatie. VS - oost, VS - west en Europa - noord zijn voorbeelden van regio's. Aan elke Azure-resource, inclusief een App Service-exemplaar, wordt een regio toegewezen.
Als u opdrachten gemakkelijker wilt uitvoeren, selecteert u eerst een standaardregio. Nadat u de standaardregio hebt opgegeven, gebruiken latere opdrachten die regio, tenzij u een andere regio opgeeft.
Voer in Cloud Shell de volgende
az account list-locations
opdracht uit om de regio's weer te geven die beschikbaar zijn vanuit uw Azure-abonnement.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Kies in de
Name
kolom in de uitvoer een regio die dicht bij u in de buurt is. Kiesasiapacific
westus2
of kies bijvoorbeeld .Voer uit
az config
om uw standaardregio in te stellen. Vervang in het volgende voorbeeld door<REGION>
de naam van de regio die u hebt gekozen.az config set defaults.location=<REGION>
In het volgende voorbeeld wordt ingesteld
westus2
als de standaardregio.az config set defaults.location=westus2
Bash-variabelen maken
Genereer in Cloud Shell een willekeurig getal. In de volgende stap gebruikt u dit nummer om wereldwijd unieke namen voor bepaalde services te maken.
resourceSuffix=$RANDOM
Maak wereldwijd unieke namen voor uw opslagaccount en sleutelkluis. De volgende opdrachten gebruiken dubbele aanhalingstekens, waarmee Bash de variabelen kan interpoleren met behulp van de inlinesyntaxis.
storageName="datacicd${resourceSuffix}" keyVault="keyvault${resourceSuffix}"
Maak nog een Bash-variabele om de namen en de regio van uw resourcegroep op te slaan. Vervang in het volgende voorbeeld door
<REGION>
de regio die u hebt gekozen voor de standaardregio.rgName='data-pipeline-cicd-rg' region='<REGION>'
Maak variabelenamen voor uw Azure Data Factory- en Azure Databricks-exemplaren.
datafactorydev='data-factory-cicd-dev' datafactorytest='data-factory-cicd-test' databricksname='databricks-cicd-ws'
Azure-resources maken
Voer de volgende
az group create
opdracht uit om een resourcegroep te maken met behulp vanrgName
.az group create --name $rgName
Voer de volgende
az storage account create
opdracht uit om een nieuw opslagaccount te maken.az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_RAGRS \ --kind StorageV2
Voer de volgende
az storage container create
opdracht uit om twee containers te maken enrawdata
prepareddata
.az storage container create -n rawdata --account-name $storageName az storage container create -n prepareddata --account-name $storageName
Voer de volgende
az keyvault create
opdracht uit om een nieuwe sleutelkluis te maken.az keyvault create \ --name $keyVault \ --resource-group $rgName
Maak een nieuwe data factory met behulp van de gebruikersinterface van de portal of Azure CLI:
- Naam:
data-factory-cicd-dev
- Versie:
V2
- Resourcegroep:
data-pipeline-cicd-rg
- Locatie: Uw dichtstbijzijnde locatie
- Schakel de selectie voor Git inschakelen uit.
Voeg de Azure Data Factory-extensie toe.
az extension add --name datafactory
Voer de volgende
az datafactory create
opdracht uit om een nieuwe data factory te maken.az datafactory create \ --name data-factory-cicd-dev \ --resource-group $rgName
Kopieer de abonnements-id. Uw data factory gebruikt deze id later.
- Naam:
Maak een tweede data factory met behulp van de gebruikersinterface van de portal of de Azure CLI. U gebruikt deze data factory voor het testen.
- Naam:
data-factory-cicd-test
- Versie:
V2
- Resourcegroep:
data-pipeline-cicd-rg
- Locatie: Uw dichtstbijzijnde locatie
- Schakel de selectie voor Git inschakelen uit.
Voer de volgende
az datafactory create
opdracht uit om een nieuwe data factory te maken voor testen.az datafactory create \ --name data-factory-cicd-test \ --resource-group $rgName
Kopieer de abonnements-id. Uw data factory gebruikt deze id later.
- Naam:
Een nieuwe Azure Databricks-service toevoegen:
- Resourcegroep:
data-pipeline-cicd-rg
- Werkruimtenaam:
databricks-cicd-ws
- Locatie: Uw dichtstbijzijnde locatie
Voeg de Azure Databricks-extensie toe als deze nog niet is geïnstalleerd.
az extension add --name databricks
Voer de volgende
az databricks workspace create
opdracht uit om een nieuwe werkruimte te maken.az databricks workspace create \ --resource-group $rgName \ --name databricks-cicd-ws \ --location eastus2 \ --sku trial
Kopieer de abonnements-id. Uw Databricks-service gebruikt deze id later.
- Resourcegroep:
Gegevens uploaden naar uw opslagcontainer
- Open in Azure Portal uw opslagaccount in de
data-pipeline-cicd-rg
resourcegroep. - Ga naar Blob Service>Containers.
- Open de
prepareddata
container. - Upload het sample.csv bestand.
Key Vault instellen
U gebruikt Azure Key Vault om alle verbindingsgegevens voor uw Azure-services op te slaan.
Een persoonlijk toegangstoken voor Databricks maken
- Ga in Azure Portal naar Databricks en open vervolgens uw werkruimte.
- Maak en kopieer een persoonlijk toegangstoken in de gebruikersinterface van Azure Databricks.
Kopieer de accountsleutel en verbindingsreeks voor uw opslagaccount
- Ga naar uw opslagaccount.
- Open Access-sleutels.
- Kopieer de eerste sleutel en verbindingsreeks.
Waarden opslaan in Key Vault
Drie geheimen maken:
- databricks-token:
your-databricks-pat
- StorageKey:
your-storage-key
- StorageConnectString:
your-storage-connection
- databricks-token:
Voer de volgende
az keyvault secret set
opdracht uit om geheimen toe te voegen aan uw sleutelkluis.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"
De gegevenspijplijnoplossing importeren
- Meld u aan bij uw Azure DevOps-organisatie en ga vervolgens naar uw project.
- Ga naar Opslagplaatsen en importeer vervolgens uw gesplitste versie van de GitHub-opslagplaats. Zie Een Git-opslagplaats importeren in uw project voor meer informatie.
Een Azure Resource Manager-serviceverbinding toevoegen
- Maak een Azure Resource Manager-serviceverbinding.
- Selecteer App-registratie (automatisch) en workloadidentiteitsfederatie.
- Selecteer uw abonnement.
- Kies de resourcegroep data-pipeline-cicd-rg .
- Geef de serviceverbinding
azure_rm_connection
een naam. - Selecteer Toegang verlenen aan alle pijplijnen. U moet de rol Serviceverbindingenbeheerder hebben om deze optie te selecteren.
Pijplijnvariabelen toevoegen
Maak een nieuwe variabelegroep met de naam
datapipeline-vg
.Voeg de Azure DevOps-extensie toe als deze nog niet is geïnstalleerd.
az extension add --name azure-devops
Meld u aan bij uw Azure DevOps-organisatie.
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"
Maak een tweede variabelegroep met de naam
keys-vg
. Deze groep haalt gegevensvariabelen op uit Key Vault.Selecteer Geheimen koppelen uit een Azure-sleutelkluis als variabelen. Zie Een variabelegroep koppelen aan geheimen in Azure Key Vault voor meer informatie.
Autoriseren van het Azure-abonnement.
Kies alle beschikbare geheimen die u wilt toevoegen als variabelen (
databricks-token
,StorageConnectString
,StorageKey
).
Azure Databricks en Azure Data Factory configureren
Volg de stappen in de volgende secties om Azure Databricks en Azure Data Factory in te stellen.
Testscope maken in Azure Databricks
- Ga in Azure Portal naar Eigenschappen van key vault>.
- Kopieer de DNS-naam en de resource-id.
- Maak in uw Azure Databricks-werkruimte een geheim bereik met de naam
testscope
.
Een nieuw cluster toevoegen in Azure Databricks
- Ga in de Azure Databricks-werkruimte naar Clusters.
- Selecteer Cluster maken.
- Geef een naam en sla het nieuwe cluster op.
- Selecteer de naam van het nieuwe cluster.
- Kopieer in de URL-tekenreeks de inhoud tussen
/clusters/
en/configuration
. In de tekenreeksclusters/0306-152107-daft561/configuration
zou u bijvoorbeeld kopiëren0306-152107-daft561
. - Sla deze tekenreeks op om later te gebruiken.
Uw codeopslagplaats instellen in Azure Data Factory
- Ga in Azure Data Factory naar Author & Monitor. Zie Een data factory maken voor meer informatie.
- Selecteer Codeopslagplaats instellen en maak vervolgens verbinding met uw opslagplaats.
- Type opslagplaats: Azure DevOps Git
- Azure DevOps-organisatie: uw actieve account
- Projectnaam: uw Azure DevOps-gegevenspijplijnproject
- Naam van Git-opslagplaats: bestaande gebruiken.
- Selecteer de hoofdbranch voor samenwerking.
- Stel /azure-data-pipeline/factorydata in als de hoofdmap.
- Vertakking om de resource te importeren in: Selecteer Bestaande en hoofdresource gebruiken.
Azure Data Factory koppelen aan uw sleutelkluis
- Open de sleutelkluis in de gebruikersinterface van Azure Portal.
- Selecteer Toegangsbeleid.
- Selecteer Toegangsbeleid toevoegen.
- Voor Configureren vanuit sjabloon selecteert u Sleutel- en geheimbeheer.
- Zoek in Select Principal naar de naam van uw ontwikkelingsdatafactory en voeg deze toe.
- Selecteer Toevoegen om uw toegangsbeleid toe te voegen.
- Herhaal deze stappen om een toegangsbeleid toe te voegen voor de testdata factory.
De gekoppelde sleutelkluisservice bijwerken in Azure Data Factory
- Ga naar Gekoppelde services beheren>.
- Werk de Azure-sleutelkluis bij om verbinding te maken met uw abonnement.
De gekoppelde opslagservice bijwerken in Azure Data Factory
- Ga naar Gekoppelde services beheren>.
- Werk de Azure Blob Storage-waarde bij om verbinding te maken met uw abonnement.
De gekoppelde Azure Databricks-service bijwerken in Azure Data Factory
- Ga naar Gekoppelde services beheren>.
- Werk de Azure Databricks-waarde bij om verbinding te maken met uw abonnement.
- Voer voor de bestaande cluster-id de clusterwaarde in die u eerder hebt opgeslagen.
De data factory testen en publiceren
- Ga in Azure Data Factory naar Bewerken.
DataPipeline
openen.- Selecteer Variabelen.
- Controleer of het
storage_account_name
verwijst naar uw opslagaccount in Azure Portal. Werk indien nodig de standaardwaarde bij. Sla uw wijzigingen op. - Selecteer Valideren om te verifiëren
DataPipeline
. - Selecteer Publiceren om data-factory-assets te publiceren naar de
adf_publish
vertakking van uw opslagplaats.
De CI/CD-pijplijn uitvoeren
Volg deze stappen om de pijplijn voor continue integratie en continue levering (CI/CD) uit te voeren:
- Ga naar de pagina Pijplijnen . Kies vervolgens de actie om een nieuwe pijplijn te maken.
- Selecteer Azure Repos Git als de locatie van uw broncode.
- Wanneer de lijst met opslagplaatsen wordt weergegeven, selecteert u uw opslagplaats.
- Wanneer u uw pijplijn instelt, selecteert u bestaand YAML-bestand voor Azure Pipelines. Kies het YAML-bestand: /azure-data-pipeline/data_pipeline_ci_cd.yml.
- Voer de pijplijn uit. Wanneer u uw pijplijn voor het eerst uitvoert, moet u mogelijk tijdens de uitvoering toestemming geven voor toegang tot een resource.
Resources opschonen
Als u deze toepassing niet meer gaat gebruiken, verwijdert u uw gegevenspijplijn door de volgende stappen uit te voeren:
- Verwijder de
data-pipeline-cicd-rg
resourcegroep. - Verwijder uw Azure DevOps-project.