

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Feature Store 中查找特征组
<a name="feature-store-search-feature-group-metadata"></a>

通过 Amazon F SageMaker eature Store，您可以使用控制台或[搜索操作来搜索](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_Search.html)功能组。您可以使用搜索功能来查找与您要创建的模型相关的特征和特征组。您可以使用搜索功能快速查找与您的使用案例相关的特征组。

**注意**  
您要搜索的功能组必须位于您的 Amazon Web Services 区域 和 Amazon 帐户中，或者与您共享并允许您 Amazon Web Services 账户发现。有关如何共享特征组目录和授予可发现性的更多信息，请参阅 [共享特征组目录](feature-store-cross-account-discoverability-share-feature-group-catalog.md)。

下表显示了可搜索字段以及是否可以使用管理控制台搜索特定字段。

您可以使用 Amazon SageMaker Studio Classic 或 SageMaker API 中的[https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_Search.html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_Search.html)操作来搜索功能。下表列出了所有可搜索的元数据，以及是否可以在管理控制台中搜索。对于您自己的特征组，标签可以搜索；但对于您可以发现的特征组，则不可搜索。


****  

| 可搜索元数据 | API 字段名称 | 是否可以在管理控制台中搜索？ | 是否可以跨账户搜索？ | 
| --- | --- | --- | --- | 
| 所有标签 | AllTags | 是 | 否 | 
| 创建失败原因 | FailureReason | 否 | 否 | 
| 创建状态 | [FeatureGroupStatus](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_FeatureGroup.html) | 支持 | 是 | 
| 创建时间 | CreationTime | 支持 | 是 | 
| 说明 | Description | 支持 | 是 | 
| 事件时间特征名称 | EventTimeFeatureName | 否 | 否 | 
| 特征定义 | [FeatureDefinitions](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_FeatureDefinition.html) | 否 | 否 | 
| 特征组 ARN | [FeatureGroupARN](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_FeatureGroup.html) | 否 | 否 | 
| 特征组名称 | [FeatureGroupName](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_FeatureGroup.html) | 支持 | 是 | 
| 离线存储配置 | [OfflineStoreConfig](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_OfflineStoreConfig.html) | 否 | 否 | 
| 离线存储状态 | [OfflineStoreStatus](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_OfflineStoreStatus.html) | 支持 | 是 | 
| 上次更新状态 | [LastUpdateStatus](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_LastUpdateStatus.html) | 否 | 否 | 
| 记录标识符特征名称 | RecordIdentifierFeatureName | 支持 | 是 | 
| 标签 | Tags.key | 是 | 否 | 

## 如何查找特征组
<a name="feature-store-search-feature-group-metadata-how-to"></a>

您可以使用控制台或 Amazon F SageMaker eature Store API 来查找您的功能组。通过管理控制台使用特征存放区的说明取决于您是否已启用 [亚马逊 SageMaker Studio](studio-updated.md) 或 [亚马逊 SageMaker Studio 经典版](studio.md) 作为默认体验。

### 如果 Studio 是您的默认体验（管理控制台），请查找特征组
<a name="feature-store-search-feature-group-metadata-how-to-using-studio-updated"></a>

1. 按照 [启动亚马逊 SageMaker Studio](studio-updated-launch.md) 中的说明打开 Studio 管理控制台。

1. 在左侧导航窗格中选择**数据**，展开下拉列表。

1. 从下拉列表中，选择 **Feature Store**。

1. （可选）要查看特征组，请选择**我的账户**。要查看共享特征组，请选择**跨账户**。

1. 在**特征组目录**选项卡下，选择**我的账户**查看特征组。

1. 在**特征组目录**选项卡下，选择**跨账户**，查看他人让您可以发现的特征组。在**创建者**下，可以查看资源所有者账户 ID。

1. 您可以在**搜索**下拉列表中搜索您的特征组：
   + （可选）要筛选搜索，请选择**搜索**下拉列表旁边的筛选图标。可以使用筛选器在搜索结果中指定参数或日期范围。如果要搜索一个参数，请同时指定其键和值。要查找特征组，可以指定时间范围、清除（取消选择）不想查询的列、选择要搜索的存储或按状态搜索。
   + 对于共享资源，只有拥有资源所有者账户授予的适当访问权限，才能编辑特征组元数据或功能定义。仅有可发现性权限并不允许您编辑元数据或功能定义。有关授予访问权限的更多信息，请参阅 [启用跨账户访问](feature-store-cross-account-access.md)。

### 使用 Python SDK 查找特征组 (Boto3)
<a name="feature-store-search-feature-group-metadata-how-to-with-sdk"></a>

