Collegare le aree di lavoro di Azure Synapse Analytics e Azure Machine Learning e collegare pool di Apache Spark (deprecati)
SI APPLICA A: Python SDK azureml v1
Avviso
L'integrazione di Azure Synapse Analytics con Azure Machine Learning, disponibile Python SDK v1, è deprecata. Gli utenti possono comunque usare l'area di lavoro di Synapse, registrata con Azure Machine Learning, come servizio collegato. Tuttavia, non è più possibile registrare una nuova area di lavoro di Synapse con Azure Machine Learning come servizio collegato. È consigliabile usare l'ambiente di calcolo Spark serverless e i pool di Spark per Synapse collegati, disponibili nell'interfaccia della riga di comando v2 e in Python SDK v2. Per altre informazioni, vedere https://aka.ms/aml-spark.
Questo articolo illustra come creare un servizio collegato che collega l’area di lavoro di Azure Synapse Analytics e l’area di lavoro di Azure Machine Learning.
Con un'area di lavoro di Azure Machine Learning collegata a un'area di lavoro di Azure Synapse, è possibile collegare un pool di Apache Spark, basato su Azure Synapse Analytics, come risorsa di calcolo dedicata. È possibile usare questa risorsa per il data wrangling su larga scala oppure eseguire il training del modello, tutto dallo stesso notebook Python.
È possibile collegare l'area di lavoro di Machine Learning e l'area di lavoro di Synapse all'SDK Python o a Studio di Azure Machine Learning. È anche possibile collegare aree di lavoro e collegare un pool di Spark per Synapse con un singolo modello di Azure Resource Manager (ARM).
Prerequisiti
Installare l’SDK Python di Azure Machine Learning
Creare un pool di Apache Spark usando il portale di Azure, gli strumenti Web o Synapse Studio
Accedere a Studio di Azure Machine Learning
Collegare aree di lavoro con l’SDK Python
Importante
Per collegarsi correttamente all'area di lavoro di Synapse, è necessario avere il ruolo di Proprietario dell'area di lavoro di Synapse. Controllare l'accesso nel portale di Azure.
Se si è solo un Collaboratore all'area di lavoro di Synapse e non si dispone di un Proprietario per l'area di lavoro di Synapse, è possibile usare solo i servizi collegati esistenti. Per altre informazioni, visitare Recuperare e usare un servizio collegato esistente.
Questo codice usa le classi LinkedService
e SynapseWorkspaceLinkedServiceConfiguration
, per
- Collegare l'area di lavoro di Machine Learning
ws
all'area di lavoro di Azure Synapse - Registrare l'area di lavoro di Synapse con Azure Machine Learning come servizio collegato
import datetime
from azureml.core import Workspace, LinkedService, SynapseWorkspaceLinkedServiceConfiguration
# Azure Machine Learning workspace
ws = Workspace.from_config()
#link configuration
synapse_link_config = SynapseWorkspaceLinkedServiceConfiguration(
subscription_id=ws.subscription_id,
resource_group= 'your resource group',
name='mySynapseWorkspaceName')
# Link workspaces and register Synapse workspace in Azure Machine Learning
linked_service = LinkedService.register(workspace = ws,
name = 'synapselink1',
linked_service_config = synapse_link_config)
Importante
L’identità gestita system_assigned_identity_principal_id
viene creata per ogni servizio collegato. Prima di avviare la sessione di Synapse, è necessario concedere a questa identità gestita il ruolo di amministratore di Apache Spark per Synapse dell'area di lavoro di Synapse. Per altre informazioni, vedere Come gestire assegnazioni di controllo degli accessi in base al ruolo (RBAC) di Azure Synapse in Synapse Studio.
Per trovare system_assigned_identity_principal_id
di un servizio collegato specifico, usare LinkedService.get('<your-mlworkspace-name>', '<linked-service-name>')
.
Gestire i servizi collegati
Visualizzare tutti i servizi collegati associati all'area di lavoro di Machine Learning:
LinkedService.list(ws)
Per scollegare le aree di lavoro, usare il metodo unregister()
:
linked_service.unregister()
Collegare aree di lavoro tramite Studio
Collegare l'area di lavoro di Machine Learning e l'area di lavoro di Synapse tramite Studio di Azure Machine Learning:
Accedere a Studio di Azure Machine Learning
Selezionare Servizi collegati nella sezione Gestisci del riquadro sinistro
Selezionare Aggiungi di integrazione
Nel modulo Collega area di lavoro, riempire i campi
Campo Descrizione Name Specificare un nome per il servizio collegato. I riferimenti a questo servizio collegato specifico usano questo nome Nome della sottoscrizione Selezionare il nome della sottoscrizione associata all'area di lavoro di Machine Learning Area di lavoro di Synapse Selezionare l'area di lavoro di Synapse a cui si vuole collegarsi Selezionare Successivo per aprire il modulo Seleziona pool di Spark (facoltativo). In questo modulo, si seleziona il pool di Spark per Synapse da collegare all'area di lavoro
Selezionare Successivo per aprire il modulo Rivedi e controllare le selezioni
Selezionare Crea per completare il processo di creazione del servizio collegato
Ottenere un servizio collegato esistente
Prima di poter collegare un ambiente di calcolo dedicato per il data wrangling, è necessario avere un'area di lavoro di Machine Learning collegata a un'area di lavoro di Azure Synapse Analytics. Questa area di lavoro viene considerata come un servizio collegato. Il recupero e l'uso di un servizio collegato esistente richiede le autorizzazioni Utente o Collaboratore per l'area di lavoro di Azure Synapse Analytics.
Questo esempio recupera un servizio collegato esistente, synapselink1
, dall'area di lavoro ws
, con il metodo get()
:
from azureml.core import LinkedService
linked_service = LinkedService.get(ws, 'synapselink1')
Collegare il pool di Spark per Synapse come ambiente di calcolo
Dopo aver recuperato il servizio collegato, collegare un pool di Apache Spark per Synapse come risorsa di calcolo dedicata per le attività di data wrangling. È possibile collegare pool di Apache Spark con
- Studio di Azure Machine Learning
- Modelli di Azure Resource Manager (ARM)
- Azure Machine Learning Python SDK
Collegare un pool tramite Studio
- Accedere a Studio di Azure Machine Learning
- Selezionare Servizi collegati nella sezione Gestisci del riquadro sinistro
- Selezionare l'area di lavoro di Synapse
- Selezionare i pool di Spark collegati in alto a sinistra
- Selezionare Collega
- Selezionare il pool di Apache Spark dall'elenco e specificare un nome
- Questo elenco identifica i pool di Spark per Synapse disponibili che possono essere collegati all’ambiente di calcolo
- Per creare un nuovo pool di Spark per Synapse, vedere Avvio rapido: Creare un nuovo pool di Apache Spark serverless usando il portale di Azure
- Selezionare Collega selezionato
Collegare un pool con l’SDK Python
È anche possibile usare l’SDK Python per collegare un pool di Apache Spark, come illustrato in questo esempio di codice:
from azureml.core.compute import SynapseCompute, ComputeTarget
attach_config = SynapseCompute.attach_configuration(linked_service, #Linked synapse workspace alias
type='SynapseSpark', #Type of assets to attach
pool_name=synapse_spark_pool_name) #Name of Synapse spark pool
synapse_compute = ComputeTarget.attach(workspace= ws,
name= synapse_compute_name,
attach_configuration= attach_config
)
synapse_compute.wait_for_completion()
Verificare che il pool di Apache Spark sia collegato.
ws.compute_targets['Synapse Spark pool alias']
Questo codice
Configura
SynapseCompute
conLinkedService
,linked_service
creato o recuperato nel passaggio precedente- Tipo di destinazione di calcolo da collegare, in questo caso
SynapseSpark
- Nome del pool di Apache Spark. Il nome deve corrispondere a un pool di Apache Spark esistente, presente nell'area di lavoro di Azure Synapse Analytics
Crea un
ComputeTarget
di Machine Learning passando in- L'area di lavoro di Machine Learning da usare,
ws
- Nome che si vuole usare per fare riferimento all’ambiente di calcolo all'interno dell'area di lavoro di Azure Machine Learning
- attach_configuration specificato durante la configurazione dell'ambiente di calcolo di Synapse
- La chiamata a ComputeTarget.attach() è asincrona, quindi l'esecuzione dell'esempio viene bloccata fino al completamento della chiamata
- L'area di lavoro di Machine Learning da usare,