ストリーミング インポートにより、特徴値をリアルタイムで更新できます。この方法は、オンライン サービングで最新の利用可能なデータを優先する場合に役立ちます。たとえば、ストリーミング イベントデータをインポートでき、数秒以内に Vertex AI Feature Store(レガシー)によってインポートしたデータをオンライン サービングのシナリオで使用できるようにします。
データをバックフィルする必要がある場合、または特徴値をバッチで計算する場合は、バッチ インポートを使用します。ストリーミング インポート リクエストと比較すると、バッチ インポート リクエストはより大きなペイロードを処理できますが、完了までに時間を要します。
インポートできる最も古い特徴値のタイムスタンプについては、割り当てと上限の Vertex AI Feature Store(従来版)をご覧ください。タイムスタンプが将来の日時を示している特徴値はインポートできません。
使用例
オンライン小売店組織は、ユーザーの現在のアクティビティを使用して、パーソナライズされたショッピング エクスペリエンスを提供できます。ユーザーがウェブサイト内を移動する際のアクティビティを featurestore にキャプチャし、その後直ちにキャプチャしたすべての情報をオンライン予測に提供できます。このリアルタイムのインポートとサービングにより、ショッピング セッション中に有用で関連性の高いレコメンデーションをお客様に示すことができます。
オンライン ストレージ ノードの使用量
オンライン ストアに特徴値を書き込むと、featurestore の CPU リソース(オンライン ストレージ ノード)が使用されます。CPU 使用率をモニタリングして、需要が供給を超えた状態(サービスエラーが発生する原因となる可能性があります)になっていないことを確認します。こうしたエラーを回避するため、使用率は 70% 以下にすることをおすすめします。この値を定期的に超える場合は、featurestore を更新してノード数を増やすか、自動スケーリングを使用できます。詳細については、featurestore の管理をご覧ください。
ストリーミング インポート
特定の特徴に値を書き込みます。特徴値はインポート リクエストの一部として含める必要があります。データソースから直接データをストリーミングすることはできません。
最近作成された特徴に書き込む場合は、新しい特徴がまだ伝播されていない可能性があるため、数分待ってから書き込んでください。そのようにしないと、resource not found
エラーが表示される場合があります。
1 回の書き込みごとに 1 つのエンティティに対してのみ特徴値をインポートできます。特定のプロジェクトとリージョンの場合、最大 10 種類のエンティティ タイプ内で、複数のエンティティの特徴値を同時に書き込むことができます。この上限には、特定のプロジェクトとリージョン内のすべての featurestore へのストリーミング インポート リクエストが含まれます。この上限を超えると、Vertex AI Feature Store(レガシー)がすべてのデータをオフライン ストアに書き込めない可能性があります。この場合、Vertex AI Feature Store(従来版)はログ エクスプローラにエラーを記録します。詳細については、ストリーミング インポートのオフライン ストレージ書き込みエラーをモニタリングするをご覧ください。
REST
既存の特徴の特徴値をインポートするには、featurestores.entityTypes.writeFeatureValues メソッドを使用して POST リクエストを送信します。ソースデータ列の名前と宛先の特徴 ID が異なる場合は、sourceField
パラメータを配置します。featurestores.entityTypes.writeFeatureValues を使用すると、一度に 1 つのエンティティの特徴値のみをインポートできます。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: featurestore が作成されるリージョン。例:
us-central1
- PROJECT: 実際のプロジェクト ID。
- FEATURESTORE_ID: featurestore の ID。
- ENTITY_TYPE_ID: エンティティ タイプの ID。
- FEATURE_ID: 値を書き出す既存の特徴の ID。
- VALUE_TYPE: 特徴の値タイプ。
- VALUE: 特徴の値。
- TIME_STAMP(省略可): 特徴が生成された時刻。タイムスタンプは RFC3339 UTC 形式にする必要があります。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues
リクエストの本文(JSON):
{ "payloads": [ { "entityId": "ENTITY_ID", "featureValues": { "FEATURE_ID": { "VALUE_TYPE": VALUE, "metadata": {"generate_time": "TIME_STAMP"} } } } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
その他の言語
次の Vertex AI クライアント ライブラリを使用してインストールすると、Vertex AI API を呼び出すことができます。Cloud クライアント ライブラリによって、サポートされている各言語の自然な規則やスタイルが使用され、デベロッパーに快適な利用環境が提供されます。
次のステップ
- ストリーミング インポートのオフライン ストレージ書き込みエラーをモニタリングする方法を学習する。
- オンライン サービングまたはバッチ サービングで特徴を処理する方法を学習する。
- Vertex AI Feature Store(従来版)に関する一般的な問題のトラブルシューティングを行う。