Связывание azure Synapse Analytics и Машинное обучение Azure рабочих областей и присоединение пулов Apache Spark (не рекомендуется)
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python версии 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).
Необходимые компоненты
Создание пула Apache Spark с помощью портал Azure, веб-инструментов или Synapse Studio
Доступ к Студия машинного обучения Azure
Связывание рабочих областей с помощью пакета SDK для Python
Внимание
Чтобы успешно связаться с рабочей областью 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 необходимо предоставить этому управляемому удостоверению роль администратора Apache Spark в рабочей области 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:
Войдите в Студию машинного обучения Azure.
Выберите связанные службы в разделе "Управление" в левой области
Выберите " Добавить интеграцию"
Заполните поля в форме Связать рабочую область.
Поле Описание: Имя. Укажите имя связанной службы. Ссылки на эту связанную службу используют это имя. Название подписки Выберите имя подписки, связанной с рабочей областью машинного обучения Рабочая область Synapse Выберите рабочую область Synapse, к которой нужно связаться Нажмите кнопку Далее, чтобы открыть форму Выбрать пулы Spark (необязательно). В этой форме необходимо выбрать пул Synapse Spark для подключения к рабочей области.
Нажмите кнопку "Рядом " , чтобы открыть форму проверки , и проверьте выбранные варианты.
Нажмите кнопку "Создать", чтобы завершить процесс создания связанной службы
Получение существующей связанной службы
Прежде чем подключить выделенные вычислительные ресурсы для обработки данных, необходимо иметь рабочую область машинного обучения, связанную с рабочей областью 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 можно подключить с помощью
- Студия машинного обучения Azure
- Шаблоны Azure Resource Manager (ARM)
- Пакет SDK Python для Машинного обучения Azure
Подключение пула с помощью студии
- Войдите в Студию машинного обучения Azure.
- Выберите связанные службы в разделе "Управление" в левой области
- Выбор рабочей области Synapse
- Выбор присоединенных пулов Spark в левом верхнем углу
- Выберите Присоединить.
- Выберите пул Apache Spark из списка и укажите имя
- Этот список определяет доступные пулы Synapse Spark, которые можно подключить к вычислительным ресурсам.
- Чтобы создать новый пул Synapse Spark, см. краткое руководство. Создание бессерверного пула Apache Spark с помощью портал Azure
- Выберите " Подключить"
Подключение пула с помощью пакета 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']
Этот код
SynapseCompute
Настройка с помощью- Значение
LinkedService
,linked_service
созданное или полученное на предыдущем шаге - Тип целевого объекта вычислений, который требуется подключить. В этом случае
SynapseSpark
- имени пула Apache Spark. Имя должно соответствовать существующему пулу Apache Spark, существующему в рабочей области Azure Synapse Analytics.
- Значение
Создает машинное обучение
ComputeTarget
путем передачи- рабочую область машинного обучения, которую вы хотите использовать,
ws
; - Имя, используемое для ссылки на вычислительные ресурсы в рабочей области Машинное обучение Azure
- Attach_configuration, указанный при настройке вычислений Synapse
- Вызов ComputeTarget.attach() является асинхронным, поэтому пример выполнения блокируется до завершения вызова.
- рабочую область машинного обучения, которую вы хотите использовать,