Vincule os espaços de trabalho do Azure Synapse Analytics e do Azure Machine Learning e anexe pools do Apache Spark (preterido)

APLICA-SE A: Python SDK azureml v1

Aviso

A integração do Azure Synapse Analytics com o Azure Machine Learning, disponível no Python SDK v1, foi preterida. Os usuários ainda podem usar o espaço de trabalho Synapse, registrado no Azure Machine Learning, como um serviço vinculado. No entanto, já não pode ser registada uma nova área de trabalho do Synapse no Azure Machine Learning como um serviço associado. Recomendamos o uso de computação Spark sem servidor e pools Synapse Spark anexados, disponíveis na CLI v2 e Python SDK v2. Para mais informações, visite https://aka.ms/aml-spark.

Neste artigo, você aprenderá a criar um serviço vinculado que vincula seu espaço de trabalho do Azure Synapse Analytics e o espaço de trabalho do Azure Machine Learning.

Com um espaço de trabalho do Azure Machine Learning, vinculado a um espaço de trabalho 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 disputa de dados em escala ou pode realizar treinamento de modelo - tudo a partir do mesmo bloco de anotações Python.

Você pode vincular seu espaço de trabalho de ML e o espaço de trabalho Synapse ao SDK do Python ou ao estúdio de Aprendizado de Máquina do Azure. Você também pode vincular espaços de trabalho e anexar um pool Synapse Spark com um único modelo do Azure Resource Manager (ARM).

Pré-requisitos

Importante

Para vincular com êxito ao espaço de trabalho Synapse, você deve receber a função de Proprietário do espaço de trabalho Synapse. Verifique o acesso no portal do Azure.

Se você for apenas um Colaborador do espaço de trabalho Synapse e não tiver um Proprietário para esse espaço de trabalho Synapse, você só poderá usar os serviços vinculados existentes. Para obter mais informações, visite Recuperar e usar um serviço vinculado existente.

Este código emprega as LinkedService classes e SynapseWorkspaceLinkedServiceConfiguration , para

  • Vincular seu espaço de trabalho ws de aprendizado de máquina ao espaço de trabalho do Azure Synapse
  • Registrar seu espaço de trabalho 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 system_assigned_identity_principal_id gerenciada é criada para cada serviço vinculado. Você deve conceder a essa identidade gerenciada a função Synapse Apache Spark Administrator do espaço de trabalho Synapse antes de iniciar sua sessão Synapse. Para obter mais informações, visite Como gerenciar atribuições RBAC do Azure Synapse no Synapse Studio.

Para encontrar o 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

Veja todos os serviços vinculados associados ao seu espaço de trabalho de aprendizado de máquina:

LinkedService.list(ws)

Para desvincular seus espaços de trabalho, use o unregister() método:

linked_service.unregister()

Vincule seu espaço de trabalho de aprendizado de máquina e o espaço de trabalho Synapse por meio do estúdio de Aprendizado de Máquina do Azure:

  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 Espaço de trabalho Link, preencha os campos

    Campo Descrição
    Name Forneça um nome para o serviço vinculado. As referências a este serviço vinculado específico usam este nome
    Nome da subscrição Selecione o nome da sua subscrição associada à sua área de trabalho de aprendizagem automática
    Área de trabalho do Azure Synapse Selecione o espaço de trabalho Synapse ao qual você deseja vincular
  5. Selecione Avançar para abrir o formulário Selecionar pools de faíscas (opcional). Neste formulário, você seleciona qual pool Synapse Spark anexar ao seu espaço de trabalho

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

  7. Selecione Criar para concluir o processo de criação do serviço vinculado

Obter um serviço vinculado existente

Antes de anexar uma computação dedicada para disputa de dados, você deve ter um espaço de trabalho de aprendizado de máquina vinculado a um espaço de trabalho do Azure Synapse Analytics. Referimo-nos a este espaço de trabalho como um serviço ligado. A recuperação e o uso de um serviço vinculado existente exigem permissões de Usuário ou Colaborador para o espaço de trabalho do Azure Synapse Analytics.

Este exemplo recupera um serviço vinculado existente - synapselink1 - do espaço de trabalho ws, com o get() método:

from azureml.core import LinkedService

linked_service = LinkedService.get(ws, 'synapselink1')

Anexar o pool Synapse Spark como um cálculo

Depois de recuperar o serviço vinculado, anexe um pool Synapse Apache Spark como um recurso de computação dedicado para suas tarefas de disputa de dados. Você pode anexar pools Apache Spark com

Anexe uma piscina através do estúdio

  1. Entre no estúdio do Azure Machine Learning
  2. Selecione Serviços Vinculados na seção Gerenciar do painel esquerdo
  3. Selecione seu espaço de trabalho Synapse
  4. Selecione Piscinas de faíscas anexadas no canto superior esquerdo
  5. Selecione Anexar
  6. Selecione seu pool Apache Spark na lista e forneça um nome
    1. Esta lista identifica os pools Synapse Spark disponíveis que podem ser anexados à sua computação
    2. Para criar um novo pool do Synapse Spark, consulte Guia de início rápido: criar um novo pool do Apache Spark sem servidor usando o portal do Azure
  7. Selecione Anexar selecionado

Anexar um pool com o Python SDK

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

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 Apache Spark existente no espaço de trabalho do Azure Synapse Analytics
  2. Cria um aprendizado de ComputeTarget 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 espaço de trabalho do Azure Machine Learning
    3. O attach_configuration especificado quando configurou o Synapse Compute
      1. A chamada para ComputeTarget.attach() é assíncrona, portanto, a execução do exemplo é bloqueada até que a chamada seja concluída

Próximos passos