Länka Azure Synapse Analytics- och Azure Machine Learning-arbetsytor och bifoga Apache Spark-pooler (inaktuella)

GÄLLER FÖR:Python SDK azureml v1

Varning

Azure Synapse Analytics-integreringen med Azure Machine Learning, som finns i Python SDK v1, är inaktuell. Användare kan fortfarande använda Synapse-arbetsytan, registrerad med Azure Machine Learning, som en länkad tjänst. Men en ny Synapse-arbetsyta kan inte längre registreras med Azure Machine Learning som en länkad tjänst. Vi rekommenderar att du använder serverlös Spark-beräkning och anslutna Synapse Spark-pooler, som är tillgängliga i CLI v2 och Python SDK v2. Mer information finns på https://aka.ms/aml-spark.

I den här artikeln får du lära dig hur du skapar en länkad tjänst som länkar din Azure Synapse Analytics-arbetsyta och Azure Machine Learning-arbetsyta.

Med en Azure Machine Learning-arbetsyta som är länkad till en Azure Synapse-arbetsyta kan du koppla en Apache Spark-pool som drivs av Azure Synapse Analytics som en dedikerad beräkningsresurs. Du kan använda den här resursen för dataomvandling i stor skala, eller så kan du utföra modellträning – allt från samma Python-notebook-fil.

Du kan länka ML-arbetsytan och Synapse-arbetsytan med Python SDK eller Azure Machine Learning-studio. Du kan också länka arbetsytor och bifoga en Synapse Spark-pool med en enda Arm-mall (Azure Resource Manager).

Förutsättningar

Viktigt!

Om du vill länka till Synapse-arbetsytan måste du beviljas rollen Ägare för Synapse-arbetsytan. Kontrollera din åtkomst i Azure-portalen.

Om du bara är deltagare i Synapse-arbetsytan och inte har någon ägare för synapse-arbetsytan kan du bara använda befintliga länkade tjänster. Mer information finns i Hämta och använda en befintlig länkad tjänst.

Den här koden använder LinkedService klasserna och SynapseWorkspaceLinkedServiceConfiguration för att

  • Länka din maskininlärningsarbetsyta ws till din Azure Synapse-arbetsyta
  • Registrera din Synapse-arbetsyta med Azure Machine Learning som en länkad tjänst
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)

Viktigt!

Hanterad identitet system_assigned_identity_principal_id skapas för varje länkad tjänst. Du måste ge den här hanterade identiteten rollen Synapse Apache Spark-administratör för Synapse-arbetsytan innan du startar Synapse-sessionen. Mer information finns i Hantera Azure Synapse RBAC-tilldelningar i Synapse Studio.

Om du vill hitta system_assigned_identity_principal_id en specifik länkad tjänst använder du LinkedService.get('<your-mlworkspace-name>', '<linked-service-name>').

Hantera länkade tjänster

Visa alla länkade tjänster som är associerade med din maskininlärningsarbetsyta:

LinkedService.list(ws)

Om du vill ta bort länken mellan dina arbetsytor använder du unregister() metoden:

linked_service.unregister()

Länka din maskininlärningsarbetsyta och Synapse-arbetsyta via Azure Machine Learning-studio:

  1. Logga in på Azure Machine Learning-studio

  2. Välj Länkade tjänster i avsnittet Hantera i den vänstra rutan

  3. Välj Lägg till integrering

  4. I formuläret Länka arbetsyta fyller du i fälten

    Fält Beskrivning
    Name Ange ett namn för den länkade tjänsten. Referenser till den här specifika länkade tjänsten använder det här namnet
    Prenumerationsnamn Välj namnet på din prenumeration som är associerad med din maskininlärningsarbetsyta
    Synapse-arbetsyta Välj den Synapse-arbetsyta som du vill länka till
  5. Välj Nästa för att öppna formuläret Välj Spark-pooler (valfritt). I det här formuläret väljer du vilken Synapse Spark-pool som ska kopplas till din arbetsyta

  6. Välj Nästa för att öppna granskningsformuläret och kontrollera dina val

  7. Välj Skapa för att slutföra processen för att skapa den länkade tjänsten

Hämta en befintlig länkad tjänst

Innan du kan bifoga en dedikerad beräkning för dataomvandling måste du ha en maskininlärningsarbetsyta länkad till en Azure Synapse Analytics-arbetsyta. Vi refererar till den här arbetsytan som en länkad tjänst. Hämtning och användning av en befintlig länkad tjänst kräver användar- eller deltagarbehörighet till Azure Synapse Analytics-arbetsytan.

Det här exemplet hämtar en befintlig länkad tjänst från synapselink1 arbetsytan wsmed get() metoden:

from azureml.core import LinkedService

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

Bifoga Synapse Spark-pool som en beräkning

När du har hämtat den länkade tjänsten bifogar du en Synapse Apache Spark-pool som en dedikerad beräkningsresurs för dina dataomvandlingsuppgifter. Du kan bifoga Apache Spark-pooler med

Koppla en pool via studion

  1. Logga in på Azure Machine Learning-studio
  2. Välj Länkade tjänster i avsnittet Hantera i den vänstra rutan
  3. Välj din Synapse-arbetsyta
  4. Välj Anslutna Spark-pooler längst upp till vänster
  5. Välj Bifoga
  6. Välj din Apache Spark-pool i listan och ange ett namn
    1. Den här listan identifierar tillgängliga Synapse Spark-pooler som kan kopplas till din beräkning
    2. Information om hur du skapar en ny Synapse Spark-pool finns i Snabbstart: Skapa en ny serverlös Apache Spark-pool med hjälp av Azure-portalen
  7. Välj Bifoga markerad

Koppla en pool med Python SDK

Du kan också använda Python SDK för att ansluta en Apache Spark-pool, som du ser i det här kodexemplet:

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

Kontrollera att Apache Spark-poolen är ansluten.

ws.compute_targets['Synapse Spark pool alias']

Den här koden

  1. Konfigurerar SynapseCompute med

    1. linked_service, LinkedServicesom du antingen skapade eller hämtade i föregående steg
    2. Den typ av beräkningsmål som du vill koppla – i det här fallet SynapseSpark
    3. Namnet på Apache Spark-poolen. Namnet måste matcha en befintlig Apache Spark-pool som finns på din Azure Synapse Analytics-arbetsyta
  2. Skapar en maskininlärning ComputeTarget genom att skicka in

    1. Den maskininlärningsarbetsyta som du vill använda, ws
    2. Namnet som du vill använda för att referera till beräkningen på Azure Machine Learning-arbetsytan
    3. Den attach_configuration du angav när du konfigurerade Synapse Compute
      1. Anropet till ComputeTarget.attach() är asynkront, så exempelkörningen blockeras tills anropet har slutförts

Nästa steg