Amazon SageMaker Feature Storeに一括書き込みとレコード一覧取得の2つの新APIが追加
要点
-
AWSはAmazon SageMaker Feature Store向けに、新API「BatchWriteRecord」と「ListRecords」の提供を開始した。
-
「BatchWriteRecord」により、複数のフィーチャーグループをまたいで最大25件のレコードを1回のAPI呼び出しで一括書き込みできるようになった。
-
新たな一括書き込み機能は、レコード単位のTTL設定や部分成功セマンティクス、EventTimeに基づく順序保証に対応している。
-
「ListRecords」により、従来は確認手段がなかったインメモリ層を含め、保存済みレコード識別子のページネーション取得が可能になった。
-
大規模な特徴量パイプラインにおける接続オーバーヘッドの削減と、運用時のデータ探索性の向上が図られている。
-
米Amazon Web Services(AWS)は2026年8月28日、機械学習(ML)向けの特徴量管理サービス「Amazon SageMaker Feature Store」において、新APIとなる「BatchWriteRecord」および「ListRecords」の提供を開始したと発表した。
-
今回の機能追加は、高スループットが求められる特徴量パイプラインにおけるデータ取り込み効率の改善と、オンラインストア内に格納されたレコードの探索・一覧取得を可能にすることを目的としたものだという。
従来の運用におけるスループットとデータ探索の課題
Amazon SageMaker Feature Storeは、機械学習モデルで使用する特徴量(モデルの入力となる加工済みデータ)を一元的に保存、共有、管理するためのフルマネージド型リポジトリである。リアルタイム推論に適した低レイテンシーのオンラインストアと、学習用データの保持や履歴管理を行うオフラインストアの双方を備え、ストリーミングおよびバッチによるデータ取り込みをサポートしている。
同社によると、機械学習プラットフォームの運用規模が拡大するにつれて、主に2つの運用上の課題が顕在化していたという。
1つ目は、高スループット環境におけるデータ取り込みのオーバーヘッドである。従来の書き込みAPIである「PutRecord」は、オンラインストアに対して単一レコードを書き込む仕様となっていたため、大量のデータを投入するパイプラインではループ処理によってAPIを連続呼び出しする必要があった。フィーチャーグループ(特徴量を論理的にまとめた単位)やレコードごとに1回ずつの通信が発生することで接続オーバーヘッドが肥大化し、スループットの低下を招いていた。具体例として、5つのフィーチャーグループに対して毎秒10,000レコードを取り込む不正検知パイプラインの場合、特徴量を最新状態に維持するだけで毎秒50,000回ものAPI呼び出しを継続しなければならなかったと説明されている。
2つ目は、インメモリストレージ層におけるレコードの探索性の欠如である。Feature Storeのインメモリ層(Redisベースの高速ストレージ)を利用している場合、オンラインストア内にどのようなレコードが存在しているかを列挙・確認する手段が提供されていなかった。インメモリ層にはオフラインストアのようなフォールバック先が存在せず、Amazon Athenaを用いたクエリ実行も行えないため、システムの不具合やパイプライン障害によってレコード識別子(ID)を紛失した場合、該当レコードが完全に復旧不能になるという構造的な課題を抱えていた。
最大25件の一括書き込みに対応する「BatchWriteRecord」
こうした取り込み時の課題を解消するために導入されたのが「BatchWriteRecord」APIである。
BatchWriteRecordでは、1回のAPI呼び出しによって複数のフィーチャーグループにまたがる最大25件のレコードを一括して書き込むことができる。一部のレコード書き込みが失敗しても全体の処理を継続できる部分成功(partial-success)のセマンティクスを備えているほか、レコード単位での有効期限(TTL: Time To Live。データの保持期間を制御する設定)の指定にも対応している。
さらに、従来のPutRecordと同様に、データに付与されたタイムスタンプである「EventTime」に基づいた書き込み順序の保証も維持されているという。これにより、接続確立に伴うオーバーヘッドを大幅に圧縮し、大量データを扱うパイプラインの処理効率を高めることが可能になるとしている。
インメモリ層のデータも確認できる「ListRecords」
もう1つの新機能である「ListRecords」は、フィーチャーグループ内に存在するレコード識別子を一覧として取得するためのAPIである。
大量のデータを段階的に取得できるようページネーション(ページ送り)に対応しており、標準ストレージ層(Amazon DynamoDBベース)だけでなく、これまでデータ一覧の確認手段が存在しなかったインメモリストレージ層(Redisベース)の両方で動作する。
このAPIの追加により、保存されているレコードの識別子を直接確認できるようになり、万が一パイプラインのトラブルなどでIDの追跡が途切れた場合でも、オンラインストア内のデータを探索・把握することが可能になったと報告されている。
利用のための前提条件と必要なIAM権限
これらの新APIを利用するための要件として、SageMaker AIリソースを作成できる権限を持つAWSアカウントが必要となる。また、Amazon Simple Storage Service(Amazon S3)やAWS Glueへのアクセス権に加え、Feature StoreのデータプレーンAPIを呼び出す権限を付与した実行ロール(IAMロール)が必要であると説明されている。
必要なIAMポリシーの最小構成例としては、対象のフィーチャーグループのリソースARNに対して「sagemaker:BatchWriteRecord」「sagemaker:PutRecord」「sagemaker:ListRecords」の実行を許可するステートメントが提示されている。実際のAPI呼び出しや連携処理は、Python用AWS SDKであるBoto3などを通じて実装できる。