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

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()

Vincule seu workspace de machine learning e o workspace do Synapse por meio do Estúdio do Azure Machine Learning:

  1. Entre no Estúdio do Azure Machine Learning

  2. Selecione Serviços vinculados na seção Gerenciar do painel esquerdo

  3. Selecione Adicionar integração

  4. 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
  5. 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

  6. Selecione Avançar para abrir o formulário Revisão e verifique suas seleções

  7. 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

Anexar um pool usando o Studio

  1. Entre no Estúdio do Azure Machine Learning
  2. Selecione Serviços vinculados na seção Gerenciar do painel esquerdo
  3. Selecione seu workspace do Synapse
  4. Selecione Pools do Spark anexados no canto superior esquerdo
  5. Selecione Anexar
  6. Selecione o Pool do Apache Spark na lista e forneça um nome
    1. Esta lista identifica os Pools do Spark do Synapse disponíveis que podem ser anexados à sua computação
    2. 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
  7. 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

  1. Configura o SynapseCompute com

    1. O LinkedService, linked_service que você criou ou recuperou na etapa anterior
    2. O tipo de destino de computação que você deseja anexar – neste caso, SynapseSpark
    3. 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
  2. Cria um ComputeTarget de aprendizado de máquina passando

    1. O espaço de trabalho de aprendizado de máquina que você deseja usar, ws
    2. O nome que você gostaria de usar para se referir à computação no workspace do Azure Machine Learning
    3. O attach_configuration que você especificou ao configurar a Computação do Synapse
      1. A chamada para ComputeTarget.attach() é assíncrona, portanto, a execução de exemplo é bloqueada até que a chamada seja concluída

Próximas etapas