Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services
Erste Schritte mit dem Erstellen einer Datenpipeline mit Datenerfassung, Datentransformation und Modelltraining
Erfahren Sie, wie Sie Daten aus einer CSV-Datei abrufen und in Azure Blob Storage speichern. Sie transformieren die Daten und speichern sie in einem Stagingbereich. Anschließend trainieren Sie ein Machine Learning-Modell mithilfe der transformierten Daten. Sie schreiben das Modell als Python-PICKLE-Datei in Blob Storage.
Voraussetzungen
Bevor Sie beginnen, benötigen Sie Folgendes:
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine aktive Azure DevOps-Organisation.
Registrieren Sie sich für Azure Pipelines.
- Die Administratorrolle für Dienstverbindungen in Ihrem Azure DevOps-Projekt. Erfahren Sie mehr über das Hinzufügen von Administratorrollen.
- Daten aus sample.csv
- Zugriff auf die Datenpipelinelösung in GitHub
- DevOps für Azure Databricks
Bereitstellen von Azure-Ressourcen
Melden Sie sich beim Azure-Portal an.
Wählen Sie im Menü die Azure Cloud Shell-Schaltfläche aus. Wählen Sie Bash aus, wenn Sie dazu aufgefordert werden.
Hinweis
Sie benötigen eine Azure Storage-Ressource, um alle Dateien, die Sie in Cloud Shell erstellen, beizubehalten. Wenn Sie Cloud Shell erstmals öffnen, werden Sie aufgefordert, eine Ressourcengruppe, ein Speicherkonto und eine Azure Files-Freigabe zu erstellen. Das Azure-Portal verwendet dieses Setup automatisch für alle zukünftigen Cloud Shell-Sitzungen.
Auswählen einer Azure-Region
Bei einer Region handelt es sich um mindestens ein Azure-Rechenzentrum an einem geografischen Standort. Beispiele für Regionen sind „USA, Osten“, „USA, Westen“ und „Europa, Norden“. Jeder Azure-Ressource, einschließlich einer Azure App Service-Instanz, wird eine Region zugewiesen.
Wählen Sie einen Standardbereich aus, um die Ausführung von Befehlen zu vereinfachen. Nachdem Sie die Standardregion festgelegt haben, verwenden spätere Befehle diese Region, es sei denn, Sie geben eine andere Region an.
Führen Sie in Cloud Shell den folgenden
az account list-locations-Befehl aus, um die Regionen aufzulisten, die über Ihr Azure-Abonnement verfügbar sind.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output tableWählen Sie in der Spalte
Namein der Ausgabe eine Region in Ihrer Nähe aus. Wählen Sie zum Beispielasiapacificoderwestus2aus.Führen Sie
az configaus, um Ihre Standardregion festzulegen. Ersetzen<REGION>Sie im folgenden Beispiel durch den Namen der ausgewählten Region.az config set defaults.location=<REGION>Im folgenden Beispiel wird
westus2als Standardregion festgelegt.az config set defaults.location=westus2
Erstellen von Bash-Variablen
Generieren Sie in Cloud Shell eine Zufallszahl. Verwenden Sie diese Zahl, um im nächsten Schritt global eindeutige Namen für bestimmte Dienste zu erstellen.
resourceSuffix=$RANDOMErstellen Sie global eindeutige Namen für Ihr Speicherkonto und Azure Key Vault. In den folgenden Befehlen werden doppelte Anführungszeichen verwendet. Dadurch wird Bash angewiesen, die Variablen mithilfe der Inlinesyntax zu interpolieren.
storageName="datacicd${resourceSuffix}" keyVault="keyvault${resourceSuffix}"Erstellen Sie eine weitere Bash-Variable, um die Namen und die Region Ihrer Ressourcengruppe zu speichern. Ersetzen Sie
<REGION>im folgenden Beispiel durch die Region, die Sie als Standardregion verwenden möchten.rgName='data-pipeline-cicd-rg' region='<REGION>'Erstellen Sie Variablennamen für Ihre Azure Data Factory- und Azure Databricks-Instanzen.
datafactorydev='data-factory-cicd-dev' datafactorytest='data-factory-cicd-test' databricksname='databricks-cicd-ws'
Erstellen von Azure-Ressourcen
Führen Sie den folgenden Befehl
az group createaus, um mithilfe vonrgNameeine Ressourcengruppe zu erstellen.az group create --name $rgNameFühren Sie den folgenden Befehl
az storage account createaus, um ein neues Speicherkonto zu erstellen.az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_RAGRS \ --kind StorageV2Führen Sie den folgenden Befehl
az storage container createaus, um die beiden Containerrawdataundprepareddatazu erstellen.az storage container create -n rawdata --account-name $storageName az storage container create -n prepareddata --account-name $storageNameFühren Sie den folgenden
az keyvault createBefehl aus, um einen neuen Key Vault zu erstellen.az keyvault create \ --name $keyVault \ --resource-group $rgNameErstellen Sie eine neue Data Factory über die Benutzeroberfläche im Portal oder mithilfe der Azure-Befehlszeilenschnittstelle:
- Name:
data-factory-cicd-dev - Version:
V2 - Ressourcengruppe:
data-pipeline-cicd-rg - Standort: Ihr nächstgelegener Standort
- Heben Sie die Auswahl von Git aktivieren auf.
Fügen Sie die Azure Data Factory-Erweiterung hinzu.
az extension add --name datafactoryFühren Sie den folgenden
az datafactory createBefehl aus, um eine neue Azure Data Factory zu erstellen.az datafactory create \ --name data-factory-cicd-dev \ --resource-group $rgNameKopieren Sie die Abonnement-ID. Ihre Datenfactory verwendet diese ID später.
- Name:
Erstellen Sie eine zweite Data Factory über die Benutzeroberfläche im Portal oder mithilfe der Azure-Befehlszeilenschnittstelle. Sie verwenden diese Azure Data Factory zum Testen.
- Name:
data-factory-cicd-test - Version:
V2 - Ressourcengruppe:
data-pipeline-cicd-rg - Standort: Ihr nächstgelegener Standort
- Heben Sie die Auswahl von Git aktivieren auf.
Führen Sie den folgenden
az datafactory createBefehl aus, um eine neue Azure Data Factory zum Testen zu erstellen.az datafactory create \ --name data-factory-cicd-test \ --resource-group $rgNameKopieren Sie die Abonnement-ID. Ihre Datenfactory verwendet diese ID später.
- Name:
Fügen Sie einen neuen Azure Databricks-Dienst hinzu:
- Ressourcengruppe:
data-pipeline-cicd-rg - Arbeitsbereichsname:
databricks-cicd-ws - Standort: Ihr nächstgelegener Standort
Fügen Sie die Azure Databricks-Erweiterung hinzu, falls sie noch nicht installiert ist.
az extension add --name databricksFühren Sie den folgenden Befehl
az databricks workspace createaus, um einen neuen Arbeitsbereich zu erstellen.az databricks workspace create \ --resource-group $rgName \ --name databricks-cicd-ws \ --location $region \ --sku trialKopieren Sie die Abonnement-ID. Ihr Databricks-Dienst verwendet diese ID später.
- Ressourcengruppe:
Hochladen von Daten in Ihren Speichercontainer
- Öffnen Sie im Azure-Portal Ihr Speicherkonto in der Ressourcengruppe
data-pipeline-cicd-rg. - Wechseln Sie zu Blob-Dienst>Container.
- Öffnen Sie den Container
prepareddata. - Laden Sie die Datei sample.csv hoch.
Einrichten von Azure Key Vault
Sie verwenden Azure Key Vault, um alle Verbindungsinformationen für Ihre Azure-Dienste zu speichern.
Erstellen eines persönlichen Databricks-Zugriffstokens
- Wechseln Sie im Azure-Portal zu Databricks, und öffnen Sie dann Ihren Arbeitsbereich.
- Erstellen und kopieren Sie auf der Azure Databricks-Benutzeroberfläche ein persönliches Zugriffstoken.
Kopieren des Kontoschlüssels und der Verbindungszeichenfolge für Ihr Speicherkonto
- Wechseln Sie zum Speicherkonto.
- Öffnen Sie Zugriffsschlüssel.
- Kopieren Sie den ersten Schlüssel und die Verbindungszeichenfolge.
Werte im Schlüsselspeicher speichern
Erstellen Sie drei Geheimnisse:
- databricks-token:
your-databricks-pat - StorageKey (Speicherschlüssel):
your-storage-key - StorageConnectString:
your-storage-connection
- databricks-token:
Führen Sie den folgenden Befehl
az keyvault secret setaus, um Ihrem Schlüsseltresor Geheimnisse hinzuzufügen.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"
Importieren der Datenpipelinelösung
- Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und wechseln Sie dann zu Ihrem Projekt.
- Wechseln Sie zu Repositorys, und importieren Sie dann Ihre geforkte Version des GitHub-Repositorys. Weitere Informationen finden Sie unter Importieren eines Git-Repositorys in Ihr Projekt.
Hinzufügen einer Azure Resource Manager-Dienstverbindung
- Erstellen Sie eine Azure Resource Manager-Dienstverbindung.
- Wählen Sie die App-Registrierung (automatisch) und den Workload-Identitätsverbund aus.
- Wählen Sie Ihr Abonnement aus.
- Wählen Sie die Ressourcengruppe data-pipeline-cicd-rg aus.
- Benennen Sie die Dienstverbindung mit
azure_rm_connection. - Aktivieren Sie die Option Allen Pipelines die Zugriffsberechtigung gewähren. Sie benötigen die Dienstverbindungen-Administratorrolle, um diese Option auszuwählen.
Pipelinevariablen hinzufügen
Erstellen Sie eine neue Variablengruppe mit dem Namen
datapipeline-vg.Fügen Sie die Azure DevOps-Erweiterung hinzu, wenn Sie sie noch nicht installiert haben.
az extension add --name azure-devopsMelden Sie sich bei Ihrer Azure DevOps-Organisation an.
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"Erstellen Sie eine zweite Variablengruppe mit dem Namen
keys-vg. Diese Gruppe ruft Datenvariablen von Schlüssel Vvult ab.Wählen Sie "Geheime Schlüssel aus einem Azure Key Vault als Variablen verknüpfen" aus. Weitere Informationen finden Sie unter Verknüpfen einer Variablengruppe mit geheimen Schlüsseln in Azure Key Vault.
Autorisieren Sie das Azure-Abonnement.
Wählen Sie alle verfügbaren Geheimnisse aus, die als Variablen (
databricks-token,StorageConnectString,StorageKey) hinzugefügt werden sollen.
Konfigurieren von Azure Databricks und Azure Data Factory
Führen Sie die Schritte in den nächsten Abschnitten aus, um Azure Databricks und Azure Data Factory einzurichten.
Erstellen eines Testbereichs in Azure Databricks
- Wechseln Sie im Azure-Portal zu Key Vault>Eigenschaften.
- Kopieren Sie den DNS-Namen und die Ressourcen-ID.
- Erstellen Sie in Ihrem Azure Databricks-Arbeitsbereich einen Geheimnisbereich mit dem Namen
testscope.
Hinzufügen eines neuen Clusters in Azure Databricks
- Navigieren Sie im Azure Databricks-Arbeitsbereich zu Cluster.
- Wählen Sie Cluster erstellen aus.
- Benennen und speichern Sie Ihren neuen Cluster.
- Wählen Sie den Namen Ihres neuen Clusters aus.
- Kopieren Sie in der URL-Zeichenfolge den Inhalt zwischen
/clusters/und/configuration. In der Zeichenfolgeclusters/0306-152107-daft561/configurationkopieren Sie beispielsweise0306-152107-daft561. - Speichern Sie diese Zeichenfolge für die spätere Verwendung.
Einrichten des Coderepositorys in Azure Data Factory
- Wechseln Sie in Azure Data Factory zu Erstellung & Überwachung. Weitere Informationen finden Sie unter Erstellen einer Data Factory.
- Wählen Sie Coderepository einrichten aus, und verbinden Sie dann Ihr Repository.
- Repositorytyp: Azure DevOps-Git
- Azure DevOps-Organisation: Ihr aktives Konto
- Projektname: Ihr Azure DevOps-Datenpipelineprojekt
- Git-Repositoryname: Vorhandenes verwenden
- Wählen Sie den Mainbranch für die Zusammenarbeit aus.
- Legen Sie /azure-data-pipeline/factorydata als Stammordner fest.
- Branch zum Importieren von Ressourcen: Wählen Sie Vorhandenen verwenden und main aus.
Verknüpfen von Azure Data Factory mit Ihrem Schlüsseltresor
- Öffnen Sie im Azure-Portal den Schlüsseltresor.
- Klicken Sie auf Zugriffsrichtlinien.
- Wählen Sie Zugriffsrichtlinie hinzufügen aus.
- Wählen Sie für Aus Vorlage konfigurieren die Option Schlüssel & Geheimnisverwaltung aus.
- Suchen Sie im Select Principal nach dem Namen Ihrer Entwicklungs-Azure Data Factory und fügen Sie ihn hinzu.
- Wählen Sie Hinzufügen aus, um Ihre Zugriffsrichtlinien hinzuzufügen.
- Wiederholen Sie diese Schritte, um eine Zugriffsrichtlinie für die Azure Data Factory-Test hinzuzufügen.
Aktualisieren des verknüpften Schlüsseltresors in Azure Data Factory
- Navigieren Sie zu Verwalten>Verknüpfte Dienste.
- Aktualisieren Sie den Key Vault, um eine Verbindung mit Ihrem Abonnement herzustellen.
Aktualisieren des verknüpften Speicherdiensts in Azure Data Factory
- Navigieren Sie zu Verwalten>Verknüpfte Dienste.
- Aktualisieren Sie den Wert für Azure Blob Storage, um eine Verbindung mit Ihrem Abonnement herzustellen.
Aktualisieren des verknüpften Azure Databricks-Diensts in Azure Data Factory
- Navigieren Sie zu Verwalten>Verknüpfte Dienste.
- Aktualisieren Sie den Wert für Azure Databricks, um eine Verbindung mit Ihrem Abonnement herzustellen.
- Geben Sie unter Vorhandene Cluster-ID den zuvor gespeicherten Clusterwert ein.
Testen und Veröffentlichen der Data Factory
- Wechseln Sie in Azure Data Factory zu Bearbeiten.
- Öffnen Sie
DataPipeline. - Wählen Sie Variablen aus.
- Vergewissern Sie sich im Azure-Portal, dass
storage_account_nameauf Ihr Speicherkonto verweist. Aktualisieren Sie den Standardwert bei Bedarf. Speichern Sie die Änderungen. - Wählen Sie Überprüfen aus, um
DataPipelinezu überprüfen. - Wählen Sie Veröffentlichen aus, um Data Factory-Ressourcen im
adf_publish-Branch Ihres Repositorys zu veröffentlichen.
Ausführen der CI/CD-Pipeline
Führen Sie die folgenden Schritte aus, um die CI/CD-Pipeline (Continuous Integration und Continuous Delivery) auszuführen:
- Wechseln Sie zur Seite Pipelines. Wählen Sie dann die Aktion zum Erstellen einer neuen Pipeline aus.
- Wählen Sie Azure Repos-Git als Speicherort Ihres Quellcodes aus.
- Wenn die Liste der Repositorys angezeigt wird, wählen Sie Ihr Repository aus.
- Wählen Sie beim Einrichten der Pipeline Vorhandene Azure Pipelines-YAML-Datei aus. Wählen Sie die YAML-Datei /azure-data-pipeline/data_pipeline_ci_cd.yml aus.
- Ausführen der Pipeline. Wenn Sie Die Pipeline zum ersten Mal ausführen, müssen Sie möglicherweise während der Ausführung die Berechtigung zum Zugriff auf eine Ressource erteilen.
Beispiel für eine YaML-Pipelinedatei
Die data_pipeline_ci_cd.yml Datei koordiniert die Bereitstellung Ihrer Data Factory- und Databricks-Ressourcen. Hier ist eine Beispielstruktur dessen, was die Pipeline enthält:
trigger:
- main
variables:
- group: datapipeline-vg
- group: keys-vg
stages:
- stage: Build
jobs:
- job: BuildDataFactory
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: $(AZURE_RM_CONNECTION)
subscriptionId: $(SubscriptionId)
action: 'Create Or Update Resource Group'
resourceGroupName: $(RESOURCE_GROUP)
location: $(LOCATION)
templateLocation: 'Linked artifact'
cacheArtifacts: true
- stage: Deploy_Dev
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeployToDevFactory
pool:
vmImage: 'ubuntu-latest'
environment: 'Dev'
strategy:
runOnce:
deploy:
steps:
- task: AzureDataFactoryPublish@1
inputs:
ConnectedServiceName: $(AZURE_RM_CONNECTION)
DataFactoryName: $(DATA_FACTORY_DEV_NAME)
ResourceGroupName: $(RESOURCE_GROUP)
- stage: Deploy_Test
dependsOn: Deploy_Dev
condition: succeeded()
jobs:
- deployment: DeployToTestFactory
pool:
vmImage: 'ubuntu-latest'
environment: 'Test'
strategy:
runOnce:
deploy:
steps:
- task: AzureDataFactoryPublish@1
inputs:
ConnectedServiceName: $(AZURE_RM_CONNECTION)
DataFactoryName: $(DATA_FACTORY_TEST_NAME)
ResourceGroupName: $(RESOURCE_GROUP)
Die vollständige Pipelinedatei finden Sie im Azure-Data-Pipeline-Repository.
Bereinigen von Ressourcen
Wenn Sie nicht beabsichtigen, diese Anwendung weiterhin zu verwenden, löschen Sie Ihre Datenpipeline, indem Sie die folgenden Schritte ausführen:
- Löschen Sie die Ressourcengruppe
data-pipeline-cicd-rg. - Löschen Sie Ihr Azure DevOps-Projekt.