Creare una pipeline di dati usando Azure Data Factory, DevOps e Machine Learning
Servizi di Azure DevOps
Introduzione alla creazione di una pipeline di dati con inserimento dati, trasformazione dei dati e training del modello.
Informazioni su come recuperare i dati da un file CSV (valori delimitati da virgole) e salvare i dati in Archiviazione BLOB di Azure. Trasformare i dati e salvarli in un'area di gestione temporanea. Eseguire quindi il training di un modello di Machine Learning usando i dati trasformati. Scrivere il modello nell'archivio BLOB come file pickle Python.
Prerequisiti
Prima di iniziare, è necessario disporre di quanto segue:
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Un'organizzazione di Azure DevOps attiva. Iscriversi ad Azure Pipelines.
- Ruolo Amministrazione istrator per le connessioni al servizio nel progetto Azure DevOps. Informazioni su come aggiungere il ruolo Amministrazione istrator.
- Dati di sample.csv.
- Accesso alla soluzione della pipeline di dati in GitHub.
- DevOps per Azure Databricks.
Effettuare il provisioning delle risorse di Azure
Accedere al portale di Azure.
Dal menu selezionare il pulsante Cloud Shell . Quando viene richiesto, selezionare l'esperienza Bash.
Nota
È necessaria una risorsa Archiviazione di Azure per rendere persistenti tutti i file creati in Azure Cloud Shell. Alla prima apertura, Cloud Shell chiede di creare un gruppo di risorse, un account di archiviazione e una condivisione di File di Azure. Questa configurazione viene usata automaticamente per tutte le sessioni di Cloud Shell future.
Selezionare un'area di Azure
Un'area è uno o più data center di Azure all'interno di una posizione geografica. Stati Uniti orientali, Stati Uniti occidentali ed Europa settentrionale sono esempi di aree. A ogni risorsa di Azure, inclusa un'istanza di servizio app, viene assegnata un'area.
Per semplificare l'esecuzione dei comandi, iniziare selezionando un'area predefinita. Dopo aver specificato l'area predefinita, i comandi successivi usano tale area a meno che non si specifichi un'area diversa.
In Cloud Shell eseguire questo comando
az account list-locations
per elencare le aree disponibili nella sottoscrizione di Azure.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Name
Dalla colonna nell'output scegliere un'area vicina all'utente. Ad esempio, scegliereasiapacific
owestus2
.Eseguire
az config
per impostare l'area predefinita. Nell'esempio seguente sostituire<REGION>
con il nome dell'area scelta.az config set defaults.location=<REGION>
L'esempio seguente imposta
westus2
come area predefinita.az config set defaults.location=westus2
Creare variabili Bash
In Cloud Shell generare un numero casuale. Questo numero verrà usato per creare nomi univoci globali per determinati servizi nel passaggio successivo.
resourceSuffix=$RANDOM
Creare nomi univoci globali per l'account di archiviazione e l'insieme di credenziali delle chiavi. I comandi seguenti usano virgolette doppie, che indicano a Bash di interpolare le variabili usando la sintassi inline.
storageName="datacicd${resourceSuffix}" keyVault="keyvault${resourceSuffix}"
Creare un'altra variabile Bash per archiviare i nomi e l'area del gruppo di risorse. Nell'esempio seguente sostituire
<REGION>
con l'area scelta per l'area predefinita.rgName='data-pipeline-cicd-rg' region='<REGION>'
Creare nomi di variabili per le istanze di Azure Data Factory e Azure Databricks.
datafactorydev='data-factory-cicd-dev' datafactorytest='data-factory-cicd-test' databricksname='databricks-cicd-ws'
Creazione di risorse Azure
Eseguire il comando seguente
az group create
per creare un gruppo di risorse usandorgName
.az group create --name $rgName
Eseguire il comando seguente
az storage account create
per creare un nuovo account di archiviazione.az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_RAGRS \ --kind StorageV2
Eseguire il comando seguente
az storage container create
per creare due contenitori eprepareddata
rawdata
.az storage container create -n rawdata --account-name $storageName az storage container create -n prepareddata --account-name $storageName
Eseguire il comando seguente
az keyvault create
per creare un nuovo insieme di credenziali delle chiavi.az keyvault create \ --name $keyVault \ --resource-group $rgName
Creare una nuova data factory usando l'interfaccia utente del portale o l'interfaccia della riga di comando di Azure:
- Nome:
data-factory-cicd-dev
- Versione:
V2
- Gruppo di risorse:
data-pipeline-cicd-rg
- Località: la località più vicina
- Deselezionare la selezione per Abilita Git.
Aggiungere l'estensione Azure Data Factory.
az extension add --name datafactory
Eseguire il comando seguente
az datafactory create
per creare una nuova data factory.az datafactory create \ --name data-factory-cicd-dev \ --resource-group $rgName
Copiare l'ID sottoscrizione. La data factory userà questo ID in un secondo momento.
- Nome:
Creare una seconda data factory usando l'interfaccia utente del portale o l'interfaccia della riga di comando di Azure. Questa data factory verrà usata per i test.
- Nome:
data-factory-cicd-test
- Versione:
V2
- Gruppo di risorse:
data-pipeline-cicd-rg
- Località: la località più vicina
- Deselezionare la selezione per Enable GIT (Abilita GIT).
Eseguire il comando seguente
az datafactory create
per creare una nuova data factory per il test.az datafactory create \ --name data-factory-cicd-test \ --resource-group $rgName
Copiare l'ID sottoscrizione. La data factory userà questo ID in un secondo momento.
- Nome:
Aggiungere un nuovo servizio Azure Databricks:
- Gruppo di risorse:
data-pipeline-cicd-rg
- Nome area di lavoro:
databricks-cicd-ws
- Località: la località più vicina
Aggiungere l'estensione Azure Databricks se non è già installata.
az extension add --name databricks
Eseguire il comando seguente
az databricks workspace create
per creare una nuova area di lavoro.az databricks workspace create \ --resource-group $rgName \ --name databricks-cicd-ws \ --location eastus2 \ --sku trial
Copiare l'ID sottoscrizione. Il servizio Databricks userà questo ID in un secondo momento.
- Gruppo di risorse:
Caricare i dati nel contenitore di archiviazione
- Nella portale di Azure aprire l'account di archiviazione nel
data-pipeline-cicd-rg
gruppo di risorse. - Passare a Contenitori del servizio>BLOB.
- Aprire il
prepareddata
contenitore. - Caricare il file sample.csv .
Impostare il Key Vault
Si userà Azure Key Vault per archiviare tutte le informazioni di connessione per i servizi di Azure.
Creare un token di accesso personale di Databricks
- Nella portale di Azure passare a Databricks e quindi aprire l'area di lavoro.
- Nell'interfaccia utente di Azure Databricks creare e copiare un token di accesso personale.
Copiare la chiave dell'account e stringa di connessione per l'account di archiviazione
- Passare all'account di archiviazione.
- Aprire chiavi di accesso.
- Copiare la prima chiave e stringa di connessione.
Salvare i valori in Key Vault
Creare tre segreti:
- databricks-token:
your-databricks-pat
- Archiviazione Key:
your-storage-key
- ArchiviazioneConnessione String:
your-storage-connection
- databricks-token:
Eseguire il comando seguente
az keyvault secret set
per aggiungere segreti all'insieme di credenziali delle chiavi.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"
Importare la soluzione della pipeline di dati
- Accedere all'organizzazione di Azure DevOps e quindi passare al progetto.
- Passare a Repos e quindi importare la versione con fork del repository GitHub. Per altre informazioni, vedere Importare un repository Git nel progetto.
Aggiungi una connessione al servizio Azure Resource Manager
- Creare una connessione al servizio Azure Resource Manager.
- Selezionare Entità servizio (automatico).
- Scegliere il gruppo di risorse data-pipeline-cicd-rg .
- Denominare la connessione
azure_rm_connection
al servizio . - Selezionare Concedi l'autorizzazione di accesso a tutte le pipeline. Per selezionare questa opzione, è necessario disporre del ruolo service Connessione ions Amministrazione istrator.
Aggiungere variabili della pipeline
Creare un nuovo gruppo di variabili denominato
datapipeline-vg
.Aggiungere l'estensione Azure DevOps, se non è già installata.
az extension add --name azure-devops
Accedere all'organizzazione di 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"
Creare un secondo gruppo di variabili denominato
keys-vg
. Questo gruppo eseguirà il pull delle variabili di dati da Key Vault.Selezionare Collega segreti da un insieme di credenziali delle chiavi di Azure come variabili. Per altre informazioni, vedere Collegare i segreti da un insieme di credenziali delle chiavi di Azure.
Autorizzare la sottoscrizione di Azure.
Scegliere tutti i segreti disponibili da aggiungere come variabili (
databricks-token
,StorageConnectString
,StorageKey
).
Configurare Azure Databricks e Azure Data Factory
Seguire la procedura descritta nelle sezioni successive per configurare Azure Databricks e Azure Data Factory.
Creare un ambito di test in Azure Databricks
- Nella portale di Azure passare a Proprietà dell'insieme di credenziali>delle chiavi.
- Copiare il nome DNS e l'ID risorsa.
- Nell'area di lavoro di Azure Databricks creare un ambito segreto denominato
testscope
.
Aggiungere un nuovo cluster in Azure Databricks
- Nell'area di lavoro di Azure Databricks passare a Cluster.
- Selezionare Create Cluster (Crea cluster).
- Assegnare un nome e salvare il nuovo cluster.
- Selezionare il nuovo nome del cluster.
- Nella stringa URL copiare il contenuto tra
/clusters/
e/configuration
. Ad esempio, nella stringaclusters/0306-152107-daft561/configuration
è necessario copiare0306-152107-daft561
. - Salvare questa stringa per usarla in un secondo momento.
Configurare il repository di codice in Azure Data Factory
- In Azure Data Factory passare a Creazione e monitoraggio. Per altre informazioni, vedere Creare una data factory.
- Selezionare Configura repository di codice e quindi connettere il repository.
- Tipo di repository: Azure DevOps Git
- Organizzazione di Azure DevOps: l'account attivo
- Nome progetto: progetto della pipeline di dati di Azure DevOps
- Nome repository Git: usare esistente.
- Selezionare il ramo principale per la collaborazione.
- Impostare /azure-data-pipeline/factorydata come cartella radice.
- Ramo in cui importare la risorsa: selezionare Usa esistente e principale.
Collegare Azure Data Factory all'insieme di credenziali delle chiavi
- Nell'interfaccia utente portale di Azure aprire l'insieme di credenziali delle chiavi.
- Seleziona Criteri di accesso.
- Seleziona Aggiungi criteri di accesso.
- Per Configura da modello, selezionare Chiave e gestione dei segreti.
- In Seleziona entità cercare il nome della data factory di sviluppo e aggiungerla.
- Selezionare Aggiungi per aggiungere i criteri di accesso.
- Ripetere questi passaggi per aggiungere un criterio di accesso per la data factory di test.
Aggiornare il servizio collegato dell'insieme di credenziali delle chiavi in Azure Data Factory
- Passare a Gestisci>servizi collegati.
- Aggiornare l'insieme di credenziali delle chiavi di Azure per connettersi alla sottoscrizione.
Aggiornare il servizio collegato di archiviazione in Azure Data Factory
- Passare a Gestisci>servizi collegati.
- Aggiornare il valore Archiviazione BLOB di Azure per connettersi alla sottoscrizione.
Aggiornare il servizio collegato Azure Databricks in Azure Data Factory
- Passare a Gestisci>servizi collegati.
- Aggiornare il valore di Azure Databricks per connettersi alla sottoscrizione.
- Per l'ID cluster esistente immettere il valore del cluster salvato in precedenza.
Testare e pubblicare la data factory
- In Azure Data Factory passare a Modifica.
DataPipeline
aperti.- Seleziona Variabili.
- Verificare che faccia riferimento all'account
storage_account_name
di archiviazione nel portale di Azure. Aggiornare il valore predefinito, se necessario. Salva le modifiche. - Selezionare Convalida per verificare
DataPipeline
. - Selezionare Pubblica per pubblicare asset di data factory nel
adf_publish
ramo del repository.
Eseguire la pipeline CI/CD
Seguire questa procedura per eseguire la pipeline di integrazione continua e recapito continuo (CI/CD):
- Passare alla pagina Pipeline . Quindi scegliere l'azione per creare una nuova pipeline.
- Selezionare Azure Repos Git come posizione del codice sorgente.
- Quando viene visualizzato l'elenco dei repository, selezionare il repository.
- Quando si configura la pipeline, selezionare File YAML di Azure Pipelines esistente. Scegliere il file YAML: /azure-data-pipeline/data_pipeline_ci_cd.yml.
- Esegui la pipeline. Se la pipeline non è stata eseguita in precedenza, potrebbe essere necessario concedere l'autorizzazione per accedere a una risorsa durante l'esecuzione.
Pulire le risorse
Se non si intende continuare a usare questa applicazione, eliminare la pipeline di dati seguendo questa procedura:
- Eliminare il
data-pipeline-cicd-rg
gruppo di risorse. - Eliminare il progetto Azure DevOps.
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per