連結 Azure Synapse Analytics 和 Azure Machine Learning 工作區,以及連結 Apache Spark 集區 (已淘汰)
適用於: Python SDK azureml v1 (部分機器翻譯)
警告
Azure Synapse Analytics 與 Python SDK v1 中提供的 Azure Machine Learning 整合已淘汰。 使用者仍然可以使用向 Azure Machine Learning 註冊為連結服務的 Synapse 工作區。 不過,新的 Synapse 工作區無法再向 Azure Machine Learning 註冊為連結服務。 我們建議使用無伺服器 Spark 計算和連結的 Synapse Spark 集區,可在 CLI v2 和 Python SDK v2 中取得。 如需詳細資訊,請瀏覽 https://aka.ms/aml-spark。
在本文中,您將了解如何建立連結服務,以連結 Azure Synapse Analytics 工作區和 Azure Machine Learning 工作區。
透過與 Azure Synapse 工作區連結的 Azure Machine Learning 工作區,您可以連結 Azure Synapse Analytics 所提供的 Apache Spark 集區作為專用的計算資源。 您可以將此資源用於大規模資料整頓,也可以從相同的 Python 筆記本進行模型定型。
您可以使用 Python SDK 或 Azure Machine Learning 工作室,連結 ML 工作區和 Synapse 工作區。 您也可以使用單一 Azure Resource Manager (ARM) 範本,以連結工作區和連結 Synapse Spark 集區。
必要條件
使用 Python SDK 來連結工作區
重要
若要成功連結至 Synapse 工作區,您必須獲授與 Synapse 工作區的擁有者角色。 在 Azure 入口網站中檢查您的存取權。
如果您只是 Synapse 工作區的參與者,而且您沒有該 Synapse 工作區的擁有者,則只能使用現有的連結服務。 如需詳細資訊,請瀏覽擷取並使用現有的連結服務。
此程式碼會採用 LinkedService
和 SynapseWorkspaceLinkedServiceConfiguration
類別,
- 連結機器學習工作區
ws
與 Azure Synapse Analytics 工作區 - 向 Azure Machine Learning 將 Synapse 工作區註冊為連結服務
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 工作階段之前,必須先將 Synapse 工作區的 Synapse Apache Spark 管理員角色授與此受控識別。 如需詳細資訊,請瀏覽如何在 Synapse Studio 中管理 Azure Synapse RBAC 指派。
若要尋找特定連結服務的 system_assigned_identity_principal_id
,請使用 LinkedService.get('<your-mlworkspace-name>', '<linked-service-name>')
。
管理連結服務
檢視與機器學習工作區相關聯的所有連結服務:
LinkedService.list(ws)
若要取消連結工作區,請使用 unregister()
方法:
linked_service.unregister()
透過工作室連結工作區
透過 Azure Machine Learning 工作室來連結機器學習工作區和 Synapse 工作區:
在左窗格的 [管理] 區段中,選取 [連結服務]
選取 [新增整合]
在 [連結工作區] 表單上,填入欄位
欄位 描述 Name 提供連結服務的名稱。 此特定連結服務的參考會使用此名稱 訂用帳戶名稱 選取與機器學習工作區相關聯的訂用帳戶名稱 Synapse 工作區 選取您要連結的 Synapse 工作區 選取 [下一步] 以開啟 [選取 Spark 集區] (選用) 表單。 在此表單上,請選取要附加至工作區的 Synapse Spark 集區
選取 [下一步] 以開啟 [檢閱] 表單,並檢查您的選取項目
選取 [建立],以完成連結服務建立程序
取得現有的連結服務
您必須先將機器學習工作區連結至 Azure Synapse Analytics 工作區,才能連結專用的計算進行資料整頓。 我們將此工作區稱為連結服務。 擷取和使用現有的連結服務時,需要有 Azure Synapse Analytics 工作區的使用者或參與者權限。
此範例使用 get()
方法,從工作區 ws
擷取現有的連結服務 synapselink1
。
from azureml.core import LinkedService
linked_service = LinkedService.get(ws, 'synapselink1')
將 Synapse Spark 集區附加為計算
一旦您取得連結服務,請將 Synapse Apache Spark 集區附 加為資料整頓工作的專用計算資源。 您可以使用下列項目來連結 Apache Spark 集區:
- Azure Machine Learning Studio
- Azure Resource Manager (ARM) 範本
- Azure Machine Learning Python SDK
透過工作室附加集區
- 登入 Azure Machine Learning 工作室。
- 在左窗格的 [管理] 區段中,選取 [連結服務]
- 選取 Synapse 工作區
- 選取左上方的 [連結的 Spark 集區]
- 選取 [附加]
- 從清單中選取 Apache Spark 集區,並提供名稱
- 此清單識別可供連結至計算的 Synapse Spark 集區
- 若要建立新的 Synapse Spark 集區,請參閱快速入門:使用 Azure 入口網站建立新的無伺服器 Apache Spark 集區
- 選取 [連結選取項目]
使用 Python SDK 附加集區
您也可使用 Python SDK 來連結 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 集區的名稱。 此名稱必須符合 Azure Synapse Analytics 工作區中現有的 Apache Spark 集區
- 您在上一個步驟中建立或擷取的
傳入以下幾項來建立機器學習
ComputeTarget
:- 您要使用的機器學習工作區
ws
- 在 Azure Machine Learning 工作區中您要用於參考計算的名稱
- 您在設定 Synapse 計算時指定的 attach_configuration
- ComputeTarget.attach() 為非同步呼叫,因此範例會被封鎖,直到呼叫完成為止
- 您要使用的機器學習工作區