Erstellen einer Datenpipeline mithilfe von Azure Data Factory, DevOps und maschinellem Lernen
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 Schaltfläche Cloud Shell aus. Wählen Sie Bash aus, wenn Sie dazu aufgefordert werden.
Hinweis
Sie benötigen eine Azure Storage-Ressource, damit Sie die in Azure Cloud Shell erstellten Dateien aufbewahren können. Wenn Sie Cloud Shell erstmals öffnen, werden Sie aufgefordert, eine Ressourcengruppe, ein Speicherkonto und eine Azure Files-Freigabe zu erstellen. Dieses Setup wird automatisch für alle zukünftigen Cloud Shell-Sitzungen verwendet.
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 App Service-Instanzen, wird eine Region zugewiesen.
Um die Ausführung von Befehlen zu erleichtern, wählen Sie zunächst eine Standardregion aus. 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 table
Wählen Sie in der Spalte
Name
in der Ausgabe eine Region in Ihrer Nähe aus. Wählen Sie zum Beispielasiapacific
oderwestus2
aus.Führen Sie
az config
aus, 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
westus2
als Standardregion festgelegt.az config set defaults.location=westus2
Erstellen von Bash-Variablen
Generieren Sie in Cloud Shell eine Zufallszahl. Sie verwenden diese Zahl, um im nächsten Schritt global eindeutige Namen für bestimmte Dienste zu erstellen.
resourceSuffix=$RANDOM
Erstellen Sie global eindeutige Namen für Ihr Speicherkonto und Ihren Schlüsseltresor. 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 create
aus, um mithilfe vonrgName
eine Ressourcengruppe zu erstellen.az group create --name $rgName
Führen Sie den folgenden Befehl
az storage account create
aus, um ein neues Speicherkonto zu erstellen.az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_RAGRS \ --kind StorageV2
Führen Sie den folgenden Befehl
az storage container create
aus, um die beiden Containerrawdata
undprepareddata
zu erstellen.az storage container create -n rawdata --account-name $storageName az storage container create -n prepareddata --account-name $storageName
Führen Sie den folgenden Befehl
az keyvault create
aus, um einen neuen Schlüsseltresor zu erstellen.az keyvault create \ --name $keyVault \ --resource-group $rgName
Erstellen 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 datafactory
Führen Sie den folgenden Befehl
az datafactory create
aus, um eine neue Data Factory zu erstellen.az datafactory create \ --name data-factory-cicd-dev \ --resource-group $rgName
Kopieren Sie die Abonnement-ID. Ihre Data Factory 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 Data Factory zu Testzwecken.
- 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 Befehl
az datafactory create
aus, um eine neue Data Factory für Ihre Tests zu erstellen.az datafactory create \ --name data-factory-cicd-test \ --resource-group $rgName
Kopieren Sie die Abonnement-ID. Ihre Data Factory 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 databricks
Führen Sie den folgenden Befehl
az databricks workspace create
aus, um einen neuen Arbeitsbereich zu erstellen.az databricks workspace create \ --resource-group $rgName \ --name databricks-cicd-ws \ --location eastus2 \ --sku trial
Kopieren 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 Key Vault
Sie verwenden Azure Key Vault, um sämtliche Verbindungsinformationen zu Ihren Azure-Diensten 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.
Speichern von Werten in Key Vault
Erstellen Sie drei Geheimnisse:
- databricks-token:
your-databricks-pat
- StorageKey:
your-storage-key
- StorageConnectString:
your-storage-connection
- databricks-token:
Führen Sie den folgenden Befehl
az keyvault secret set
aus, 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 Dienstprinzipal (automatisch) 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 Dienstverbindungsadministratorrolle, um diese Option auswählen zu können.
Pipelinevariablen hinzufügen
Erstellen Sie eine neue Variablengruppe mit dem Namen
datapipeline-vg
.Fügen Sie die Azure DevOps-Erweiterung hinzu, wenn sie noch nicht installiert ist.
az extension add --name azure-devops
Melden 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 pullt Datenvariablen aus Key Vault.Wählen Sie Geheimnisse von einem Azure Key Vault als Variablen verknüpfen aus. Weitere Informationen finden Sie unter Verknüpfen von Geheimnissen aus 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/configuration
würden Sie z. B.0306-152107-daft561
kopieren. - 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 unter Prinzipal auswählen nach dem Namen Ihrer Entwicklungs-Data Factory, und fügen Sie sie hinzu.
- Wählen Sie Hinzufügen aus, um Ihre Zugriffsrichtlinien hinzuzufügen.
- Wiederholen Sie diese Schritte, um eine Zugriffsrichtlinie für die Test-Data Factory hinzuzufügen.
Aktualisieren des verknüpften Schlüsseltresors in Azure Data Factory
- Navigieren Sie zu Verwalten>Verknüpfte Dienste.
- Aktualisieren Sie den Schlüsseltresor in Azure 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_name
auf Ihr Speicherkonto verweist. Aktualisieren Sie den Standardwert bei Bedarf. Speichern Sie die Änderungen. - Wählen Sie Überprüfen aus, um
DataPipeline
zu ü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 Ihre Pipeline noch nicht ausgeführt wurde, müssen Sie möglicherweise während der Ausführung die Berechtigung für den Zugriff auf eine Ressource erteilen.
Bereinigen von Ressourcen
Falls Sie diese Anwendung nicht weiterverwenden möchten, löschen Sie Ihre Datenpipeline wie folgt:
- Löschen Sie die Ressourcengruppe
data-pipeline-cicd-rg
. - Löschen Sie Ihr Azure DevOps-Projekt.
Nächste Schritte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für