Länka Azure Synapse Analytics- och Azure Machine Learning-arbetsytor och koppla Apache Spark-pooler (förhandsversion)

GÄLLER FÖR:Python SDK azureml v1

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 din Azure Machine Learning-arbetsyta länkad till din Azure Synapse arbetsyta kan du ansluta en Apache Spark-pool som drivs av Azure Synapse Analytics som en dedikerad beräkning för dataomvandling i stor skala eller utföra modellträning från samma Python-notebook-fil.

Du kan länka ML-arbetsytan och Synapse-arbetsytan via Python SDK eller Azure Machine Learning-studio.

Du kan också länka arbetsytor och koppla en Synapse Spark-pool med en enda Arm-mall (Azure Resource Manager).

Viktigt

Integreringen av Azure Machine Learning och Azure Synapse finns i offentlig förhandsversion. Funktionerna som presenteras från azureml-synapse paketet är experimentella förhandsversionsfunktioner och kan ändras när som helst.

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

Om du inte är ägare och bara är deltagare i Synapse-arbetsytan kan du bara använda befintliga länkade tjänster. Se hur du hämtar och använder en befintlig länkad tjänst.

Följande kod använder klasserna LinkedService och SynapseWorkspaceLinkedServiceConfiguration för att,

  • Länka din maskininlärningsarbetsyta ws med 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

En hanterad identitet, system_assigned_identity_principal_id, skapas för varje länkad tjänst. Den här hanterade identiteten måste beviljas Rollen Synapse Apache Spark-administratör för Synapse-arbetsytan innan du startar Synapse-sessionen. Tilldela Rollen Synapse Apache Spark-administratör till den hanterade identiteten i Synapse Studio.

Om du vill hitta för 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 till dina arbetsytor använder du unregister() metoden

linked_service.unregister()

Länka din maskininlärningsarbetsyta och Synapse-arbetsyta via Azure Machine Learning-studio med följande steg:

  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. Fyll i fälten i formuläret Länka arbetsyta

    Fält Beskrivning
    Name Ange ett namn för den länkade tjänsten. Det här namnet används för att referera till just den här länkade tjänsten.
    Prenumerationens namn 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 formuläret Granska 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 koppla en dedikerad beräkning för dataomvandling måste du ha en ML-arbetsyta som är länkad till en Azure Synapse Analytics-arbetsyta. Detta kallas för en länkad tjänst.

Om du vill hämta och använda 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, synapselink1, från arbetsytan, wsmed get() metoden .

from azureml.core import LinkedService

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

Koppla 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 koppla Apache Spark-pooler via,

Koppla en pool via studio

Följ de här stegen:

  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 Skapa Apache Spark-pool med Synapse Studio
  7. Välj Bifoga valt.

Koppla en pool med Python SDK

Du kan också använda Python SDK för att ansluta en Apache Spark-pool.

Följande kod:

  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, SynapseSpark
    3. Namnet på Apache Spark-poolen. Detta 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 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å exemplet blockeras tills anropet har slutförts.
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']

Nästa steg