Verknüpfen von Azure Synapse Analytics- und Azure Machine Learning-Arbeitsbereichen sowie Anfügen von Apache Spark-Pools (veraltet)

GILT FÜR:Python SDK azureml v1

Warnung

Die im Python SDK v1 verfügbare Azure Synapse Analytics-Integration mit Azure Machine Learning ist veraltet. Der Synapse-Arbeitsbereich, der bei Azure Machine Learning registriert ist, kann weiterhin als verknüpfter Dienst verwendet werden. Ein neuer Synapse-Arbeitsbereich kann jedoch nicht mehr bei Azure Machine Learning als verknüpfter Dienst registriert werden. Es wird empfohlen, serverlose Spark-Compute- und angefügte Synapse Spark-Pools zu verwenden, die in CLI v2 und Python SDK v2 verfügbar sind. Weitere Informationen finden Sie unter https://aka.ms/aml-spark.

In diesem Artikel wird beschrieben, wie Sie einen verknüpften Dienst erstellen, mit dem Ihr Azure Synapse Analytics-Arbeitsbereich und Azure Machine Learning-Arbeitsbereich verknüpft werden.

Mit einem Azure Machine Learning-Arbeitsbereich, der mit einem Azure Synapse-Arbeitsbereich verknüpft ist, können Sie einen Apache Spark-Pool anfügen, der von Azure Synapse Analytics unterstützt wird, als dedizierte Computeressource. Sie können diese Ressource für das Skalieren von Daten verwenden oder Modelltraining durchführen – alles aus demselben Python-Notebook.

Sie können Ihren ML-Arbeitsbereich und den Synapse-Arbeitsbereich über das Python SDK oder Azure Machine Learning Studio verknüpfen. Sie können zum Verknüpfen von Arbeitsbereichen und Anfügen eines Synapse Spark-Pools auch eine ARM-Vorlage (Azure Resource Manager) verwenden.

Voraussetzungen

Wichtig

Um erfolgreich eine Verknüpfung mit dem Synapse-Arbeitsbereich herzustellen, benötigen Sie die Rolle Besitzer im Synapse-Arbeitsbereich. Überprüfen Sie Ihren Zugriff im Azure-Portal.

Wenn Sie nur ein Mitwirkender für den Synapse-Arbeitsbereich sind und kein Besitzer für diesen Synapse-Arbeitsbereich haben, können Sie nur vorhandene verknüpfte Dienste verwenden. Weitere Informationen finden Sie unter Abrufen und Verwenden eines vorhandenen verknüpften Dienstes.

Dieser Code verwendet die LinkedService- und SynapseWorkspaceLinkedServiceConfiguration-Klassen, um

  • Ihren Machine Learning-Arbeitsbereich ws mit dem Azure Synapse-Arbeitsbereich zu verknüpfen
  • Ihren Synapse-Arbeitsbereich als verknüpften Dienst bei Azure Machine Learning zu registrieren
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)

Wichtig

Die verwaltete Identität system_assigned_identity_principal_id wird für jeden verknüpften Dienst erstellt. Sie müssen dieser verwalteten Identität die Rolle Synapse Apache Spark-Administrator des Synapse-Arbeitsbereichs zuweisen, bevor Sie die Synapse-Sitzung starten. Weitere Informationen finden Sie unter Verwalten von Azure Synapse RBAC-Zuordnungen in Synapse Studio.

Verwenden Sie LinkedService.get('<your-mlworkspace-name>', '<linked-service-name>') zum Ermitteln von system_assigned_identity_principal_id eines bestimmten verknüpften Diensts.

Verwalten von verknüpften Diensten

Zeigen Sie alle verknüpften Dienste an, die Ihrem Machine Learning-Arbeitsbereich zugeordnet sind:

LinkedService.list(ws)

Verwenden Sie die Methode unregister(), um die Verknüpfung von Arbeitsbereichen aufzuheben:

linked_service.unregister()

