다음을 통해 공유


Azure Synapse Analytics 및 Azure Machine Learning 작업 영역을 연결하고 Apache Spark 풀 연결(사용되지 않음)

적용 대상: Python SDK azureml v1

Warning

Python SDK v1에서 사용할 수 있는 Azure Machine Learning과의 Azure Synapse Analytics 통합은 더 이상 사용되지 않습니다. 사용자는 Azure Machine Learning에 등록된 Synapse 작업 영역을 연결된 서비스로 계속 사용할 수 있습니다. 그러나 새 Synapse 작업 영역은 더 이상 연결된 서비스로 Azure Machine Learning에 등록할 수 없습니다. CLI v2 및 Python SDK v2에서 사용할 수 있는 서버리스 Spark 컴퓨팅 및 연결된 Synapse Spark 풀을 사용하는 것이 좋습니다. 자세한 내용은 https://aka.ms/aml-spark을 참조하세요.

이 문서에서는 Azure Synapse Analytics 작업 영역 및 Azure Machine Learning 작업 영역을 연결하는 연결된 서비스를 만드는 방법을 알아봅니다.

Azure Synapse 작업 영역과 연결된 Azure Machine Learning 작업 영역을 사용하면 Azure Synapse Analytics에서 제공하는 Apache Spark 풀을 전용 컴퓨팅 리소스로 연결할 수 있습니다. 대규모 데이터 랭글링에 이 리소스를 사용하거나 동일한 Python Notebook에서 모델 학습을 수행할 수 있습니다.

Python SDK 또는 Azure Machine Learning 스튜디오를 통해 ML 작업 영역 및 Synapse 작업 영역을 연결할 수 있습니다. 작업 영역을 연결하고 단일 Azure Resource Manager(ARM) 템플릿을 사용하여 Synapse Spark 풀을 연결할 수도 있습니다.

필수 조건

Important

Synapse 작업 영역에 성공적으로 연결하려면 Synapse 작업 영역의 소유자 역할을 부여해야 합니다. Azure Portal에서 액세스를 확인합니다.

Synapse 작업 영역의 기여자일 뿐이고 해당 Synapse 작업 영역에 대한 소유자가 없는 경우 기존 연결된 서비스만 사용할 수 있습니다. 자세한 내용은 기존 연결된 서비스 검색 및 사용을 참조하세요.

이 코드는 LinkedServiceSynapseWorkspaceLinkedServiceConfiguration 클래스를 채택합니다.

  • Azure Synapse 작업 영역을 사용하여 기계 학습 작업 영역인 ws를 연결합니다.
  • 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)

Important

각 연결된 서비스에 대해 관리 ID인 system_assigned_identity_principal_id가 생성됩니다. Synapse 세션을 시작하기 전에 이 관리 ID에 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 작업 영역을 연결합니다.

  1. Azure Machine Learning 스튜디오에 로그인합니다.

  2. 왼쪽 창의 관리 섹션에서 연결된 서비스를 선택합니다.

  3. 통합 추가를 선택합니다.

  4. 작업 영역 연결 양식에서 필드를 작성합니다.

    필드 설명
    이름 연결된 서비스의 이름을 제공합니다. 이 특정 연결된 서비스에 대한 참조는 이 이름을 사용합니다.
    구독 이름 기계 학습 작업 영역과 연결된 구독 이름을 선택합니다.
    Synapse 작업 영역 연결하려는 Synapse 작업 영역을 선택합니다.
  5. 다음을 선택하여 Spark 풀 선택(선택 사항) 양식을 엽니다. 이 양식에서 작업 영역에 연결할 Synapse Spark 풀을 선택합니다.

  6. 다음을 선택하여 검토 양식을 열고 선택 내용을 확인합니다.

  7. 만들기를 선택하여 연결된 서비스 만들기 프로세스를 완료합니다.

연결된 기존 서비스 가져오기

데이터 랭글링을 위한 전용 컴퓨팅을 연결하려면 먼저 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 풀을 연결할 수 있습니다.

스튜디오를 통해 풀 연결

  1. Azure Machine Learning 스튜디오에 로그인합니다.
  2. 왼쪽 창의 관리 섹션에서 연결된 서비스를 선택합니다.
  3. Synapse 작업 영역을 선택합니다.
  4. 왼쪽 위에서 연결된 Spark 풀을 선택합니다.
  5. 연결을 선택합니다.
  6. 목록에서 Apache Spark 풀을 선택하고 이름을 입력합니다.
    1. 이 목록은 컴퓨팅에 연결할 수 있는 사용 가능한 Synapse Spark 풀을 식별합니다.
    2. 새 Synapse Spark 풀을 만들려면 빠른 시작: Azure Portal을 사용하여 새 서버리스 Apache Spark 풀 만들기를 참조하세요.
  7. 선택한 항목 연결을 선택합니다.

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']

이 코드는

  1. SynapseCompute를 다음과 같이 구성합니다.

    1. 이전 단계에서 만들었거나 검색한 LinkedService, linked_service입니다.
    2. 연결하려는 컴퓨팅 대상의 유형 - 이 경우에는 SynapseSpark.
    3. Apache Spark 풀의 이름. 이름은 Azure Synapse Analytics 작업 영역에 있는 기존 Apache Spark 풀과 일치해야 합니다.
  2. 전달하여 기계 학습 ComputeTarget을 만듭니다.

    1. 사용하려는 기계 학습 작업 영역 ws
    2. Azure Machine Learning 작업 영역 내에서 컴퓨팅을 참조하는 데 사용하려는 이름
    3. Synapse 컴퓨팅을 구성할 때 지정한 attachment_configuration
      1. ComputeTarget.attach()에 대한 호출은 비동기식이므로 호출이 완료될 때까지 샘플 실행이 차단됩니다.

다음 단계