本节中的代码使用中的[https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_Search.html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_Search.html) 适用于 Python (Boto3) 的 Amazon SDK 操作运行搜索查询来查找功能组。有关提交查询的其他语言的信息，请参[阅 *Amazon SageMaker API 参考*中的另请参阅](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_Search.html#API_Search_SeeAlso)。

有关更多特征存放区示例和资源，请参阅 [Amazon SageMaker 功能商店资源](feature-store-resources.md)。

以下代码展示了使用 API 进行搜索查询的不同示例：

```
# Return all feature groups
sagemaker_client.search(
    Resource="FeatureGroups",
)  

# Search for feature groups that are shared with your account
sagemaker_session.search(
    resource="FeatureGroup",
    search_expression={
        "Filters": [
            {
                "Name": "FeatureGroupName",
                "Value": "MyFeatureGroup",
                "Operator": "Contains",
            }
        ],
        "Operator": "And",
    },
    sort_by="Name",
    sort_order="Ascending",
    next_token="token",
    max_results=50,
    CrossAccountFilterOption="SameAccount"
)

# Search for all feature groups with a name that contains the "ver" substring
sagemaker_client.search(
    Resource="FeatureGroups",
    SearchExpression={
        'Filters': [
            {
                'Name': 'FeatureGroupName',
                'Operator': 'Contains',
                'Value': 'ver'
            },
        ]
    }
)

# Search for all feature groups that have the EXACT name "airport"
sagemaker_client.search(
    Resource="FeatureGroups",
    SearchExpression={
        'Filters': [
            {
                'Name': 'FeatureGroupName',
                'Operator': 'Equals',
                'Value': 'airport'
            },
        ]
    }
)

# Search for all feature groups that contains the name "ver"
# AND have a record identifier feature name that contains "wha"
# AND have a tag (key or value) that contains "hea"
sagemaker_client.search(
    Resource="FeatureGroups",
    SearchExpression={
        'Filters': [
            {
                'Name': 'FeatureGroupName',
                'Operator': 'Contains',
                'Value': 'ver'
            },
            {
                'Name': 'RecordIdentifierFeatureName',
                'Operator': 'Contains',
                'Value': 'wha'
            },
            {
                'Name': 'AllTags', 
                'Operator': 'Contains',
                'Value': 'hea'
            },
        ]
    }
)  

# Search for all feature groups with substring "ver" in its name
# OR feature groups that have a record identifier feature name that contains "wha"
# OR feature groups that have a tag (key or value) that contains "hea"
sagemaker_client.search(
    Resource="FeatureGroups",
    SearchExpression={
        'Filters': [
            {
                'Name': 'FeatureGroupName',
                'Operator': 'Contains',
                'Value': 'ver'
            },
            {
                'Name': 'RecordIdentifierFeatureName',
                'Operator': 'Contains',
                'Value': 'wha'
            },
            {
                'Name': 'AllTags', 
                'Operator': 'Contains',
                'Value': 'hea'
            },
        ],
        'Operator': 'Or' # note that this is explicitly set to "Or"- the default is "And"
    }
)              


# Search for all feature groups with substring "ver" in its name
# OR feature groups that have a record identifier feature name that contains "wha"
# OR tags with the value 'Sage' for the 'org' key
sagemaker_client.search(
    Resource="FeatureGroups",
    SearchExpression={
        'Filters': [
            {
                'Name': 'FeatureGroupName',
                'Operator': 'Contains',
                'Value': 'ver'
            },
            {
                'Name': 'RecordIdentifierFeatureName',
                'Operator': 'Contains',
                'Value': 'wha'
            },
            {
                'Name': 'Tags.org', 
                'Operator': 'Contains',
                'Value': 'Sage'
            },
        ],
        'Operator': 'Or' # note that this is explicitly set to "Or"- the default is "And"
    }
)

# Search for all offline only feature groups
sagemaker_client.search(
    Resource="FeatureGroups",
    SearchExpression={
        'Filters': [
            {
                'Name': 'OnlineStoreConfig.EnableOnlineStore',
                'Operator': 'NotEquals',
                'Value': 'true'
            },
            {
                'Name': 'OfflineStoreConfig.S3StorageConfig.S3Uri',
                'Operator': 'Exists'
            }
        ]
    }
)

# Search for all online only feature groups
sagemaker_client.search(
    Resource="FeatureGroups",
    SearchExpression={
        'Filters': [
            {
                'Name': 'OnlineStoreConfig.EnableOnlineStore',
                'Operator': 'Equals',
                'Value': 'true'
            },
            {
                'Name': 'OfflineStoreConfig.S3StorageConfig.S3Uri',
                'Operator': 'NotExists'
            }
        ]
    }
)

# Search for all feature groups that are BOTH online and offline
sagemaker_client.search(
    Resource="FeatureGroups",
    SearchExpression={
        'Filters': [
            {
                'Name': 'OnlineStoreConfig.EnableOnlineStore',
                'Operator': 'Equals',
                'Value': 'true'
            },
            {
                'Name': 'OfflineStoreConfig.S3StorageConfig.S3Uri',
                'Operator': 'Exists'
            }
        ]
    }
)
```

你也可以使用的 python 软件开发工具包 Amazon RAM APIs 来创建资源共享。API 签名如下所示。要使用 Amazon RAM API 的 python SDK，你需要附加带有执行角色的 Amazon RAM 完全访问托管策略。

```
response = client.create_resource_share(
    name='string',
    resourceArns=[
        'string',
    ],
    principals=[
        'string',
    ],
    tags=[
        {
            'key': 'string',
            'value': 'string'
        },
    ],
    allowExternalPrincipals=True|False,
    clientToken='string',
    permissionArns=[
        'string',
    ]
)
```