Vincular workspaces do Azure Synapse Analytics e do Azure Machine Learning e anexar pools do Apache Spark (preterido)
APLICA-SE A: SDK do Python azureml v1
Aviso
A integração do Azure Synapse Analytics com o Azure Machine Learning, disponível no SDK do Python v1, foi preterida. Os usuários ainda podem usar o workspace do Synapse, registrado no Azure Machine Learning, como um serviço vinculado. No entanto, um novo workspace do Synapse não pode mais ser registrado no Azure Machine Learning como um serviço vinculado. Recomendamos o uso de computação do Spark sem servidor e Pools do Spark do Synapse anexados, disponíveis na CLI v2 e no SDK do Python v2. Para obter mais informações, visite https://aka.ms/aml-spark.
Neste artigo, você aprenderá a criar um serviço vinculado que associa o seu workspace do Azure Synapse Analytics e o workspace do Azure Machine Learning.
Com um workspace do Azure Machine Learning, vinculado a um workspace do Azure Synapse, você pode anexar um Pool do Apache Spark, alimentado pelo Azure Synapse Analytics, como um recurso de computação dedicado. Você pode usar esse recurso para estruturação de dados em escala ou realizar o treinamento de modelo – tudo no mesmo notebook Python.
Você pode vincular o workspace do ML e o workspace do Synapse com o SDK do Python ou o Estúdio do Azure Machine Learning. Você também pode vincular workspaces e anexar um Pool do Spark do Synapse com um único modelo do Azure Resource Manager (ARM).
Pré-requisitos
Instalar o SDK de Python do Azure Machine Learning
Criar um Pool do Apache Spark usando o portal do Azure, as ferramentas da Web ou o Synapse Studio
Acesso ao Estúdio do Azure Machine Learning
Vincular workspaces ao SDK de Python
Importante
Para vincular com êxito ao workspace do Synapse, você deve receber a função Proprietário do workspace do Synapse. Verifique seu acesso no portal do Azure.
Se você for apenas um Colaborador do workspace do Synapse e não tiver um Proprietário para esse workspace do Synapse, poderá usar apenas os serviços vinculados existentes. Para obter mais informações, visite Recuperar e usar um serviço vinculado existente.
Este código emprega as classes LinkedService
e SynapseWorkspaceLinkedServiceConfiguration
, para
- Vincular seu workspace de machine learning
ws
ao workspace do Azure Synapse - Registrar o seu workspace do Synapse com o Azure Machine Learning como um serviço vinculado
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
A identidade gerenciada system_assigned_identity_principal_id
é criada para cada serviço vinculado. Você deve conceder a essa identidade gerenciada a função de Administrador do Apache Spark do Synapse do workspace do Synapse antes de iniciar a sessão do Synapse. Para obter mais informações, visite Como gerenciar as atribuições de RBAC do Azure Synapse no Synapse Studio.
Para localizar a system_assigned_identity_principal_id
de um serviço vinculado específico, use LinkedService.get('<your-mlworkspace-name>', '<linked-service-name>')
.
Gerenciar serviços vinculados
Exiba todos os serviços vinculados associados ao workspace de machine learning:
LinkedService.list(ws)
Para desvincular seus workspaces, use o método unregister()
:
linked_service.unregister()
Vincular workspaces por meio do estúdio
Vincule seu workspace de machine learning e o workspace do Synapse por meio do Estúdio do Azure Machine Learning:
Entre no Estúdio do Azure Machine Learning
Selecione Serviços vinculados na seção Gerenciar do painel esquerdo
Selecione Adicionar integração
No formulário Vincular workspace, preencha os campos
Campo Descrição Nome Informe um nome para o seu serviço vinculado. As referências a esse serviço vinculado específico usam esse nome Nome da assinatura Selecione o nome da sua assinatura associada ao seu workspace de machine learning Workspace do Synapse Selecione o workspace do Synapse ao qual você deseja vincular Escolha Avançar para abrir o formulário Escolher pools do Spark (opcional) . Nesse formulário, você escolhe o pool do Synapse Spark que será anexado ao workspace
Selecione Avançar para abrir o formulário Revisão e verifique suas seleções
Selecione Criar para concluir o processo de criação de serviço vinculado
Obter um serviço vinculado já existente
Antes de anexar uma computação dedicada para estruturação de dados, você deve ter um workspace de machine learning vinculado a um workspace do Azure Synapse Analytics. Referimo-nos a esse workspace como um serviço vinculado. A recuperação e o uso de um serviço vinculado existente exigem permissões de Usuário ou Colaborador para o workspace do Azure Synapse Analytics.
Este exemplo recupera um serviço vinculado existente – synapselink1
– do workspace ws
com o método get()
:
from azureml.core import LinkedService
linked_service = LinkedService.get(ws, 'synapselink1')
Anexar um pool do Synapse Spark como computação
Após recuperar o serviço vinculado, anexe um pool do Synapse Apache Spark como recurso de computação dedicada para suas tarefas de estruturação de dados. Você pode anexar Pools do Apache Spark com
- Azure Machine Learning Studio
- Modelos do Azure Resource Manager (ARM)
- O SDK do Python do Azure Machine Learning
Anexar um pool usando o Studio
- Entre no Estúdio do Azure Machine Learning
- Selecione Serviços vinculados na seção Gerenciar do painel esquerdo
- Selecione seu workspace do Synapse
- Selecione Pools do Spark anexados no canto superior esquerdo
- Selecione Anexar
- Selecione o Pool do Apache Spark na lista e forneça um nome
- Esta lista identifica os Pools do Spark do Synapse disponíveis que podem ser anexados à sua computação
- Para criar um novo Pool do Spark do Synapse, confira Início rápido: criar um Pool do Apache Spark sem servidor usando o portal do Azure
- Selecione Anexar selecionado
Anexar um pool com o SDK do Python
Você também pode empregar o SDK do Python para anexar um Pool do Apache Spark, conforme mostrado neste exemplo de código:
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()
Verifique se o pool do Apache Spark está anexado.
ws.compute_targets['Synapse Spark pool alias']
Este código
Configura o
SynapseCompute
com- O
LinkedService
,linked_service
que você criou ou recuperou na etapa anterior - O tipo de destino de computação que você deseja anexar – neste caso,
SynapseSpark
- O nome do pool do Apache Spark. O nome deve corresponder a um Pool do Apache Spark que exista no workspace do Azure Synapse Analytics
- O
Cria um
ComputeTarget
de aprendizado de máquina passando- O espaço de trabalho de aprendizado de máquina que você deseja usar,
ws
- O nome que você gostaria de usar para se referir à computação no workspace do Azure Machine Learning
- O attach_configuration que você especificou ao configurar a Computação do Synapse
- A chamada para ComputeTarget.attach() é assíncrona, portanto, a execução de exemplo é bloqueada até que a chamada seja concluída
- O espaço de trabalho de aprendizado de máquina que você deseja usar,