更新特徵檢視中的特徵

如果網路商店使用 Bigtable 線上提供,您可以直接更新特徵檢視區中的特徵值,不必即時更新特徵資料來源。你可以更新現有 ID 的特徵值,或新增實體 ID 和對應的特徵值。在下列情況下使用這項功能:

  • 您想比批次同步處理更快地將功能寫入網路商店,同時將資料更新間隔維持在 100 毫秒以下。

  • 您想擷取功能寫入網路商店時的時間戳記。

Vertex AI 特徵儲存庫不會根據直接寫入特徵檢視區塊例項的特徵資料,更新 BigQuery 中的特徵資料來源。資料同步處理期間,Vertex AI 特徵儲存庫會使用時間戳記最新的特徵值更新特徵檢視畫面。舉例來說,如果您直接在特徵檢視區塊中更新特徵值,隨後又在 BigQuery 來源中更新相同特徵,則 Vertex AI 特徵儲存庫會在下次資料同步時,使用 BigQuery 中最近更新的特徵值更新特徵檢視區塊。

如要為多個特徵檢視區塊使用的特徵欄新增或更新特徵值,您必須分別對每個特徵檢視區塊進行相同更新。

如果線上商店執行個體已設定為「最佳化線上服務」(已淘汰),您就無法直接將特徵寫入該線上商店的特徵檢視畫面。

請注意,這項功能無法在特徵檢視畫面中新增或移除特徵資料欄。此外,您也無法刪除現有的特徵值或實體 ID。

事前準備

驗證 Gemini Enterprise Agent Platform,除非您已完成驗證。

如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

    安裝 Google Cloud CLI。

    如果您使用外部識別資訊提供者 (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"
    }
  ]
}

後續步驟