CLI (v2) 特征存储 YAML 架构

适用于:Azure CLI ml 扩展 v2(当前)

注意

本文档中详细介绍的 YAML 语法基于最新版本的 ML CLI v2 扩展的 JSON 架构。 此语法必定仅适用于最新版本的 ML CLI v2 扩展。 可以在 https://azuremlschemasprod.azureedge.net/ 上查找早期扩展版本的架构。

YAML 语法

密钥 类型 说明 允许的值 默认值
$schema 字符串 YAML 架构。 如果使用 Azure 机器学习 VS Code 扩展来创作 YAML 文件,则可通过在文件顶部包含 $schema 来调用架构和资源完成操作。
name 字符串 必需。 特征存储的名称。
compute_runtime 对象 用于具体化作业的计算运行时配置。
compute_runtime.spark_runtime_version 字符串 Azure 机器学习 Spark 运行时版本。 3.4 3.4
offline_store object
offline_store.type 字符串 如果提供了 offline_store,则为必需。 脱机存储的类型。 仅支持数据湖第 2 代类型的存储。 azure_data_lake_gen2
offline_store.target 字符串 如果提供了 offline_store,则为必需。 数据湖第 2 代存储 URI,格式为 /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.Storage/storageAccounts/<account>/blobServices/default/containers/<container>
online_store object
online_store.type string 如果提供了 online_store,则为必需。 在线商店的类型。 仅支持 Redis 缓存。 redis
online_store.target string 如果提供了 online_store,则为必需。 Redis 缓存 URI 的格式为 /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.Cache/Redis/<redis-name>
materialization_identity 对象 用于具体化作业的用户分配的托管标识。 此标识需要被授予必要的角色才能访问特征存储服务、数据源和脱机存储。
materialization_identity.client_id 字符串 用户分配的托管标识的客户端 ID。
materialization_identity.resource_id 字符串 用户分配的托管标识的资源 ID。
materialization_identity.principal_id 字符串 用户分配的托管标识的主体 ID。
description 字符串 特征存储的说明。
tags object 特征存储的标记字典。
display_name 字符串型 特征存储在 Studio UI 中的显示名称。 在资源组中可以不唯一。
location 字符串 特征存储的位置。 资源组位置。
resource_group 字符串 包含特征存储的资源组。 如果资源组不存在,则将创建一个新的资源组。

可以包括其他工作区属性

备注

az ml feature-store 命令可用于管理 Azure 机器学习特征存储工作区。

示例

示例 GitHub 存储库中提供了示例。 以下是一些常见示例:

YAML 基础

$schema: http://azureml/sdk-2-0/FeatureStore.json
name: mktg-feature-store
location: chinanorth3

带脱机存储配置的 YAML

$schema: http://azureml/sdk-2-0/FeatureStore.json
name: mktg-feature-store

compute_runtime:
    spark_runtime_version: 3.2

offline_store:
    type: azure_data_lake_gen2
    target: /subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.Storage/storageAccounts/<account_name>/blobServices/default/containers/<container_name>

materialization_identity:
    client_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    resource_id: /subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<uai-name>

# Many of workspace parameters will also be supported:
location: chinanorth3
display_name: marketing feature store
tags:
  foo: bar

使用 YAML 在 CLI 中配置在线商店

$schema: http://azureml/sdk-2-0/FeatureStore.json
name: mktg-feature-store

compute_runtime:
  spark_runtime_version: 3.4

online_store:
  type: redis
  target: "/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.Cache/Redis/<redis-name>"

materialization_identity:
  client_id: 00001111-aaaa-2222-bbbb-3333cccc4444
  principal_id: aaaaaaaa-bbbb-cccc-1111-222222222222
  resource_id: /subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<uai-name>

# Many of workspace parameters will also be supported:
location: eastus
display_name: marketing feature store
tags:
  foo: bar

使用 Python 在 CLI 中配置在线商店

redis_arm_id = f"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{redis_name}"
online_store = MaterializationStore(type="redis", target=redis_arm_id)
 
fs = FeatureStore(
    name=featurestore_name,
    location=location,
    online_store=online_store,
)
 
# wait for feature store creation
fs_poller = ml_client.feature_stores.begin_create(fs)

# move the feature store to a YAML file

yaml_path = root_dir + "/featurestore/featurestore_with_online.yaml"
fs.dump(yaml_path)

后续步骤