Vinculación de las áreas de trabajo de Azure Synapse Analytics y Azure Machine Learning, y exposición de grupos de Apache Spark (en desuso)
SE APLICA A: Azure ML del SDK de Python v1
Advertencia
La integración de Azure Synapse Analytics con Azure Machine Learning, disponible en el SDK de Python v1, está en desuso. Los usuarios todavía pueden usar el área de trabajo de Synapse, registrada con Azure Machine Learning como servicio vinculado. Sin embargo, ya no se puede registrar una nueva área de trabajo de Synapse con Azure Machine Learning como servicio vinculado. Se recomienda usar el proceso de Spark sin servidor y los grupos de Synapse Spark conectados, disponibles en la CLI v2 y el SDK de Python v2. Para más información, visite https://aka.ms/aml-spark.
En este artículo, aprenderá a crear un servicio vinculado que vincule el área de trabajo de Azure Synapse Analytics y el área de trabajo de Azure Machine Learning.
Con un área de trabajo de Azure Machine Learning, vinculada a un área de trabajo de Azure Synapse, puede adjuntar un grupo de Apache Spark, con tecnología de Azure Synapse Analytics, como un recurso de proceso dedicado. Puede usar este recurso para la limpieza y transformación de datos a escala, o bien puede realizar el entrenamiento del modelo, todo ello desde el mismo cuaderno de Python.
Puede vincular ambas áreas de trabajo mediante el SDK de Python o el Estudio de Azure Machine Learning. También puede vincular áreas de trabajo, y adjuntar un grupo de Spark de Synapse, con una sola plantilla de Azure Resource Manager (ARM).
Requisitos previos
Instale el SDK de Azure Machine Learning para Python.
Creación de un grupo de Apache Spark mediante Azure Portal, herramientas web o Synapse Studio
Vinculación de áreas de trabajo con el SDK de Python
Importante
Para vincular correctamente el área de trabajo de Synapse, debe tener el rol Propietario en ella. Compruebe el acceso en Azure Portal.
Si solo es Colaborador del área de trabajo de Synapse y no tiene ningún Propietario para ese área de trabajo, solo puede usar los servicios vinculados existentes. Para obtener más información, visite Recuperar y usar un servicio vinculado existente.
Este código emplea las clases LinkedService
y SynapseWorkspaceLinkedServiceConfiguration
, para
- Vincular el área de trabajo de Machine Learning
ws
con el área de trabajo de Azure Synapse - Registrar el área de trabajo de Synapse con Azure Machine Learning como servicio vinculado
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)
Importante
Se crea una identidad administrada system_assigned_identity_principal_id
para cada servicio vinculado. Debe conceder a esta identidad administrada el rol Administrador de Apache Spark de Synapse del área de trabajo de Synapse antes de iniciar la sesión de Synapse. Para más información, visite Administración de asignaciones de RBAC de Azure Synapse en Synapse Studio.
Utilice LinkedService.get('<your-mlworkspace-name>', '<linked-service-name>')
para localizar el valor system_assigned_identity_principal_id
de un servicio vinculado específico.
Administración de servicios vinculados
Consulte todos los servicios vinculados asociados con el área de trabajo de Machine Learning:
LinkedService.list(ws)
Para desvincular las áreas de trabajo, use el método unregister()
:
linked_service.unregister()
Vinculación de áreas de trabajo por medio de Estudio
Vincule el área de trabajo de Machine Learning y el área de trabajo de Synapse mediante Estudio de Azure Machine Learning:
Inicie sesión en Azure Machine Learning Studio.
Seleccione Servicios vinculados en la sección Administrar del panel izquierdo
Seleccione Agregar integración
Rellene los campos del formulario Vincular área de trabajo.
Campo Descripción Nombre Indique un nombre para el servicio vinculado. Las referencias a este servicio vinculado específico usan este nombre Nombre de suscripción Seleccione el nombre de la suscripción asociada al área de trabajo de Machine Learning Área de trabajo de Synapse Seleccione el área de trabajo de Synapse a la que desea vincular Seleccione Siguiente para abrir el formulario Selección de los grupos de Spark (opcional) . En este formulario, seleccione el grupo de Spark de Synapse que se va a asociar al área de trabajo.
Seleccione Siguiente para abrir el formulario Revisar y comprobar las selecciones
Seleccione Crear para completar el proceso de creación del servicio vinculado
Obtención de un servicio vinculado existente
Para poder adjuntar un proceso dedicado para la limpieza de datos, debe tener un área de trabajo de Machine Learning vinculada a un área de trabajo de Azure Synapse Analytics. Nos referimos a este área de trabajo como un servicio vinculado. La recuperación y el uso de un servicio vinculado existente requieren permisos de Usuario o Colaborador en el área de trabajo de Azure Synapse Analytics.
En este ejemplo se recupera un servicio vinculado existente ( synapselink1
) del área de trabajo ws
, con el método get()
:
from azureml.core import LinkedService
linked_service = LinkedService.get(ws, 'synapselink1')
Asociación de un grupo de Spark de Synapse como proceso
Después de recuperar el servicio vinculado, conecte un grupo de Apache Spark de Synapse como recurso de proceso dedicado para las tareas de limpieza y transformación de datos. Puede asociar grupos de Apache Spark con
- Azure Machine Learning Studio
- Plantillas de Azure Resource Manager (ARM)
- El SDK de Azure Machine Learning para Python
Conexión de un grupo mediante el Estudio de Azure Machine Learning
- Inicie sesión en Azure Machine Learning Studio.
- Seleccione Servicios vinculados en la sección Administrar del panel izquierdo
- Seleccione el área de trabajo de Synapse
- Seleccione grupos de Spark conectados en la parte superior izquierda
- Seleccione Attach (Asociar).
- Seleccione el grupo de Spark de Synapse en la lista y proporcione un nombre
- Esta lista identifica los grupos de Synapse Spark disponibles que se pueden asociar al proceso
- Para crear un nuevo grupo de Synapse Spark, consulte Inicio rápido: creación de un nuevo grupo de Apache Spark sin servidor mediante Azure Portal
- Seleccione Asociar selección
Conexión de un grupo mediante el SDK para Python
También puede emplear el SDK de Python para adjuntar un grupo de Apache Spark, como se muestra en este ejemplo de código:
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()
Compruebe que el grupo de Apache Spark está conectado.
ws.compute_targets['Synapse Spark pool alias']
Este código
Configura el
SynapseCompute
con- El
LinkedService
,linked_service
que creó o recuperó en el paso anterior - El tipo de destino de proceso que desea adjuntar, en este caso,
SynapseSpark
- Nombre del grupo de Apache Spark. El nombre debe coincidir con un grupo de Apache Spark existente en el área de trabajo de Azure Synapse Analytics
- El
Crea un
ComputeTarget
de aprendizaje automático pasando- El área de trabajo de Machine Learning que desea usar,
ws
. - El nombre que desea usar para hacer referencia al proceso en el área de trabajo de Azure Machine Learning
- El attach_configuration que especificó al configurar el proceso de Synapse
- La llamada a ComputeTarget.attach() es asincrónica, por lo que la ejecución de ejemplo se bloquea hasta que se completa la llamada
- El área de trabajo de Machine Learning que desea usar,
Pasos siguientes
- Limpieza y transformación de datos con grupos de Apache Spark (en desuso)
- Cómo usar Apache Spark (con tecnología de Azure Synapse Analytics) en la canalización de aprendizaje automático (en desuso)
- Configuración y envío de trabajos de entrenamiento.
- Integración segura de Azure Machine Learning y Azure Synapse