この記事について海外で公開された情報をもとにAIが要約・解説した記事です。原文の翻訳ではありません。正確な内容は記事末尾の出典元をご確認ください。
この記事の要点
  • 最大25件を1回のAPI呼び出しで複数フィーチャーグループに書き込める
  • 保存済みレコードの識別子を列挙できるListRecordsが追加された
  • In-Memory層でもレコードを発見でき、消失リスクを低減する

発表の概要

Amazon SageMaker Feature Storeは、機械学習モデル向けに特徴量(フィーチャー)を保存・共有・管理するためのフルマネージドサービスです。オンライン推論向けの低レイテンシなオンラインストアと、履歴保存や学習データ向けのオフラインストアを備え、バッチとストリーミングの両方の取り込みパターンをサポートしています。今回、このFeature Storeに対して2つの新しいAPI、BatchWriteRecordとListRecordsが追加されました。

1つ目のBatchWriteRecordは、複数レコードをまとめて書き込むためのAPIで、従来のPutRecordをループで呼び出す際のオーバーヘッドを解消します。2つ目のListRecordsは、フィーチャーグループ内のレコード識別子を列挙するAPIで、特にIn-Memoryストレージ層では、識別子を失った場合の復旧手段がなかったことへの対策でもあります。本記事では、各APIの動作とコード例を基に、既存の運用とどう変わるかを整理します。

BatchWriteRecordの特徴

従来のPutRecordは、1回のAPI呼び出しで1つのフィーチャーグループに1レコードだけを書き込む仕様でした。EventTimeに基づく条件付き書き込みにより、オンラインストアでは最新バージョンが維持されますが、スループットを上げるにはN×M回の呼び出しが必要になります。例えば不正検知パイプラインが毎秒10,000レコードを5つのフィーチャーグループに取り込む場合、毎秒50,000回のAPI呼び出しが必要になるという課題がありました。

BatchWriteRecordは、1回のリクエストで最大25エントリを複数のフィーチャーグループに書き込めます。各レコードは独立して成功または失敗し、一部が失敗してもリクエスト全体は失敗しません。また、PutRecordと同じEventTimeベースの順序保証があり、古いレコードが新しいレコードを上書きすることはありません。失敗したレコードはレスポンスで返され、リトライは失敗分だけを行えばよい設計です。

TTLはレコード単位・リクエスト単位・フィーチャーグループ単位の3段階で指定でき、優先順位が定義されています。ただし、リクエスト全体のエントリ数は最大25件で、この上限は複数フィーチャーグループにまたがる場合も総数で適用されます。TargetStoresを指定すると、オンラインストアとオフラインストアのどちらに書き込むかを各エントリで制御できます。

ListRecordsの位置づけ

Feature StoreにはGetRecordやDeleteRecordがありましたが、いずれも正確なレコード識別子を知っている必要がありました。標準層(Standard tier)ではオフラインストアをAmazon Athenaで検索する回避策があったものの、コストと時間がかかります。In-Memory層ではデフォルトでオフラインストアがなく、識別子が失われるとレコードを復元する手段は事実上ありませんでした。

ListRecordsは、ページネーションを使ってフィーチャーグループ内のレコード識別子を列挙します。標準層(Amazon DynamoDBバックエンド)では最新バージョンを対象に、論理削除済みや期限切れのレコードを除外して返します。In-Memory層(Redisバックエンド)ではキーをスキャンし、ソフト削除されたレコードや内部システムキーを除外して識別子を抽出します。このAPIにより、識別子の喪失によるデータ復旧不能のリスクを軽減できます。

既存APIとの比較と注意点

PutRecordとBatchWriteRecordの主な違いは、1回のリクエストで扱えるレコード数と対象フィーチャーグループ数です。記事では、BatchWriteRecordは従来のPutRecordを置き換えるものではなく、高スループットが必要なワークロード向けの新しい選択肢として説明されています。次の表に主な違いをまとめます。

利用にあたっては、BatchWriteRecordにはPutRecordと同様のIAM権限が必要です。具体的には、対象フィーチャーグループのARNに対するsagemaker:BatchWriteRecordとsagemaker:PutRecordの許可が必要になります。また、部分成功APIであるため、失敗したレコードだけを指数バックオフで再送信する設計が推奨されています。TargetStoresでオンラインストアとオフラインストアの書き込み先も制御できます。

