オンライン ストアで Bigtable オンライン サービングを使用している場合は、特徴データソースをリアルタイムで更新せずに、特徴ビューの特徴値を直接更新できます。既存の ID の特徴値を更新するか、対応する特徴値とともに新しいエンティティ ID を追加できます。この機能は、次のようなシナリオで使用します。
バッチ同期よりも高速にオンライン ストアに特徴を書き込み、データの鮮度を 100 ミリ秒以下に維持したい。
特徴量がオンライン ストアに書き込まれたときのタイムスタンプを取得する。
Vertex AI Feature Store は、特徴ビュー インスタンスに直接書き込まれた特徴データに基づいて、BigQuery の特徴データソースを更新しません。データ同期中に、Vertex AI Feature Store は最新のタイムスタンプを持つ特徴値で特徴ビューを更新します。たとえば、特徴ビューで特徴値を直接更新し、その後 BigQuery ソースで同じ特徴を更新すると、Vertex AI Feature Store は次のデータ同期時に、BigQuery から最新の更新された特徴値で特徴ビューを更新します。
複数の特徴ビューで使用されている特徴列の特徴値を追加または更新する場合は、各特徴ビューを個別に更新する必要があります。
オンライン ストア インスタンスが最適化されたオンライン サービング用に構成されている場合、そのオンライン ストア内の特徴ビューに特徴を直接書き込むことはできません。
この機能では、特徴ビューで特徴列を追加または削除することはできません。また、既存の特徴値やエンティティ ID を削除することはできません。
始める前に
まだ行っていない場合は、Vertex AI に対する認証を行います。
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
特徴ビューで特徴を直接更新する
次のサンプルを使用して、特徴ビュー内のエンティティに特徴を書き込みます。
REST
特徴値を FeatureView
インスタンスに直接書き込むには、featureViews.directWrite
メソッドを使用して POST
リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION_ID: 特徴を書き込む特徴ビューのリージョン(
us-central1
など)。 - PROJECT_ID: プロジェクト ID。
- FEATUREONLINESTORE_NAME: 特徴ビューを含むオンライン ストア インスタンスの名前。
- FEATUREVIEW_NAME: 特徴を書き込む新しい特徴ビュー インスタンスの名前。
- ENTITY_ID: 特徴値を追加するエンティティ ID。
- FEATURE_1、FEATURE_2: 追加する特徴。
- FEATURE_1_VALUE と FEATURE_2_VALUE: それぞれ FEATURE_1 と FEATURE_2 の特徴値。
HTTP メソッドと URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:directWrite
リクエストの本文(JSON):
[ { "feature_view": "LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME", "data_key_and_feature_values": { "data_key": { "key": "ENTITY_ID" }, "features": [{ "name": "FEATURE_1", "value_and_timestamp": { "value": { "string_value": "FEATURE_1_VALUE" } } }, { "name": "FEATURE_2", "value_and_timestamp": { "value": { "string_value": "FEATURE_2_VALUE" } } } ] } } ]
リクエストを送信するには、次のいずれかのオプションを選択します。
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_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:directWrite"
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_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:directWrite" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "status": {}, "writeResponses": [ { "dataKey": { "key": "ENTITY_ID" }, "onlineStoreWriteTime": "2025-04-01T01:30:09.525061Z" } ] }
次のステップ
手動でデータ同期を開始する方法を学ぶ。
特徴ビューの更新方法を確認する。