如果您的网店使用 Bigtable 在线传送,您可以直接在特征视图中更新特征值,而无需实时更新特征数据源。您可以更新现有 ID 的特征值,也可以添加新的实体 ID 以及相应的特征值。在以下场景中使用此功能:
您希望以比批量同步更快的速度将特征写入网店,同时将数据新鲜度保持在 100 毫秒或更短的时间内。
您希望检索特征写入网店的时间戳。
Vertex AI Feature Store 不会根据直接写入特征视图实例的特征数据来更新 BigQuery 中的特征数据源。 在数据同步期间,Vertex AI Feature Store 会使用具有最新时间戳的特征值更新特征视图。例如,如果您直接在特征视图中更新特征值,然后更新 BigQuery 来源中的同一特征,则 Vertex AI Feature Store 会在下次数据同步期间使用 BigQuery 中最新更新的特征值更新特征视图。
如果您要为多个特征视图中使用的特征列添加或更新特征值,则必须分别对每个特征视图进行相同的更新。
如果在线存储区实例配置为优化在线传送 (已废弃),则无法直接将特征写入该在线存储区中的特征视图。
请注意,此功能不允许您在特征视图中添加或移除特征列。此外,您无法删除现有特征值或实体 ID。
准备工作
向 Gemini Enterprise Agent Platform 进行身份验证 ,除非您已完成此操作。
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的 凭证。
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 身份验证文档中的使用 REST 时进行身份验证 。 Google Cloud
直接在特征视图中更新特征
使用以下示例将特征写入特征视图中的实体。
REST
如需将特征值直接写入
FeatureView
实例,请使用 POST 请求,方法是使用
featureViews.directWrite
方法。
在使用任何请求数据之前,请先进行以下替换:
- 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"
}
]
}