一方、記事ではListRecordsのページネーションの詳細や、各APIの制限値(例えば1リクエストあたりの最大バイト数やクォータなど)については明らかにされていません。また、In-Memory層でのスキャンがパフォーマンスに与える影響も、実際の運用で確認する必要があるとみられます。これらの点は、本番環境へ適用する前に検証すべき項目といえるでしょう。

PutRecordとBatchWriteRecordの比較
項目PutRecord(従来)BatchWriteRecord(新API)
1リクエストのレコード数1件最大25件
対象フィーチャーグループ1つのみ複数(1リクエスト内でOK)
部分成功なしあり(失敗したレコードのみ返る)
EventTime順序保証ありPutRecordと同等
原文からの引用
There is no offline store for the In-Memory tier to fall back on, no Amazon Athena query to run, and no API to discover what exists.

In-Memory層にはフォールバックできるオフラインストアがなく、実行できるAmazon Athenaクエリもなく、何が存在するのかを発見できるAPIもありません。

今後の見通し

今回発表されたAPIがどのリージョンで利用可能か、また既存のFeature Storeユーザーへの移行影響は記事では明らかにされていません。今後のアップデートや実運用でのベンチマーク結果が明らかになれば、高スループットな特徴量パイプラインの設計判断がしやすくなるとみられます。特にBatchWriteRecordの「最大25件」という制限がどの程度の性能改善につながるのか、ListRecordsが大規模なフィーチャーグループでどのようなスキャン性能とコストになるのかを確認することが次の評価ポイントになるでしょう。

日本の開発者・IT企業にとっての意味

日本のIT企業にとって、この2つのAPIはML特徴量基盤の運用負荷を下げる実用的な改善となります。特に、PutRecordをループで呼び出す方式を採用していたシステムでは、BatchWriteRecordへの移行でAPI呼び出し回数を最大25分の1に減らせる可能性があります。これにより、ネットワークオーバーヘッドやスロットリングのリスクを抑え、特徴量更新のスループットを向上できます。また、ListRecordsはIn-Memory層で識別子が失われると復旧不能だった問題にメスを入れ、データ主体からの削除要求への対応などコンプライアンス面のリスクも軽減します。SageMaker Feature Storeを本番運用している企業は、既存パイプラインの設計を見直す良い機会になるでしょう。

気になる点

BatchWriteRecordの利用に必要なIAM権限は?
対象フィーチャーグループのARNに対するsagemaker:BatchWriteRecordとsagemaker:PutRecordの権限が必要です。ListRecordsも使う場合はsagemaker:ListRecordsも合わせて許可が必要になります。
ListRecordsはIn-Memory層でも利用できますか?
はい。ListRecordsはStandard層(Amazon DynamoDBバックエンド)とIn-Memory層(Redisバックエンド)の両方に対応しています。In-Memory層ではキーをスキャンしてレコード識別子を抽出するため、識別子を失った場合の復旧手段として利用できます。
BatchWriteRecordはPutRecordの代替になるのでしょうか?
記事では既存のPutRecordを置き換えるとは述べておらず、新APIとして追加されたものです。1リクエストで最大25件を書き込めるため、高スループットが必要な環境ではPutRecordのループ呼び出しを置き換える選択肢になります。ただし、既存コードをすぐに移行する必要はありません。

用語解説

フィーチャーストア
機械学習モデルで使う特徴量を保存・共有・管理するためのデータストア。オンライン推論とオフライン学習の両方を支える。
部分成功
バッチ書き込みで一部のレコードが失敗しても、成功したレコードはそのまま反映される動作。
TTL
Time-to-Liveの略。データの有効期限を指定し、期限が切れたレコードを自動的に破棄する仕組み。
EventTime
各レコードのイベント発生時刻。Feature Storeではこの時刻に基づいて最新バージョンを決定する。

出典

Batch write and discover records in Amazon SageMaker Feature Store

Amazon Web Services / Harshil Shah / 2026年8月29日

https://aws.amazon.com/blogs/machine-learning/batch-write-and-discover-records-in-amazon-sagemaker-feature-store

AI導入も顧問も、お任せください

何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。

AI導入について相談する