Связывание azure Synapse Analytics и Машинное обучение Azure рабочих областей и присоединение пулов Apache Spark (не рекомендуется)

ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

Предупреждение

Интеграция Azure Synapse Analytics с Машинное обучение Azure, доступная в пакете SDK для Python версии 1, устарела. Пользователи по-прежнему могут использовать рабочую область Synapse, зарегистрированную в Машинное обучение Azure, в качестве связанной службы. Однако новую рабочую область Synapse больше нельзя зарегистрировать в Машинном обучении Azure в качестве связанной службы. Мы рекомендуем использовать бессерверные вычислительные ресурсы Spark и подключенные пулы Synapse Spark, доступные в CLI версии 2 и пакете SDK Для Python версии 2. Дополнительные сведения см. на странице https://aka.ms/aml-spark.

Эта статья содержит сведения о том, как создать связанную службу, которая связывает рабочую область Azure Synapse Analytics и рабочую область Машинного обучения Azure.

С помощью рабочей области Машинное обучение Azure, связанной с рабочей областью Azure Synapse, вы можете подключить пул Apache Spark, управляемый Azure Synapse Analytics, в качестве выделенного вычислительного ресурса. Этот ресурс можно использовать для обработки данных в масштабе или обучения модели — все из одной записной книжки Python.

Вы можете связать рабочую область машинного обучения и рабочую область Synapse с пакетом SDK для Python или Студия машинного обучения Azure. Вы также можете связать рабочие области и присоединить пул Synapse Spark с одним шаблоном Azure Resource Manager (ARM).

Необходимые компоненты

Внимание

Чтобы успешно связаться с рабочей областью Synapse, необходимо предоставить роль владельца рабочей области Synapse. Проверьте доступ на портале Azure.

Если вы являетесь только участником рабочей области Synapse, и у вас нет владельца для этой рабочей области Synapse, вы можете использовать только существующие связанные службы. Дополнительные сведения см. в статье "Получение и использование существующей связанной службы".

Этот код использует классы и SynapseWorkspaceLinkedServiceConfiguration классыLinkedService.

  • Связывание рабочей области машинного обучения с рабочей областью ws Azure Synapse
  • Регистрация рабочей области Synapse в Машинное обучение Azure в качестве связанной службы
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)

Внимание

Управляемое удостоверение system_assigned_identity_principal_id создается для каждой связанной службы. Перед началом сеанса Synapse Apache Spark необходимо предоставить этому управляемому удостоверению роль Администратор istrator рабочей области Synapse. Дополнительные сведения см. в статье об управлении назначениями Azure Synapse RBAC в Synapse Studio.

Чтобы найти system_assigned_identity_principal_id конкретной связанной службы, используйте LinkedService.get('<your-mlworkspace-name>', '<linked-service-name>').

Управление связанными службами

Просмотрите все связанные службы, связанные с рабочей областью машинного обучения:

LinkedService.list(ws)

Чтобы отменить связь с рабочими областями unregister() , используйте этот метод:

linked_service.unregister()

Свяжите рабочую область машинного обучения с рабочей областью Synapse с помощью Студия машинного обучения Azure:

  1. Войдите в Студию машинного обучения Azure.

  2. Выберите связанные службы в разделе "Управление" в левой области

  3. Выберите " Добавить интеграцию"

  4. Заполните поля в форме Связать рабочую область.

    Поле Описание:
    Имя. Укажите имя связанной службы. Ссылки на эту связанную службу используют это имя.
    Имя подписки Выберите имя подписки, связанной с рабочей областью машинного обучения
    Рабочая область Synapse Выберите рабочую область Synapse, к которой нужно связаться
  5. Нажмите кнопку Далее, чтобы открыть форму Выбрать пулы Spark (необязательно). В этой форме необходимо выбрать пул Synapse Spark для подключения к рабочей области.

  6. Нажмите кнопку "Рядом", чтобы открыть форму проверки, и проверка выбранные варианты

  7. Нажмите кнопку "Создать", чтобы завершить процесс создания связанной службы

Получение существующей связанной службы

Прежде чем подключить выделенные вычислительные ресурсы для обработки данных, необходимо иметь рабочую область машинного обучения, связанную с рабочей областью Azure Synapse Analytics. Мы называем эту рабочую область связанной службой. Получение и использование существующей связанной службы требует разрешений пользователя или участника в рабочей области Azure Synapse Analytics.

В этом примере извлекается существующая связанная служба из synapselink1 рабочей области wsс методом get() :

from azureml.core import LinkedService

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

Подключение пула Synapse Spark в качестве ресурса вычислений

После получения связанной службы подключите пул Synapse Apache Spark в качестве выделенного ресурса вычислений для задач первичной обработки данных. Пулы Apache Spark можно подключить с помощью

Подключение пула с помощью студии

  1. Войдите в Студию машинного обучения Azure.
  2. Выберите связанные службы в разделе "Управление" в левой области
  3. Выбор рабочей области Synapse
  4. Выбор присоединенных пулов Spark в левом верхнем углу
  5. Выберите Присоединить.
  6. Выберите пул Apache Spark из списка и укажите имя
    1. Этот список определяет доступные пулы Synapse Spark, которые можно подключить к вычислительным ресурсам.
    2. Чтобы создать новый пул Synapse Spark, см. краткое руководство. Создание бессерверного пула Apache Spark с помощью портал Azure
  7. Выберите " Подключить"

Подключение пула с помощью пакета SDK для Python

Вы также можете использовать пакет SDK Для Python для подключения пула Apache Spark, как показано в этом примере кода:

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

Проверьте, подключен ли пул Apache Spark.

ws.compute_targets['Synapse Spark pool alias']

Этот код

  1. SynapseCompute Настройка с помощью

    1. Значение LinkedService, linked_service созданное или полученное на предыдущем шаге
    2. Тип целевого объекта вычислений, который требуется подключить. В этом случае SynapseSpark
    3. имени пула Apache Spark. Имя должно соответствовать существующему пулу Apache Spark, существующему в рабочей области Azure Synapse Analytics.
  2. Создает машинное обучение ComputeTarget путем передачи

    1. рабочую область машинного обучения, которую вы хотите использовать, ws;
    2. Имя, используемое для ссылки на вычислительные ресурсы в рабочей области Машинное обучение Azure
    3. Attach_configuration, указанный при настройке вычислений Synapse
      1. Вызов ComputeTarget.attach() является асинхронным, поэтому пример выполнения блокируется до завершения вызова.

Следующие шаги