Delen via


Azure Synapse Analytics- en Azure Machine Learning-werkruimten koppelen en Apache Spark-pools koppelen (afgeschaft)

VAN TOEPASSING OP: Python SDK azureml v1

Waarschuwing

De Integratie van Azure Synapse Analytics met Azure Machine Learning, beschikbaar in Python SDK v1, is afgeschaft. Gebruikers kunnen nog steeds Synapse-werkruimte gebruiken, geregistreerd bij Azure Machine Learning, als een gekoppelde service. Een nieuwe Synapse-werkruimte kan echter niet meer worden geregistreerd bij Azure Machine Learning als een gekoppelde service. We raden u aan om serverloze Spark-rekenkracht en gekoppelde Synapse Spark-pools te gebruiken, beschikbaar in CLI v2 en Python SDK v2. U vindt meer informatie op https://aka.ms/aml-spark.

In dit artikel leert u hoe u een gekoppelde service maakt die uw Azure Synapse Analytics-werkruimte en Azure Machine Learning-werkruimte koppelt.

Met een Azure Machine Learning-werkruimte die is gekoppeld aan een Azure Synapse-werkruimte, kunt u een Apache Spark-pool koppelen, mogelijk gemaakt door Azure Synapse Analytics, als een toegewezen rekenresource. U kunt deze resource gebruiken voor het wrangling van gegevens op schaal of u kunt modeltraining uitvoeren, allemaal vanuit hetzelfde Python-notebook.

U kunt uw ML-werkruimte en Synapse-werkruimte koppelen aan de Python SDK of de Azure Machine Learning-studio. U kunt ook werkruimten koppelen en een Synapse Spark-pool koppelen met één ARM-sjabloon (Azure Resource Manager).

Vereisten

Belangrijk

Als u een koppeling wilt maken naar de Synapse-werkruimte, moet u de rol Eigenaar van de Synapse-werkruimte krijgen. Controleer uw toegang in de Azure-portal.

Als u alleen inzenderbent voor de Synapse-werkruimte en u geen eigenaar voor die Synapse-werkruimte hebt, kunt u alleen bestaande gekoppelde services gebruiken. Ga naar Ophalen en een bestaande gekoppelde service gebruiken voor meer informatie.

Met deze code worden de LinkedService en SynapseWorkspaceLinkedServiceConfiguration klassen gebruikt om

  • Uw machine learning-werkruimte ws koppelen aan uw Azure Synapse-werkruimte
  • Uw Synapse-werkruimte registreren bij Azure Machine Learning als een gekoppelde service
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)

Belangrijk

Er wordt een beheerde identiteit system_assigned_identity_principal_id gemaakt voor elke gekoppelde service. U moet deze beheerde identiteit de rol Synapse Apache Spark-beheerder van de Synapse-werkruimte verlenen voordat u de Synapse-sessie start. Ga naar Azure Synapse RBAC-toewijzingen beheren in Synapse Studio voor meer informatie.

Als u wilt zoeken naar een system_assigned_identity_principal_id specifieke gekoppelde service, gebruikt u LinkedService.get('<your-mlworkspace-name>', '<linked-service-name>').

Gekoppelde services beheren

Bekijk alle gekoppelde services die zijn gekoppeld aan uw machine learning-werkruimte:

LinkedService.list(ws)

Als u uw werkruimten wilt ontkoppelen, gebruikt u de unregister() volgende methode:

linked_service.unregister()

Koppel uw machine learning-werkruimte en Synapse-werkruimte via de Azure Machine Learning-studio:

  1. Meld u aan bij de Azure Machine Learning-studio

  2. Gekoppelde services selecteren in de sectie Beheren van het linkerdeelvenster

  3. Integratie toevoegen selecteren

  4. Vul in het formulier Werkruimte koppelen de velden in

    Veld Beschrijving
    Naam Geef een naam op voor uw gekoppelde service. Verwijzingen naar deze specifieke gekoppelde service gebruiken deze naam
    Abonnementsnaam Selecteer de naam van uw abonnement dat is gekoppeld aan uw machine learning-werkruimte
    Synapse-werkruimte Selecteer de Synapse-werkruimte waaraan u een koppeling wilt maken
  5. Selecteer Volgende om het formulier Spark-pools selecteren (optioneel) te openen. In dit formulier selecteert u welke Synapse Spark-pool u aan uw werkruimte wilt koppelen

  6. Selecteer Volgende om het formulier Controleren te openen en controleer uw selecties

  7. Selecteer Maken om het proces voor het maken van de gekoppelde service te voltooien

Een bestaande gekoppelde service ophalen

Voordat u een toegewezen berekening voor gegevenswrangling kunt koppelen, moet u een machine learning-werkruimte hebben gekoppeld aan een Azure Synapse Analytics-werkruimte. We verwijzen naar deze werkruimte als een gekoppelde service. Voor het ophalen en gebruiken van een bestaande gekoppelde service zijn gebruikers- of inzendermachtigingen vereist voor de Azure Synapse Analytics-werkruimte.

In dit voorbeeld wordt een bestaande gekoppelde service opgehaald- synapselink1 - uit de werkruimte ws, met de get() methode:

from azureml.core import LinkedService

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

Synapse Spark-pool koppelen als rekenproces

Zodra u de gekoppelde service hebt opgehaald, koppelt u een Synapse Apache Spark-pool als een toegewezen rekenresource voor uw gegevens-wrangling-taken. U kunt Apache Spark-pools koppelen met

Een pool koppelen via de studio

  1. Meld u aan bij de Azure Machine Learning-studio
  2. Gekoppelde services selecteren in de sectie Beheren van het linkerdeelvenster
  3. Uw Synapse-werkruimte selecteren
  4. Gekoppelde Spark-pools in de linkerbovenhoek selecteren
  5. Bijvoegen selecteren
  6. Selecteer uw Apache Spark-pool in de lijst en geef een naam op
    1. Deze lijst identificeert de beschikbare Synapse Spark-pools die aan uw rekenproces kunnen worden gekoppeld
    2. Als u een nieuwe Synapse Spark-pool wilt maken, raadpleegt u quickstart: Een nieuwe serverloze Apache Spark-pool maken met behulp van Azure Portal
  7. Selecteer Bijvoegen geselecteerd

Een pool koppelen met de Python SDK

U kunt ook de Python SDK gebruiken om een Apache Spark-pool te koppelen, zoals wordt weergegeven in dit codevoorbeeld:

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

Controleer of de Apache Spark-pool is gekoppeld.

ws.compute_targets['Synapse Spark pool alias']

Deze code

  1. Hiermee configureert u de SynapseCompute met

    1. De LinkedService, linked_service die u in de vorige stap hebt gemaakt of opgehaald
    2. Het type rekendoel dat u wilt koppelen, in dit geval SynapseSpark
    3. De naam van de Apache Spark-pool. De naam moet overeenkomen met een bestaande Apache Spark-pool die bestaat in uw Azure Synapse Analytics-werkruimte
  2. Hiermee maakt u een machine learning ComputeTarget door in te geven

    1. De machine learning-werkruimte die u wilt gebruiken, ws
    2. De naam die u wilt gebruiken om te verwijzen naar de berekening in de Azure Machine Learning-werkruimte
    3. De attach_configuration die u hebt opgegeven tijdens het configureren van uw Synapse Compute
      1. De aanroep naar ComputeTarget.attach() is asynchroon, dus de voorbeelduitvoering wordt geblokkeerd totdat de aanroep is voltooid

Volgende stappen