翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
特徴量グループへの特徴量とレコードの追加
Amazon SageMaker 特徴量ストア API または コンソールを使用して、特徴量グループを更新したり説明を追加したり、特徴量グループに特徴量やレコードを追加したりできます。特徴量グループはデータを含むオブジェクトで、特徴量はテーブルの列を説明します。特徴量グループに特徴量を追加すると、実質的にはテーブルに列が追加されます。特徴量グループに新しいレコードを追加すると、特定のレコード識別子に関連付けられた特徴量の値を入力することになります。特徴量ストアの概念の詳細については、「Feature Store の概念」を参照してください。
特徴量グループに正常に特徴量を追加すると、それらの特徴量を削除することはできません。追加した特徴量によってレコードにデータが追加されることはありません。新しいレコードを特徴量グループに追加するか、PutRecord または BatchWriteRecord API オペレーションを使用して上書きできます。レコードを更新、説明、特徴量グループに追加する例については、「コードの例」を参照してください。
コンソールを使用して、特徴量グループに特徴量を追加できます。コンソールを使用して特徴量グループを更新する方法の詳細は、「コンソールから特徴量グループを更新する」を参照してください。
以下のセクションでは、Feature Store API を使用して特徴量グループに特徴量を追加する方法の概要を説明し、例を挙げて説明します。API を使用すると、特徴量グループを更新した後にレコードを追加または上書きすることもできます。
API
UpdateFeatureGroup 操作を使用して、特徴量グループに特徴量を追加します。
DescribeFeatureGroup オペレーションを使用して、機能が正常に追加されたかどうかを確認できます。
レコードを追加または上書きするには、PutRecord オペレーションを使用します。1 回のリクエストで最大 25 個のレコードを書き込むには、 BatchWriteRecordオペレーションを使用します。
レコードに対して行った更新を確認するには、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 オペレーションを使用して、追加した機能のデータがないレコードを上書きできます。
ステップ 3: BatchWriteRecord を使用して複数のレコードを一括で追加する
複数のレコードを追加または上書きするには、BatchWriteRecord オペレーションを使用します。レコードを自動的に期限切れにするには、 を指定しますTtlDuration。
response = sagemaker_featurestore_runtime_client.batch_write_record( Entries=[ { 'FeatureGroupName': feature_group_name, 'Record': [ {'FeatureName':"record-identifier-feature-name", 'ValueAsString':'record_1'}, {'FeatureName':"event-time-feature", 'ValueAsString':"2024-01-01T00:00:00Z"}, {'FeatureName':"new-feature-1", 'ValueAsString':"value-1"}, ], 'TtlDuration': {'Unit': 'Hours', 'Value': 24} }, { 'FeatureGroupName': feature_group_name, 'Record': [ {'FeatureName':"record-identifier-feature-name", 'ValueAsString':'record_2'}, {'FeatureName':"event-time-feature", 'ValueAsString':"2024-01-01T00:00:00Z"}, {'FeatureName':"new-feature-1", 'ValueAsString':"value-2"}, ] } ] ) # Check for failed records. if response['Errors']: for error in response['Errors']: print(f"Error: {error['ErrorCode']} - {error['ErrorMessage']}") # Retry unprocessed entries. unprocessed = response.get('UnprocessedEntries', []) while unprocessed: response = sagemaker_featurestore_runtime_client.batch_write_record(Entries=unprocessed) unprocessed = response.get('UnprocessedEntries', [])
レスポンスには、失敗したレコードErrorsのリストと、再試行できるレコードUnprocessedEntriesのリストが含まれます。
注記
TtlDuration は、レコードの に対して計算されますEventTime。EventTime プラス TtlDurationが過去のものである場合、Amazon SageMaker Feature Store はレコードをオンラインストアに保存しません。