VAN TOEPASSING OP:
Azure CLI ml-extensie v2 (huidige)
Met de Azure Machine Learning CLI kunnen we intuïtieve YAML-syntaxis en opdrachten van de opdrachtregelinterface gebruiken om een Synapse Spark-pool te koppelen en te beheren.
Als u een gekoppelde Synapse Spark-pool wilt definiëren met behulp van de YAML-syntaxis, moet het YAML-bestand de volgende eigenschappen hebben:
name
– naam van de gekoppelde Synapse Spark-pool.
type
– stel deze eigenschap in op synapsespark
.
resource_id
: deze eigenschap moet de resource-id-waarde opgeven van de Synapse Spark-pool die is gemaakt in de Azure Synapse Analytics-werkruimte. De Azure-resource-id bevat
Azure-abonnements-id,
resourcegroepnaam,
Azure Synapse Analytics-werkruimtenaam en
naam van de Synapse Spark-pool.
name: <ATTACHED_SPARK_POOL_NAME>
type: synapsespark
resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>
identity
– deze eigenschap definieert het identiteitstype dat moet worden toegewezen aan de gekoppelde Synapse Spark-pool. Er kan een van deze waarden worden gebruikt:
Voor het identity
type user_assigned
moet u ook een lijst met user_assigned_identities
waarden opgeven. Elke door de gebruiker toegewezen identiteit moet worden gedeclareerd als een element van de lijst, met behulp van de waarde van de resource_id
door de gebruiker toegewezen identiteit. De eerste door de gebruiker toegewezen identiteit in de lijst wordt standaard gebruikt om een taak te verzenden.
name: <ATTACHED_SPARK_POOL_NAME>
type: synapsespark
resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>
identity:
type: user_assigned
user_assigned_identities:
- resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<AML_USER_MANAGED_ID>
De YAML-bestanden hierboven kunnen als parameter --file
worden gebruikt in de az ml compute attach
opdracht. Een Synapse Spark-pool kan worden gekoppeld aan een Azure Machine Learning-werkruimte, in een opgegeven resourcegroep van een abonnement, met de az ml compute attach
opdracht zoals hier wordt weergegeven:
az ml compute attach --file <YAML_SPECIFICATION_FILE_NAME>.yaml --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP> --workspace-name <AML_WORKSPACE_NAME>
In dit voorbeeld ziet u de verwachte uitvoer van de bovenstaande opdracht:
Class SynapseSparkCompute: This is an experimental class, and may change at any time. Please visit https://aka.ms/azuremlexperimental for more information.
{
"auto_pause_settings": {
"auto_pause_enabled": true,
"delay_in_minutes": 15
},
"created_on": "2022-09-13 19:01:05.109840+00:00",
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<AML_WORKSPACE_NAME>/computes/<ATTACHED_SPARK_POOL_NAME>",
"location": "eastus2",
"name": "<ATTACHED_SPARK_POOL_NAME>",
"node_count": 5,
"node_family": "MemoryOptimized",
"node_size": "Small",
"provisioning_state": "Succeeded",
"resourceGroup": "<RESOURCE_GROUP>",
"resource_id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>",
"scale_settings": {
"auto_scale_enabled": false,
"max_node_count": 0,
"min_node_count": 0
},
"spark_version": "3.2",
"type": "synapsespark"
}
Als de gekoppelde Synapse Spark-pool, met de naam die is opgegeven in het YAML-specificatiebestand, al bestaat in de werkruimte, werkt az ml compute attach
de opdrachtuitvoering de bestaande pool bij met de informatie in het YAML-specificatiebestand. U kunt de
- identiteitstype
- door de gebruiker toegewezen identiteiten
- tags
waarden via het YAML-specificatiebestand.
Als u details van een gekoppelde Synapse Spark-pool wilt weergeven, voert u de az ml compute show
opdracht uit. Geef de naam van de gekoppelde Synapse Spark-pool door met de --name
parameter, zoals wordt weergegeven:
az ml compute show --name <ATTACHED_SPARK_POOL_NAME> --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP> --workspace-name <AML_WORKSPACE_NAME>
In dit voorbeeld ziet u de verwachte uitvoer van de bovenstaande opdracht:
<ATTACHED_SPARK_POOL_NAME>
{
"auto_pause_settings": {
"auto_pause_enabled": true,
"delay_in_minutes": 15
},
"created_on": "2022-09-13 19:01:05.109840+00:00",
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<AML_WORKSPACE_NAME>/computes/<ATTACHED_SPARK_POOL_NAME>",
"location": "eastus2",
"name": "<ATTACHED_SPARK_POOL_NAME>",
"node_count": 5,
"node_family": "MemoryOptimized",
"node_size": "Small",
"provisioning_state": "Succeeded",
"resourceGroup": "<RESOURCE_GROUP>",
"resource_id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>",
"scale_settings": {
"auto_scale_enabled": false,
"max_node_count": 0,
"min_node_count": 0
},
"spark_version": "3.2",
"type": "synapsespark"
}
Gebruik de az ml compute list
opdracht om een lijst met alle berekeningen weer te geven, inclusief de gekoppelde Synapse Spark-pools in een werkruimte. Gebruik de naamparameter om de naam van de werkruimte door te geven, zoals wordt weergegeven:
az ml compute list --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP> --workspace-name <AML_WORKSPACE_NAME>
In dit voorbeeld ziet u de verwachte uitvoer van de bovenstaande opdracht:
[
{
"auto_pause_settings": {
"auto_pause_enabled": true,
"delay_in_minutes": 15
},
"created_on": "2022-09-09 21:28:54.871251+00:00",
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<AML_WORKSPACE_NAME>/computes/<ATTACHED_SPARK_POOL_NAME>",
"identity": {
"principal_id": "<PRINCIPAL_ID>",
"tenant_id": "<TENANT_ID>",
"type": "system_assigned"
},
"location": "eastus2",
"name": "<ATTACHED_SPARK_POOL_NAME>",
"node_count": 5,
"node_family": "MemoryOptimized",
"node_size": "Small",
"provisioning_state": "Succeeded",
"resourceGroup": "<RESOURCE_GROUP>",
"resource_id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>",
"scale_settings": {
"auto_scale_enabled": false,
"max_node_count": 0,
"min_node_count": 0
},
"spark_version": "3.2",
"type": "synapsespark"
},
...
]
VAN TOEPASSING OP:
Python SDK azure-ai-ml v2 (actueel)
Azure Machine Learning Python SDK biedt handige functies voor het koppelen en beheren van Synapse Spark-pool met behulp van Python-code in Azure Machine Learning Notebooks.
Als u een Synapse Compute wilt koppelen met behulp van Python SDK, maakt u eerst een exemplaar van de klasse azure.ai.ml.MLClient. Dit biedt handige functies voor interactie met Azure Machine Learning-services. Het volgende codevoorbeeld gebruikt azure.identity.DefaultAzureCredential
om verbinding te maken met een werkruimte in de resourcegroep van een opgegeven Azure-abonnement. Definieer in het volgende codevoorbeeld de SynapseSparkCompute
volgende parameters:
name
- door de gebruiker gedefinieerde naam van de nieuwe gekoppelde Synapse Spark-pool.
resource_id
- resource-id van de Synapse Spark-pool die eerder is gemaakt in de Azure Synapse Analytics-werkruimte
Een azure.ai.ml.MLClient.begin_create_or_update() functieaanroep koppelt de gedefinieerde Synapse Spark-pool aan de Azure Machine Learning-werkruimte.
from azure.ai.ml import MLClient
from azure.ai.ml.entities import SynapseSparkCompute
from azure.identity import DefaultAzureCredential
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace_name = "<AML_WORKSPACE_NAME>"
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace_name
)
synapse_name = "<ATTACHED_SPARK_POOL_NAME>"
synapse_resource = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>"
synapse_comp = SynapseSparkCompute(name=synapse_name, resource_id=synapse_resource)
ml_client.begin_create_or_update(synapse_comp)
Als u een Synapse Spark-pool wilt koppelen die gebruikmaakt van door het systeem toegewezen identiteit, geeft u IdentityConfiguration door, waarbij het type is ingesteld SystemAssigned
op , als de identity
parameter van de SynapseSparkCompute
klasse. Met dit codefragment wordt een Synapse Spark-pool gekoppeld die gebruikmaakt van door het systeem toegewezen identiteit:
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import SynapseSparkCompute, IdentityConfiguration
from azure.identity import DefaultAzureCredential
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace_name = "<AML_WORKSPACE_NAME>"
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace_name
)
synapse_name = "<ATTACHED_SPARK_POOL_NAME>"
synapse_resource = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>"
synapse_identity = IdentityConfiguration(type="SystemAssigned")
synapse_comp = SynapseSparkCompute(
name=synapse_name, resource_id=synapse_resource, identity=synapse_identity
)
ml_client.begin_create_or_update(synapse_comp)
Een Synapse Spark-pool kan ook een door de gebruiker toegewezen identiteit gebruiken. Voor een door de gebruiker toegewezen identiteit kunt u een definitie van een beheerde identiteit doorgeven met behulp van de klasse IdentityConfiguration , als de identity
parameter van de SynapseSparkCompute
klasse. Voor de definitie van de beheerde identiteit die op deze manier wordt gebruikt, stelt u de type
optie in op UserAssigned
. Geef bovendien een user_assigned_identities
parameter door. De parameter user_assigned_identities
is een lijst met objecten van de klasse UserAssignedIdentity. De resource_id
door de gebruiker toegewezen identiteit vult elk UserAssignedIdentity
klasseobject in. Met dit codefragment wordt een Synapse Spark-pool gekoppeld die gebruikmaakt van een door de gebruiker toegewezen identiteit:
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
SynapseSparkCompute,
IdentityConfiguration,
UserAssignedIdentity,
)
from azure.identity import DefaultAzureCredential
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace_name = "<AML_WORKSPACE_NAME>"
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace_name
)
synapse_name = "<ATTACHED_SPARK_POOL_NAME>"
synapse_resource = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>"
synapse_identity = IdentityConfiguration(
type="UserAssigned",
user_assigned_identities=[
UserAssignedIdentity(
resource_id="/subscriptions/<SUBSCRIPTION_ID/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<AML_USER_MANAGED_ID>"
)
],
)
synapse_comp = SynapseSparkCompute(
name=synapse_name, resource_id=synapse_resource, identity=synapse_identity
)
ml_client.begin_create_or_update(synapse_comp)
Notitie
De azure.ai.ml.MLClient.begin_create_or_update()
functie koppelt een nieuwe Synapse Spark-pool als er nog geen pool met de opgegeven naam in de werkruimte bestaat. Als een Synapse Spark-pool met die opgegeven naam echter al aan de werkruimte is gekoppeld, wordt de azure.ai.ml.MLClient.begin_create_or_update()
bestaande gekoppelde pool bijgewerkt met de nieuwe identiteit of identiteiten.