ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)
Azure Machine Learning CLI ile, Synapse Spark havuzu eklemek ve yönetmek için komut satırı arabiriminden sezgisel YAML söz dizimini ve komutlarını kullanabiliriz.
YAML söz dizimini kullanarak ekli bir Synapse Spark havuzu tanımlamak için YAML dosyası şu özellikleri kapsamalıdır:
name
– ekli Synapse Spark havuzunun adı.
type
– bu özelliği olarak synapsespark
ayarlayın.
resource_id
– bu özellik, Azure Synapse Analytics çalışma alanında oluşturulan Synapse Spark havuzunun kaynak kimliği değerini sağlamalıdır. Azure kaynak kimliği şunları içerir:
Azure Abonelik Kimliği,
kaynak Grubu Adı,
Azure Synapse Analytics Çalışma Alanı Adı ve
Synapse Spark Havuzunun adı.
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
– bu özellik, ekli Synapse Spark havuzuna atanacak kimlik türünü tanımlar. Bu değerlerden birini alabilir:
türü user_assigned
için identity
bir değer listesi user_assigned_identities
de sağlamanız gerekir. Kullanıcı tarafından atanan her kimlik, kullanıcı tarafından atanan kimliğin değeri kullanılarak resource_id
listenin bir öğesi olarak bildirilmelidir. Listedeki ilk kullanıcı tarafından atanan kimlik, varsayılan olarak bir iş göndermek için kullanılır.
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>
Yukarıdaki YAML dosyaları komutunda az ml compute attach
parametresi olarak --file
kullanılabilir. Synapse Spark havuzu, aşağıda gösterildiği gibi komutuyla az ml compute attach
bir aboneliğin belirtilen kaynak grubunda bir Azure Machine Learning çalışma alanına eklenebilir:
az ml compute attach --file <YAML_SPECIFICATION_FILE_NAME>.yaml --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP> --workspace-name <AML_WORKSPACE_NAME>
Bu örnek, yukarıdaki komutun beklenen çıkışını gösterir:
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"
}
YaML belirtim dosyasında belirtilen adla ekli Synapse Spark havuzu çalışma alanında zaten varsa, az ml compute attach
komut yürütme mevcut havuzu YAML belirtim dosyasında sağlanan bilgilerle güncelleştirir. Aşağıdakini güncelleştirebilirsiniz:
- kimlik türü
- kullanıcı tarafından atanan kimlikler
- tags
değerleri YAML belirtim dosyası üzerinden.
Ekli Synapse Spark havuzunun ayrıntılarını görüntülemek için komutunu yürütür az ml compute show
. Ekli Synapse Spark havuzunun adını aşağıdaki gibi parametresiyle --name
geçirin:
az ml compute show --name <ATTACHED_SPARK_POOL_NAME> --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP> --workspace-name <AML_WORKSPACE_NAME>
Bu örnek, yukarıdaki komutun beklenen çıkışını gösterir:
<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"
}
Çalışma alanında eklenen Synapse Spark havuzları da dahil olmak üzere tüm işlemlerin listesini görmek için komutunu kullanın az ml compute list
. Aşağıda gösterildiği gibi çalışma alanının adını geçirmek için name parametresini kullanın:
az ml compute list --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP> --workspace-name <AML_WORKSPACE_NAME>
Bu örnek, yukarıdaki komutun beklenen çıkışını gösterir:
[
{
"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"
},
...
]
ŞUNLAR IÇIN GEÇERLIDIR: Python SDK'sı azure-ai-ml v2 (geçerli)
Azure Machine Learning Python SDK'sı, Azure Machine Learning Not Defterleri'nde Python kodunu kullanarak Synapse Spark havuzunu eklemek ve yönetmek için kullanışlı işlevler sağlar.
Python SDK'sını kullanarak synapse compute eklemek için öncelikle azure.ai.ml.MLClient sınıfının bir örneğini oluşturun. Bu, Azure Machine Learning hizmetleriyle etkileşime yönelik kullanışlı işlevler sağlar. Aşağıdaki kod örneği, belirtilen Azure aboneliğinin kaynak grubundaki bir çalışma alanına bağlanmak için kullanır azure.identity.DefaultAzureCredential
. Aşağıdaki kod örneğinde öğesini şu parametrelerle tanımlayın SynapseSparkCompute
:
name
- Yeni eklenen Synapse Spark havuzunun kullanıcı tanımlı adı.
resource_id
- Azure Synapse Analytics çalışma alanında daha önce oluşturulan Synapse Spark havuzunun kaynak kimliği
azure.ai.ml.MLClient.begin_create_or_update () işlev çağrısı, tanımlı Synapse Spark havuzunu Azure Machine Learning çalışma alanına ekler.
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)
Sistem tarafından atanan kimliği kullanan bir Synapse Spark havuzu eklemek için, identityConfiguration'ı geçirin ve türü sınıfın SynapseSparkCompute
identity
parametresi olarak olarak olarak ayarlayınSystemAssigned
. Bu kod parçacığı, sistem tarafından atanan kimliği kullanan bir Synapse Spark havuzu ekler:
# 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)
Synapse Spark havuzu, kullanıcı tarafından atanan bir kimlik de kullanabilir. Kullanıcı tarafından atanan kimlik için, IdentityConfiguration sınıfını sınıfının parametresi SynapseSparkCompute
olarak identity
kullanarak yönetilen kimlik tanımını geçirebilirsiniz. Bu şekilde kullanılan yönetilen kimlik tanımı için olarak ayarlayın type
UserAssigned
. Ayrıca, bir user_assigned_identities
parametre geçirin. parametresi user_assigned_identities
, UserAssignedIdentity sınıfının nesnelerinin listesidir. resource_id
Kullanıcı tarafından atanan kimliğin her UserAssignedIdentity
sınıf nesnesini doldurur. Bu kod parçacığı, kullanıcı tarafından atanan kimliği kullanan bir Synapse Spark havuzu ekler:
# 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)
Not
Belirtilen azure.ai.ml.MLClient.begin_create_or_update()
ada sahip bir havuz çalışma alanında zaten yoksa işlev yeni bir Synapse Spark havuzu ekler. Ancak, belirtilen ada sahip bir Synapse Spark havuzu çalışma alanına zaten eklenmişse, işlev çağrısı azure.ai.ml.MLClient.begin_create_or_update()
mevcut ekli havuzu yeni kimlik veya kimliklerle güncelleştirir.