更新特徵檢視中的特徵

如果線上商店使用 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 驗證說明文件中的「Authenticate for using REST」。

直接在特徵檢視中更新特徵

使用下列範例,將特徵寫入特徵檢視區塊中的實體。

REST

如要將特徵值直接寫入 FeatureView 執行個體,請使用 featureViews.directWrite 方法傳送 POST 要求。

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:要寫入特徵的特徵檢視區塊區域,例如 us-central1
  • PROJECT_ID:您的專案 ID。
  • FEATUREONLINESTORE_NAME:包含特徵檢視區塊的線上商店執行個體名稱。
  • FEATUREVIEW_NAME:要寫入特徵的新特徵檢視區塊執行個體名稱。
  • ENTITY_ID:要新增特徵值的實體 ID。
  • FEATURE_1FEATURE_2:您要新增的功能。
  • FEATURE_1_VALUEFEATURE_2_VALUE:分別是 FEATURE_1FEATURE_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"
    }
  ]
}

後續步驟