Lier des espaces de travail Azure Synapse Analytics et Azure Machine Learning et attacher des pools Apache Spark (déconseillé)
S’APPLIQUE À : SDK Python azureml v1
Avertissement
L’intégration d’Azure Synapse Analytics à Azure Machine Learning disponible dans le SDK Python v1 est déconseillée. Les utilisateurs peuvent continuer à utiliser l’espace de travail Synapse, inscrit auprès d’Azure Machine Learning, en tant que service lié. Toutefois, un nouvel espace de travail Synapse ne peut plus être inscrit auprès d’Azure Machine Learning en tant que service lié. Nous vous recommandons d’utiliser le calcul serverless Spark et les pools Spark Synapse attachés, disponibles dans l’interface CLI v2 et le kit de développement logiciel (SDK) Python v2. Pour plus d’informations, consultez https://aka.ms/aml-spark.
Dans cet article, vous allez découvrir comment créer un service lié qui relie votre espace de travail Azure Synapse Analytics et votre espace de travail Azure Machine Learning.
Avec un espace de travail Azure Machine Learning, lié à un espace de travail Azure Synapse, vous pouvez attacher un pool Apache Spark, à technologie Azure Synapse Analytics, en tant que ressource de calcul dédiée. Vous pouvez utiliser cette ressource pour le data wrangling à grande échelle, ou vous pouvez effectuer un entraînement de modèles, le tout à partir du même notebook Python.
Vous pouvez lier votre espace de travail ML et votre espace de travail Synapse avec le kit SDK Python ou Azure Machine Learning studio. Vous pouvez aussi lier des espaces de travail, et attacher un pool Synapse Spark, avec un modèle Azure Resource Manager (ARM) unique.
Prérequis
Création d’un espace de travail Microsoft Azure Machine Learning
Installez le SDK Python d’Azure Machine Learning.
Créer un pool Apache Spark à partir du portail Azure, d’outils web, ou de Synapse Studio
Accéder à Azure Machine Learning studio
Lier des espaces de travail avec le SDK Python
Important
Pour établir correctement une liaison à l’espace de travail Synapse, vous devez disposer du rôle Propriétaire dans cet espace de travail. Vérifiez votre accès dans le portail Azure.
Si vous n’êtes que Contributeur à l’espace de travail Synapse et que vous n’avez pas de Propriétaire pour cet espace de travail Synapse, vous ne pouvez utiliser que des services liés existants. Pour plus d’informations, consultez Récupérer et utiliser un service lié existant.
Ce code utilise les classes LinkedService
et SynapseWorkspaceLinkedServiceConfiguration
pour
- Lier votre espace de travail de Machine Learning
ws
à votre espace de travail Azure Synapse. - Inscrire votre espace de travail Synapse auprès d’Azure Machine Learning en tant que service lié.
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)
Important
L’identité managée system_assigned_identity_principal_id
est créée pour chaque service lié. Vous devez accorder à cette identité managée le rôle Administrateur Synapse Apache Spark de l’espace de travail Synapse avant de démarrer votre session Synapse. Pour plus d’informations, consultez Guide pratique pour gérer les attributions de rôles RBAC Azure Synapse dans Synapse Studio.
Pour rechercher le system_assigned_identity_principal_id
d’un service lié spécifique, utilisez LinkedService.get('<your-mlworkspace-name>', '<linked-service-name>')
.
Gérer des services liés
Affichez tous les services liés associés à votre espace de travail de Machine Learning :
LinkedService.list(ws)
Pour dissocier vos espaces de travail, utilisez la méthode unregister()
:
linked_service.unregister()
Lier des espaces de travail par le biais de Studio
Liez votre espace de travail de Machine Learning et votre espace de travail Synapse par le biais d’Azure Machine Learning studio :
Connectez-vous à Azure Machine Learning Studio.
Sélectionnez Services liés dans la section Gérer du volet gauche.
Sélectionnez Ajouter une intégration.
Renseignez les champs du formulaire Lier l’espace de travail.
Champ Description Nom Fournissez un nom pour votre service lié. Les références à ce service lié spécifique utilisent ce nom. Nom d’abonnement Sélectionnez le nom de votre abonnement associé à votre espace de travail de Machine Learning. Espace de travail Synapse Sélectionnez l’espace de travail Synapse vers lequel vous souhaitez établir un lien. Sélectionnez Suivant pour ouvrir le formulaire Sélectionner des pools Spark (facultatif) . Dans ce formulaire, vous sélectionnez le pool Synapse Spark à attacher à votre espace de travail.
Sélectionnez Suivant pour ouvrir le formulaire Vérifier, et vérifiez vos sélections.
Sélectionnez Créer pour achever le processus de création du service lié.
Obtenir un service lié existant
Avant de pouvoir attacher un calcul dédié au data wrangling, vous devez disposer d’un espace de travail Machine Learning lié à un espace de travail Azure Synapse Analytics. Nous employons le terme « service lié » pour faire référence à cet espace de travail. La récupération et l’utilisation d’un service lié existant nécessitent des autorisations Utilisateur ou Contributeur sur l’espace de travail Azure Synapse Analytics.
Cet exemple récupère un service lié existant, synapselink1
, à partir de l’espace de travail, ws
, avec la méthode get()
:
from azureml.core import LinkedService
linked_service = LinkedService.get(ws, 'synapselink1')
Attacher un pool Synapse Spark en tant que calcul
Après avoir récupéré le service lié, attachez un pool Synapse Apache Spark en tant que ressource de calcul dédiée à vos tâches de data wrangling. Vous pouvez attacher des pools Apache Spark avec
- Azure Machine Learning Studio
- Modèles Azure Resource Manager (ARM)
- Le kit SDK Python d’Azure Machine Learning
Attacher un pool par le biais du studio
- Connectez-vous à Azure Machine Learning Studio.
- Sélectionnez Services liés dans la section Gérer du volet gauche.
- Sélectionnez votre espace de travail Synapse.
- Sélectionnez Pools Spark attachés en haut à gauche.
- Sélectionnez Attacher.
- Sélectionnez votre pool Apache Spark dans la liste et indiquez un nom.
- Cette liste identifie les pools Synapse Spark disponibles qui peuvent être attachés à votre calcul.
- Pour créer un pool Synapse Spark, consultez Démarrage rapide : Créer un pool Apache Spark serverless avec le portail Azure.
- Sélectionnez Attacher l’élément sélectionné.
Attacher un pool à l’aide du kit SDK Python
Vous pouvez également utiliser le SDK Python pour attacher un pool Apache Spark, comme illustré dans cet exemple de code :
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()
Vérifiez que le pool Apache Spark est attaché.
ws.compute_targets['Synapse Spark pool alias']
Ce code
Configure le
SynapseCompute
avec- Le
LinkedService
,linked_service
que vous avez créé ou récupéré à l’étape précédente. - Le type de cible de calcul que vous souhaitez attacher, en l’occurrence
SynapseSpark
. - Le nom du pool Apache Spark. Ce nom doit correspondre à un pool Apache Spark existant qui se trouve dans votre espace de travail Azure Synapse Analytics.
- Le
Crée un
ComputeTarget
de Machine Learning en passant- L’espace de travail de Machine Learning que vous souhaitez utiliser,
ws
- Le nom que vous souhaitez utiliser pour faire référence au calcul dans l’espace de travail Azure Machine Learning.
- Le paramètre attach_configuration que vous avez spécifié lorsque vous avez configuré votre calcul Synapse.
- L’appel à ComputeTarget.attach() étant asynchrone, l’exécution de l’exemple est bloquée jusqu’à la fin de l’appel.
- L’espace de travail de Machine Learning que vous souhaitez utiliser,
Étapes suivantes
- Data wrangling avec des pools Apache Spark (déconseillé)
- Guide pratique pour utiliser Apache Spark (alimenté par Azure Synapse Analytics) dans votre pipeline Machine Learning (déconseillé)
- Configurer et envoyer des travaux d’apprentissage
- Guide pratique pour intégrer de façon sécurisée Azure Machine Learning et Azure Synapse