如果線上商店使用 Bigtable 線上服務,您可以直接更新特徵檢視區中的特徵值,不必即時更新特徵資料來源。您可以更新現有 ID 的特徵值,或新增實體 ID 和對應的特徵值。在下列情況下使用這項功能:
您希望將特徵寫入線上商店的速度比批次同步處理更快,同時將資料更新頻率維持在 100 毫秒以下。
您想擷取功能寫入線上商店時的時間戳記。
Vertex AI 特徵儲存庫不會根據直接寫入特徵檢視區塊例項的特徵資料,更新 BigQuery 中的特徵資料來源。資料同步處理期間,Vertex AI 特徵儲存庫會更新特徵檢視區塊, 並使用時間戳記最新的特徵值。舉例來說,如果您直接在特徵檢視區塊中更新特徵值,隨後又在 BigQuery 來源中更新相同特徵,則 Vertex AI 特徵儲存庫會在下次資料同步時,使用 BigQuery 中最近更新的特徵值更新特徵檢視區塊。
如要為多個特徵檢視畫面中使用的特徵欄新增或更新特徵值,必須分別對每個特徵檢視畫面進行相同更新。
如果線上商店執行個體已設定為「最佳化線上服務」,您就無法直接將特徵寫入該線上商店的特徵檢視畫面。
請注意,這項功能無法在特徵檢視畫面中新增或移除特徵資料欄。此外,您也無法刪除現有的特徵值或實體 ID。
事前準備
驗證 Vertex AI,除非您已完成這項操作。
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 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 方法和網址:
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"
}
]
}