本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以使用 Amazon F SageMaker eature Store API 或控制台来更新和描述您的功能组,以及向您的功能组添加功能和记录。特征组是包含您的数据的对象,一个特征描述了表中的一列。向特征组添加特征实际上就是在表中添加一列。向特征组添加新记录时,您需要填写与特定记录标识符关联的特征值。有关 Feature Store 概念的更多信息,请参阅 Feature Store 概念。
成功向特征组添加特征后,将无法删除这些特征。添加的特征不会向您的记录中添加任何数据。您可以向要素组添加新记录或使用 PutRecordAPI 覆盖这些记录。有关更新、描述和将记录放入特征组的示例,请参阅代码示例。
您可以使用管理控制台将功能添加到特征组。有关如何使用管理控制台更新特征组的更多信息,请参阅 从管理控制台更新特征组。
以下各节概述了如何使用功能商店 APIs 向功能组添加功能,然后是示例。借助 API,您还可以在更新特征组后添加或覆盖记录。
API
使用 UpdateFeatureGroup
操作向特征组添加特征。
您可以使用 DescribeFeatureGroup
操作来查看是否已成功添加特征。
要添加或覆盖记录,请使用 PutRecord
操作。
要查看您对一条记录所做的更新,请使用 GetRecord
操作。要查看您对多条记录所做的更新,请使用 BatchGetRecord
操作。您所做的更新可能需要 5 分钟才能显示出来。
可以使用下一节中的示例代码来演练如何利用 AWS SDK for Python (Boto3)添加特征和记录。
代码示例
示例代码将引导您完成以下过程:
-
向特征组添加特征
-
验证是否已成功添加特征
-
向特征组添加记录
-
验证是否已成功添加记录
步骤 1:向特征组添加特征
以下代码使用 UpdateFeatureGroup
操作向特征组添加新特征。它假设您已设置 Feature Store 并创建了一个特征组。有关入门的更多信息,请参阅“Feature Store 简介”示例笔记本。
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"}
]
)
以下代码使用 DescribeFeatureGroup
操作检查更新状态。如果 LastUpdateStatus
字段为 Successful
,则表示已成功添加特征。
sagemaker_client.describe_feature_group( FeatureGroupName=feature_group_name )
步骤 2:向特征组添加新记录
以下代码使用 PutRecord
操作向您已创建的特征组添加记录。
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"
},
]
)
使用 GetRecord
操作可以查看特征组中哪些记录没有您添加的特征的数据。可以使用 PutRecord
操作覆盖没有已添加特征的数据的记录。