Verknüpfen Sie den Machine Learning-Arbeitsbereich und den Synapse-Arbeitsbereich über Azure Machine Learning Studio:

  1. Melden Sie sich bei Azure Machine Learning Studio an.

  2. Wählen Sie im linken Bereich im Abschnitt Verwalten die Option Verknüpfte Dienste aus

  3. Wählen Sie Integration hinzufügen aus

  4. Füllen Sie die Felder im Formular Arbeitsbereich verknüpfen aus.

    Feld Beschreibung des Dataflows
    Name Geben Sie einen Namen für Ihren verknüpften Dienst ein. Verweise auf diesen spezifischen verknüpften Dienst verwenden diesen Namen
    Abonnementname Wählen Sie den Namen Ihres Abonnements aus, das Ihrem Machine Learning-Arbeitsbereich zugeordnet ist
    Synapse-Arbeitsbereich Wählen Sie den Synapse-Arbeitsbereich aus, mit dem Sie eine Verknüpfung herstellen möchten
  5. Wählen Sie Weiter aus, um das Formular Spark-Pools auswählen (optional) zu öffnen. Wählen Sie in diesem Formular aus, welcher Synapse Spark-Pool an Ihren Arbeitsbereich angefügt werden soll.

  6. Wählen Sie Weiter aus, um das Formular Überprüfung zu öffnen und Ihre Auswahl zu überprüfen

  7. Wählen Sie Erstellen aus, um die Erstellung des verknüpften Diensts abzuschließen

Abrufen eines vorhandenen verknüpften Diensts

Bevor Sie eine dedizierte Berechnung für die Datenverarbeitung anfügen können, müssen Sie über einen Machine Learning-Arbeitsbereich verfügen, der mit einem Azure Synapse Analytics-Arbeitsbereich verknüpft ist. Wir bezeichnen diesen Arbeitsbereich als verknüpften Dienst. Zum Abrufen und Verwenden eines vorhandenen verknüpften Dienstes sind Berechtigungen vom Typ Benutzer oder Mitwirkender für den Azure Synapse Analytics-Arbeitsbereich erforderlich.

In diesem Beispiel wird ein vorhandener verknüpfter Dienst (synapselink1) aus dem Arbeitsbereich ws mit der Methode get() abgerufen:

from azureml.core import LinkedService

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

Anfügen eines Synapse Spark-Pools als Computeressource

Wenn Sie den verknüpften Dienst abgerufen haben, fügen Sie einen Synapse Apache Spark-Pool als dedizierte Computeressource für Ihre Data Wrangling-Aufgaben an. Sie können Apache Spark-Pools mit folgenden Komponenten anfügen:

Anfügen eines Pools über Studio

  1. Melden Sie sich bei Azure Machine Learning Studio an.
  2. Wählen Sie im linken Bereich im Abschnitt Verwalten die Option Verknüpfte Dienste aus
  3. Wählen Sie Ihren Synapse-Arbeitsbereich aus
  4. Wählen Sie oben links Angefügte Spark-Pools aus
  5. Wählen Sie Anfügen aus.
  6. Wählen Sie Ihren Apache Spark-Pool in der Liste aus, und geben Sie einen Namen an
    1. Diese Liste gibt Aufschluss über die verfügbaren Synapse Spark-Pools, die an Ihre Computeressource angefügt werden können
    2. Informationen zum Erstellen eines neuen Synapse Spark-Pools finden Sie im Schnellstart: Erstellen eines neuen serverlosen Apache Spark-Pools mithilfe des Azure-Portals
  7. Wählen Sie Ausgewählte anfügen aus

Anfügen eines Pools mit dem Python SDK

Sie können das Python SDK auch verwenden, um einen Apache Spark-Pool anzufügen, wie in diesem Codebeispiel gezeigt:

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

Überprüfen Sie, ob der Apache Spark-Pool angefügt wurde.

ws.compute_targets['Synapse Spark pool alias']

Für diesen Code gilt Folgendes:

  1. Konfiguration von SynapseCompute mit

    1. dem LinkedService, linked_service, den Sie im vorherigen Schritt erstellt oder abgerufen haben
    2. dem Typ des Computeziels, das Sie anfügen möchten, in diesem Fall SynapseSpark
    3. dem Namen des Apache Spark-Pools. Dieser Name muss einem vorhandenen Apache Spark-Pool entsprechen, der sich in Ihrem Azure Synapse Analytics-Arbeitsbereich befindet
  2. Erstellen eines Machine Learning-ComputeTarget durch Übergabe

    1. des Machine Learning-Arbeitsbereichs, den Sie verwenden möchten: ws
    2. des Namens, den Sie verwenden möchten, um im Azure Machine Learning-Arbeitsbereich auf die Computeressource zu verweisen
    3. der Anfügekonfiguration (attach_configuration), die Sie beim Konfigurieren der Synapse-Computeressource angegeben haben
      1. Der Aufruf von „ComputeTarget.attach()“ ist asynchron, daher wird die Beispielausführung blockiert, bis der Aufruf abgeschlossen ist

Nächste Schritte