Share via


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:

Azure-resources inrichten

  1. Meld u aan bij het Azure-portaal.

  2. Selecteer in het menu de knop Cloud Shell . Wanneer u hierom wordt gevraagd, selecteert u de Bash-ervaring .

    Schermopname die laat zien waar Cloud Shell moet worden geselecteerd in het menu.

    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.

  1. 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
    
  2. Kies in de Name kolom in de uitvoer een regio die dicht bij u in de buurt is. Kies asiapacific westus2of kies bijvoorbeeld .

  3. 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

  1. 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
    
  2. 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}"
    
  3. 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>'
    
  4. 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

  1. Voer de volgende az group create opdracht uit om een resourcegroep te maken met behulp van rgName.

    az group create --name $rgName
    
  2. 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
    
  3. Voer de volgende az storage container create opdracht uit om twee containers te maken en rawdata prepareddata.

    az storage container create -n rawdata --account-name $storageName 
    az storage container create -n prepareddata --account-name $storageName 
    
  4. Voer de volgende az keyvault create opdracht uit om een nieuwe sleutelkluis te maken.

    az keyvault create \
        --name $keyVault \
        --resource-group $rgName
    
  5. 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.
    1. Voeg de Azure Data Factory-extensie toe.

      az extension add --name datafactory
      
    2. 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
      
    3. Kopieer de abonnements-id. Uw data factory gebruikt deze id later.

  6. 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.
    1. 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
      
    2. Kopieer de abonnements-id. Uw data factory gebruikt deze id later.

  7. Een nieuwe Azure Databricks-service toevoegen:

    • Resourcegroep: data-pipeline-cicd-rg
    • Werkruimtenaam: databricks-cicd-ws
    • Locatie: Uw dichtstbijzijnde locatie
    1. Voeg de Azure Databricks-extensie toe als deze nog niet is geïnstalleerd.

       az extension add --name databricks
      
    2. 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
      
    3. Kopieer de abonnements-id. Uw Databricks-service gebruikt deze id later.

Gegevens uploaden naar uw opslagcontainer

  1. Open in Azure Portal uw opslagaccount in de data-pipeline-cicd-rg resourcegroep.
  2. Ga naar Blob Service>Containers.
  3. Open de prepareddata container.
  4. 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

  1. Ga in Azure Portal naar Databricks en open vervolgens uw werkruimte.
  2. Maak en kopieer een persoonlijk toegangstoken in de gebruikersinterface van Azure Databricks.

Kopieer de accountsleutel en verbindingsreeks voor uw opslagaccount

  1. Ga naar uw opslagaccount.
  2. Open Access-sleutels.
  3. Kopieer de eerste sleutel en verbindingsreeks.

Waarden opslaan in Key Vault

  1. Drie geheimen maken:

    • databricks-token: your-databricks-pat
    • StorageKey: your-storage-key
    • StorageConnectString: your-storage-connection
  2. 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

  1. Meld u aan bij uw Azure DevOps-organisatie en ga vervolgens naar uw project.
  2. 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

  1. Maak een Azure Resource Manager-serviceverbinding.
  2. Selecteer App-registratie (automatisch) en workloadidentiteitsfederatie.
  3. Selecteer uw abonnement.
  4. Kies de resourcegroep data-pipeline-cicd-rg .
  5. Geef de serviceverbinding azure_rm_connectioneen naam.
  6. Selecteer Toegang verlenen aan alle pijplijnen. U moet de rol Serviceverbindingenbeheerder hebben om deze optie te selecteren.

Pijplijnvariabelen toevoegen

  1. Maak een nieuwe variabelegroep met de naam datapipeline-vg.

  2. Voeg de Azure DevOps-extensie toe als deze nog niet is geïnstalleerd.

    az extension add --name azure-devops 
    
  3. 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"
    
  4. Maak een tweede variabelegroep met de naam keys-vg. Deze groep haalt gegevensvariabelen op uit Key Vault.

  5. Selecteer Geheimen koppelen uit een Azure-sleutelkluis als variabelen. Zie Een variabelegroep koppelen aan geheimen in Azure Key Vault voor meer informatie.

  6. Autoriseren van het Azure-abonnement.

  7. 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

  1. Ga in Azure Portal naar Eigenschappen van key vault>.
  2. Kopieer de DNS-naam en de resource-id.
  3. Maak in uw Azure Databricks-werkruimte een geheim bereik met de naam testscope.

Een nieuw cluster toevoegen in Azure Databricks

  1. Ga in de Azure Databricks-werkruimte naar Clusters.
  2. Selecteer Cluster maken.
  3. Geef een naam en sla het nieuwe cluster op.
  4. Selecteer de naam van het nieuwe cluster.
  5. Kopieer in de URL-tekenreeks de inhoud tussen /clusters/ en /configuration. In de tekenreeks clusters/0306-152107-daft561/configurationzou u bijvoorbeeld kopiëren 0306-152107-daft561.
  6. Sla deze tekenreeks op om later te gebruiken.

Uw codeopslagplaats instellen in Azure Data Factory

  1. Ga in Azure Data Factory naar Author & Monitor. Zie Een data factory maken voor meer informatie.
  2. 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.
  1. Open de sleutelkluis in de gebruikersinterface van Azure Portal.
  2. Selecteer Toegangsbeleid.
  3. Selecteer Toegangsbeleid toevoegen.
  4. Voor Configureren vanuit sjabloon selecteert u Sleutel- en geheimbeheer.
  5. Zoek in Select Principal naar de naam van uw ontwikkelingsdatafactory en voeg deze toe.
  6. Selecteer Toevoegen om uw toegangsbeleid toe te voegen.
  7. Herhaal deze stappen om een toegangsbeleid toe te voegen voor de testdata factory.

De gekoppelde sleutelkluisservice bijwerken in Azure Data Factory

  1. Ga naar Gekoppelde services beheren>.
  2. Werk de Azure-sleutelkluis bij om verbinding te maken met uw abonnement.

De gekoppelde opslagservice bijwerken in Azure Data Factory

  1. Ga naar Gekoppelde services beheren>.
  2. Werk de Azure Blob Storage-waarde bij om verbinding te maken met uw abonnement.

De gekoppelde Azure Databricks-service bijwerken in Azure Data Factory

  1. Ga naar Gekoppelde services beheren>.
  2. Werk de Azure Databricks-waarde bij om verbinding te maken met uw abonnement.
  3. Voer voor de bestaande cluster-id de clusterwaarde in die u eerder hebt opgeslagen.

De data factory testen en publiceren

  1. Ga in Azure Data Factory naar Bewerken.
  2. DataPipeline openen.
  3. Selecteer Variabelen.
  4. Controleer of het storage_account_name verwijst naar uw opslagaccount in Azure Portal. Werk indien nodig de standaardwaarde bij. Sla uw wijzigingen op.
  5. Selecteer Valideren om te verifiëren DataPipeline.
  6. 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:

  1. Ga naar de pagina Pijplijnen . Kies vervolgens de actie om een nieuwe pijplijn te maken.
  2. Selecteer Azure Repos Git als de locatie van uw broncode.
  3. Wanneer de lijst met opslagplaatsen wordt weergegeven, selecteert u uw opslagplaats.
  4. 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.
  5. 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:

  1. Verwijder de data-pipeline-cicd-rg resourcegroep.
  2. Verwijder uw Azure DevOps-project.

Volgende stappen