串流匯入

串流匯入功能可讓您即時更新特徵值。如果優先考量是取得最新可用資料以供線上放送,這個方法就非常實用。舉例來說,您可以匯入串流事件資料,Vertex AI 特徵儲存庫 (舊版) 會在幾秒內提供該資料,用於線上服務情境。

如要回填資料或以批次方式計算特徵值,請使用批次匯入。相較於串流匯入要求,批次匯入要求可處理較大的酬載,但完成時間較長。

如要瞭解可匯入的最舊特徵值時間戳記,請參閱「配額與限制」中的「Vertex AI 特徵儲存庫 (舊版)」。如果時間戳記指出未來日期或時間,您就無法匯入特徵值。

用途範例

線上零售機構可能會根據使用者目前的活動,提供個人化購物體驗。使用者瀏覽網站時,您可以將他們的活動擷取到特徵商店,然後在不久後提供所有資訊,用於線上預測。這項即時匯入和放送功能可協助你在購物工作階段期間,向顧客顯示實用且相關的推薦內容。

線上儲存節點用量

將特徵值寫入線上商店時,會使用特徵儲存庫的 CPU 資源 (線上儲存節點)。監控 CPU 使用率,確認需求量未超過供應量,以免發生放送錯誤。建議使用率維持在 70% 以下,以免發生這類錯誤。如果經常超過該值,可以更新特徵商店,增加節點數量或使用自動調整功能。詳情請參閱「管理特徵商店」。

串流匯入

將值寫入特定特徵。特徵值必須包含在匯入要求中。您無法直接從資料來源串流資料。

如果您要寫入最近建立的功能,請稍候幾分鐘再執行,因為新功能可能尚未傳播。否則可能會看到 resource not found 錯誤。

每次寫入作業只能匯入一個實體的特徵值。針對任何特定專案和區域,您最多可以同時為十種不同實體類型中的多個實體寫入特徵值。這項限制包括將串流匯入要求傳送至指定專案和區域中的所有特徵商店。如果超過這個限制,Vertex AI 特徵儲存庫 (舊版) 可能無法將所有資料寫入離線儲存空間。如果發生這種情況,Vertex AI 特徵儲存庫 (舊版) 會在 記錄檔總管中記錄錯誤。詳情請參閱「監控串流匯入的離線儲存空間寫入錯誤」。

REST

如要匯入現有特徵的特徵值,請使用 featurestores.entityTypes.writeFeatureValues 方法傳送 POST 要求。如果來源資料欄名稱和目的地特徵 ID 不同,請加入 sourceField 參數。請注意,featurestores.entityTypes.writeFeatureValues 一次只能匯入一個實體的特徵值。

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

  • LOCATION:建立特徵商店的區域。例如:us-central1
  • PROJECT:您的專案 ID
  • FEATURESTORE_ID:特徵商店的 ID。
  • ENTITY_TYPE_ID:實體類型 ID。
  • FEATURE_ID:特徵商店中現有特徵的 ID,用於寫入值。
  • VALUE_TYPE:特徵的值類型
  • VALUE:功能的值。
  • TIME_STAMP (選用):生成特徵的時間。時間戳記必須採用 RFC3339 世界標準時間格式。

HTTP 方法和網址:

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

如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件

from google.cloud import aiplatform


def write_feature_values_sample(
    project: str, location: str, entity_type_id: str, featurestore_id: str
):

    aiplatform.init(project=project, location=location)

    my_entity_type = aiplatform.featurestore.EntityType(
        entity_type_name=entity_type_id, featurestore_id=featurestore_id
    )

    my_data = {
        "movie_01": {
            "title": "The Shawshank Redemption",
            "average_rating": 4.7,
            "genre": "Drama",
        },
    }

    my_entity_type.write_feature_values(instances=my_data)

其他語言

您可以安裝及使用下列 Vertex AI 用戶端程式庫,呼叫 Vertex AI API。Cloud 用戶端程式庫會使用每種支援語言的自然慣例與樣式,提供最佳開發人員體驗。

後續步驟