

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

# 向特征组添加特征和记录
<a name="feature-store-update-feature-group"></a>

您可以使用 Amazon F SageMaker eature Store API 或控制台来更新和描述您的功能组，以及向您的功能组添加功能和记录。特征组是包含您的数据的对象，一个特征描述了表中的一列。向特征组添加特征实际上就是在表中添加一列。向特征组添加新记录时，您需要填写与特定记录标识符关联的特征值。有关 Feature Store 概念的更多信息，请参阅 [Feature Store 概念](feature-store-concepts.md)。

成功向特征组添加特征后，将无法删除这些特征。添加的特征不会向您的记录中添加任何数据。您可以向要素组添加新记录或使用 [PutRecord](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_PutRecord.html)API 覆盖这些记录。有关更新、描述和将记录放入特征组的示例，请参阅[代码示例](#feature-store-update-feature-group-example)。

您可以使用管理控制台将功能添加到特征组。有关如何使用管理控制台更新特征组的更多信息，请参阅 [从管理控制台更新特征组](feature-store-use-with-studio.md#feature-store-update-feature-group-studio)。

以下各节概述了如何使用功能商店 APIs 向功能组添加功能，然后是示例。借助 API，您还可以在更新特征组后添加或覆盖记录。

**Topics**
+ [API](#feature-store-update-feature-group-api)
+ [代码示例](#feature-store-update-feature-group-example)

## API
<a name="feature-store-update-feature-group-api"></a>

使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateFeatureGroup.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateFeatureGroup.html) 操作向特征组添加特征。

您可以使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html) 操作来查看是否已成功添加特征。

要添加或覆盖记录，请使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_PutRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_PutRecord.html) 操作。

要查看您对一条记录所做的更新，请使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_GetRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_GetRecord.html) 操作。要查看您对多条记录所做的更新，请使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_BatchGetRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_BatchGetRecord.html) 操作。您所做的更新可能需要 5 分钟才能显示出来。

可以使用下一节中的示例代码来演练如何利用 适用于 Python (Boto3) 的 AWS SDK添加特征和记录。

## 代码示例
<a name="feature-store-update-feature-group-example"></a>

示例代码将引导您完成以下过程：

1. 向特征组添加特征

1. 验证是否已成功添加特征

1. 向特征组添加记录

1. 验证是否已成功添加记录

### 步骤 1：向特征组添加特征
<a name="feature-store-update-feature-group-step-1"></a>

以下代码使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateFeatureGroup.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateFeatureGroup.html) 操作向特征组添加新特征。它假设您已设置 Feature Store 并创建了一个特征组。有关入门的更多信息，请参阅[“Feature Store 简介”示例笔记本](feature-store-introduction-notebook.md)。

```
import boto3

sagemaker_client = boto3.client("sagemaker")

sagemaker_client.update_feature_group(
    FeatureGroupName=feature_group_name,
    FeatureAdditions=[
        {"FeatureName": "new-feature-1", "FeatureType": "Integral"},
        {"FeatureName": "new-feature-2", "FeatureType": "Fractional"},
        {"FeatureName": "new-feature-3", "FeatureType": "String"}
    ]
)
```

以下代码使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html) 操作检查更新状态。如果 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html#sagemaker-DescribeFeatureGroup-response-LastUpdateStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html#sagemaker-DescribeFeatureGroup-response-LastUpdateStatus) 字段为 `Successful`，则表示已成功添加特征。

```
sagemaker_client.describe_feature_group(
    FeatureGroupName=feature_group_name
)
```

### 步骤 2：向特征组添加新记录
<a name="feature-store-update-feature-group-step-2"></a>

以下代码使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_PutRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_PutRecord.html) 操作向您已创建的特征组添加记录。

```
record_identifier_value = {{'new_record'}}

sagemaker_featurestore_runtime_client = boto3.client("sagemaker-featurestore-runtime")

sagemaker_runtime_client.put_record(
    FeatureGroupName=feature_group_name,
    Record=[
        {
            'FeatureName': {{"record-identifier-feature-name"}},
            'ValueAsString': record_identifier_value
        },
        {
            'FeatureName': {{"event-time-feature"}},
            'ValueAsString': {{"timestamp-that-feature-store-returns"}}
        },
        {
            'FeatureName': {{"new-feature-1"}}, 
            'ValueAsString': {{"value-as-string"}}
        },
        {
            'FeatureName': {{"new-feature-2"}}, 
            'ValueAsString': {{"value-as-string"}}
        },
        {
            'FeatureName': {{"new-feature-3"}}, 
            'ValueAsString': {{"value-as-string"}}
        },
    ]
)
```

使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_GetRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_GetRecord.html) 操作可以查看特征组中哪些记录没有您添加的特征的数据。可以使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_PutRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_PutRecord.html) 操作覆盖没有已添加特征的数据的记录。