Vertex AI Feature Store te permite ofrecer online valores de características en tiempo real desde una vista de características de un almacén online. Por ejemplo, puede servir valores de características de una vista de características para predicciones online. Una vista de características debe sincronizarse al menos una vez para poder servir online las características de esa vista.
Si la vista de características se define en función de los grupos de características y las características, Vertex AI Feature Store obtiene los valores de características más recientes correspondientes a un ID de entidad específico. Si hay varios registros con el mismo valor en la columna ID, Vertex AI Feature Store obtiene los valores de las funciones no nulos más recientes, en función de la columna feature_timestamp
.
Si la vista de características está asociada directamente a una fuente de datos de BigQuery sin asociar grupos de características ni características, Vertex AI Feature Store obtiene todos los valores de las características de la fuente de datos. En este caso, cada fila de la fuente de datos debe contener un ID único.
En función del tipo de publicación online configurado para tu tienda online, puedes publicar los valores de las funciones de una de las siguientes formas:
Obtener valores de características mediante la entrega online de Bigtable: elige esta opción solo si la tienda online está configurada para la entrega online de Bigtable.
Obtener los valores de las funciones mediante el servicio online optimizado con un endpoint público: elige esta opción solo si la tienda online está configurada para el servicio online optimizado desde un endpoint público.
Obtener valores de características mediante el servicio online optimizado con un endpoint de Private Service Connect: elige esta opción solo si la tienda online está configurada para el servicio online optimizado desde un endpoint de servicio dedicado a través de Private Service Connect.
Antes de empezar
Autentícate en Vertex AI, a menos que ya lo hayas hecho.
Select the tab for how you plan to use the samples on this page:
Python
Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Obtener valores de características mediante el servicio online de Bigtable
Puedes usar el servicio online de Bigtable para hacer lo siguiente:
Obtener valores de características especificando un solo ID de entidad
Obtener valores de características de un conjunto de entidades (vista previa)
Obtener los valores de las funciones de una sola entidad
Si su vista de características solo tiene una columna de ID de entidad, puede ofrecer características especificando el valor contenido en esa columna. Sin embargo, si la vista de la función tiene varias columnas de ID de entidad, puede localizar un registro de función especificando los valores de esas columnas para constituir el ID de entidad que es único para el registro de función.
Obtener valores de características de una vista de características con una sola columna de ID de entidad
Usa los siguientes ejemplos para obtener los valores de las características de un ID de entidad específico, donde la vista de características solo tiene una columna de ID de entidad.
REST
Para obtener todos los valores de las funciones más recientes de un ID de entidad específico de una instancia de FeatureView
, envía una solicitud POST
mediante el método featureViews.fetchFeatureValues.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
. - PROJECT_ID: tu ID de proyecto.
- FEATUREONLINESTORE_NAME: nombre de la tienda online que contiene la vista de la función.
- FEATUREVIEW_NAME: nombre de la vista de características de la que quiere obtener valores de características.
- ENTITY_ID: valor de la columna ID del registro de la función del que quiere obtener los valores más recientes.
- FORMAT: opcional. El formato en el que quieres obtener los valores de la función.
Se admiten los siguientes formatos:
KEY_VALUE
PROTO_STRUCT
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues
Cuerpo JSON de la solicitud:
{ data_key: { key: "ENTITY_ID" }, data_format: "FORMAT" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
key_values { features { value { int64_value: 258348 } name: "feature_0" } features { value { double_value: 0.96300036744534068 } name: "feature_1" } features { value { double_value: 0.42787383695351083 } name: "feature_2" } features { value { double_value: 0.12219888824743128 } name: "feature_3" } features { value { double_value: 0.037523154697944622 } name: "feature_4" } features { value { double_value: 0.1766952509448767 } name: "feature_5" } }
Python
.Utilice el siguiente ejemplo para obtener valores de características basados en un ID de entidad específico mediante el servicio online de Bigtable.
from google.cloud import aiplatform
from vertexai.resources.preview.feature_store import FeatureOnlineStore, FeatureView
aiplatform.init(project="PROJECT_ID", location="LOCATION_ID")
fos = FeatureOnlineStore("FEATUREONLINESTORE_NAME")
fv = FeatureView("FEATUREVIEW_NAME", feature_online_store_id=fos.name)
fv.read("ENTITY_ID")
Haz los cambios siguientes:
LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
.PROJECT_ID: tu ID de proyecto.
FEATUREONLINESTORE_NAME: nombre de la tienda online que contiene la vista de la función.
FEATUREVIEW_NAME: nombre de la vista de características de la que quiere obtener valores de características.
ENTITY_ID: valor de la columna de ID para la que quiere publicar los valores de función más recientes.
FORMAT: opcional. El formato en el que quieres obtener los valores de la función. Entre los formatos admitidos se incluyen los formatos de pares JSON
KEY_VALUE
y protoPROTO_STRUCT
.
Obtener valores de características de una vista de características con varias columnas de ID de entidad
Usa los siguientes ejemplos para obtener los valores de las características de un ID de entidad específico, donde la vista de características tiene varias columnas de ID de entidad.
REST
Para obtener todos los valores de las funciones más recientes de un ID de entidad específico de una instancia de FeatureView
, envía una solicitud POST
mediante el método featureViews.fetchFeatureValues.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
. - PROJECT_ID: tu ID de proyecto.
- FEATUREONLINESTORE_NAME: nombre de la tienda online que contiene la vista de la función.
- FEATUREVIEW_NAME: nombre de la vista de características de la que quiere obtener valores de características.
- ENTITY_ID_PART_1, ENTITY_ID_PART_2 y ENTITY_ID_PART_3: las partes del ID de entidad de las columnas de ID de entidad configuradas para la vista de la función. Estas partes constituyen el ID de entidad único del registro de la función.
- FORMAT: opcional. El formato en el que quieres obtener los valores de la función.
Se admiten los siguientes formatos:
KEY_VALUE
PROTO_STRUCT
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues
Cuerpo JSON de la solicitud:
{ data_key: { composite_key: { parts: ["ENTITY_ID_PART_1", "ENTITY_ID_PART_2", "ENTITY_ID_PART_3"] } }, data_format: "FORMAT" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
key_values { features { value { int64_value: 258348 } name: "feature_0" } features { value { double_value: 0.96300036744534068 } name: "feature_1" } features { value { double_value: 0.42787383695351083 } name: "feature_2" } features { value { double_value: 0.12219888824743128 } name: "feature_3" } features { value { double_value: 0.037523154697944622 } name: "feature_4" } features { value { double_value: 0.1766952509448767 } name: "feature_5" } }
Python
.Utilice el siguiente ejemplo para obtener valores de características basados en un ID de entidad específico mediante el servicio online de Bigtable.
from google.cloud import aiplatform
from vertexai.resources.preview.feature_store import FeatureOnlineStore, FeatureView
aiplatform.init(project="PROJECT_ID", location="LOCATION_ID")
fos = FeatureOnlineStore("FEATUREONLINESTORE_NAME")
fv = FeatureView("FEATUREVIEW_NAME", feature_online_store_id=fos.name)
fv.read(["ENTITY_ID_PART_1", "ENTITY_ID_PART_2", "ENTITY_ID_PART_3"])
Haz los cambios siguientes:
LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
.PROJECT_ID: tu ID de proyecto.
FEATUREONLINESTORE_NAME: nombre de la tienda online que contiene la vista de la función.
FEATUREVIEW_NAME: nombre de la vista de características de la que quiere obtener valores de características.
ENTITY_ID_PART_1, ENTITY_ID_PART_2 y ENTITY_ID_PART_3: las partes del ID de entidad de las columnas de ID de entidad configuradas para la vista de la función. Estas partes constituyen el ID de entidad único del registro de la función.
FORMAT: opcional. El formato en el que quieres obtener los valores de la función. Entre los formatos admitidos se incluyen los formatos de pares JSON
KEY_VALUE
y protoPROTO_STRUCT
.
Obtener valores de características de un conjunto de entidades
Utilice el siguiente ejemplo para obtener valores de características especificando un conjunto de IDs de varias columnas de ID de entidad mediante el servicio online de Bigtable.
REST
Para obtener todos los valores de las funciones más recientes de un ID de entidad específico de una instancia de FeatureView
, envía una solicitud POST
mediante el método featureViews.streamingFetchFeatureValues.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
. - PROJECT_ID: tu ID de proyecto.
- FEATUREONLINESTORE_NAME: nombre de la tienda online que contiene la vista de la función.
- FEATUREVIEW_NAME: nombre de la vista de características de la que quiere obtener valores de características.
- ENTITY_ID_1, ENTITY_ID_2, ENTITY_ID_3 y ENTITY_ID_4: Conjunto de valores de las columnas de ID de los registros de características de los que quieras proporcionar los valores de características más recientes. Ten en cuenta que agrupar los IDs de entidad como varias listas anidadas en una solicitud puede ayudar a reducir la latencia, ya que Vertex AI Feature Store realiza una operación de lectura independiente para cada lista anidada de IDs.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues
Cuerpo JSON de la solicitud:
[ { data_keys: [{key: "ENTITY_ID_1"}, {key: "ENTITY_ID_2"}], feature_view: "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME" }, { data_keys: [{key: "ENTITY_ID_3"}, {key: "ENTITY_ID_4"}], feature_view: "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME" } ]
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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:streamingFetchFeatureValues"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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:streamingFetchFeatureValues" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
[data { key_values { features { name: "movies" value { string_value: "movie_04" } } features { name: "feature_timestamp" value { int64_value: 1631694494000000 } } } data_key { key: "eve" } } , data { key_values { features { name: "movies" value { string_value: "movie_03" } } features { name: "feature_timestamp" value { int64_value: 1631612115000000 } } } data_key { key: "alice" } } data { key_values { features { name: "movies" value { string_value: "movie_02" } } features { name: "feature_timestamp" value { int64_value: 1631694494000000 } } } data_key { key: "bob" } } ]
Python
.Utilice el siguiente ejemplo para obtener valores de características de varias columnas de ID de entidad mediante el servicio online de Bigtable.
from google.cloud.aiplatform_v1beta1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1beta1.types import feature_online_store_service as feature_online_store_service_pb2
data_client = FeatureOnlineStoreServiceClient(
client_options={"api_endpoint": f"LOCATION_ID-aiplatform.googleapis.com"}
)
feature_view = "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
keys_list=[
["ENTITY_ID_1","ENTITY_ID_2"],
["ENTITY_ID_3","ENTITY_ID_4"]
]
requests = []
for keys in keys_list:
requests.append(
feature_online_store_service_pb2.StreamingFetchFeatureValuesRequest(
feature_view=feature_view,
data_keys=[
feature_online_store_service_pb2.FeatureViewDataKey(key=key)
for key in keys
]
)
)
responses = data_client.streaming_fetch_feature_values(
requests=iter(requests)
)
responses = [response for response in responses]
Haz los cambios siguientes:
LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
.PROJECT_ID: tu ID de proyecto.
FEATUREONLINESTORE_NAME: nombre de la tienda online que contiene la vista de la función.
FEATUREVIEW_NAME: nombre de la vista de características de la que quiere obtener valores de características.
ENTITY_ID_1, ENTITY_ID_2, ENTITY_ID_3 y ENTITY_ID_4: los IDs de las entidades de las que quiere obtener los valores de las funciones más recientes. Ten en cuenta que agrupar los IDs de entidad en varias listas anidadas en una solicitud puede ayudar a reducir la latencia, ya que Vertex AI Feature Store realiza una operación de lectura independiente para cada lista anidada de IDs.
Obtener valores de características mediante la entrega online optimizada desde un endpoint público
Si ha configurado su instancia de tienda online para que proporcione valores de características mediante el servicio online optimizado desde un endpoint público, debe seguir estos pasos para obtener los valores de características de una vista de características de la tienda online:
Recupera el nombre de dominio del endpoint público de la instancia de
FeatureOnlineStore
.Obtener valores de funciones de un ID de entidad mediante el nombre de dominio del endpoint público.
Recuperar el nombre de dominio del endpoint público de la tienda online
Cuando creas y configuras una instancia de tienda online para el servicio online optimizado con un endpoint público, Vertex AI Feature Store genera el nombre de dominio del endpoint público de la tienda online. Antes de poder empezar a publicar valores de características de una vista de características en la tienda online, debe obtener el nombre de dominio del endpoint público de los detalles de la tienda online.
Usa el siguiente ejemplo para obtener los detalles de una instancia de tienda online.
REST
Para obtener los detalles de un recurso FeatureOnlineStore
de tu proyecto, envía una solicitud GET
mediante el método featureOnlineStores.get
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
. - PROJECT_ID: tu ID de proyecto.
- FEATUREONLINESTORE_NAME: nombre de la instancia de la tienda online.
Método HTTP y URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1", "createTime": "2023-09-06T23:25:04.256314Z", "updateTime": "2023-09-06T23:25:04.256314Z", "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=", "state": "STABLE", "dedicatedServingEndpoint": { "publicEndpointDomainName": "PUBLIC_ENDPOINT_DOMAIN_NAME" }, "optimized": {} }
Necesitarás el PUBLIC_ENDPOINT_DOMAIN_NAME de la respuesta para obtener los valores de las funciones en el siguiente paso.
Obtener valores de funciones de un ID de entidad
Después de obtener el nombre de dominio del endpoint público de la instancia de la tienda online, usa el siguiente ejemplo para obtener los valores de las funciones de un ID de entidad específico mediante el servicio online optimizado.
REST
Para obtener todos los valores de las funciones más recientes de un ID de entidad específico de una instancia de FeatureView
, envía una solicitud POST
mediante el método featureViews.fetchFeatureValues
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PUBLIC_ENDPOINT_DOMAIN_NAME: nombre de dominio del endpoint público de la instancia de la tienda online que has obtenido con el método
featureOnlineStores.get
. - LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
. - PROJECT_ID: tu ID de proyecto.
- FEATUREONLINESTORE_NAME: nombre de la tienda online que contiene la vista de la función.
- FEATUREVIEW_NAME: nombre de la vista de características de la que quiere obtener valores de características.
- ENTITY_ID: valor de la columna ID del registro de la función del que quiere obtener los valores más recientes.
- FORMAT: opcional. Es el formato que se usa para obtener los valores de la función.
Se admiten los siguientes formatos:
KEY_VALUE
PROTO_STRUCT
Método HTTP y URL:
POST https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues
Cuerpo JSON de la solicitud:
{ data_key: { key: "ENTITY_ID" }, data_format: "FORMAT" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
key_values { features { value { int64_value: 258348 } name: "feature_0" } features { value { double_value: 0.96300036744534068 } name: "feature_1" } features { value { double_value: 0.42787383695351083 } name: "feature_2" } features { value { double_value: 0.12219888824743128 } name: "feature_3" } features { value { double_value: 0.037523154697944622 } name: "feature_4" } features { value { double_value: 0.1766952509448767 } name: "feature_5" } }
Python
Usa el siguiente ejemplo para obtener valores de características basados en un ID de entidad específico mediante el servicio online optimizado.
from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.types import feature_online_store_service as feature_online_store_service_pb2
data_client = FeatureOnlineStoreServiceClient(
client_options={"api_endpoint": f"PUBLIC_ENDPOINT_DOMAIN_NAME"}
)
data_client.fetch_feature_values(
request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
data_key=feature_online_store_service_pb2.FeatureViewDataKey(key=f"ENTITY_ID"),
data_format=feature_online_store_service_pb2.FeatureViewDataFormat.FORMAT,
)
)
Haz los cambios siguientes:
PUBLIC_ENDPOINT_DOMAIN_NAME: nombre de dominio del endpoint público de la instancia de la tienda online que has obtenido con el método
featureOnlineStores.get
.LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
.PROJECT_ID: tu ID de proyecto.
FEATUREONLINESTORE_NAME: nombre de la tienda online que contiene la vista de la función.
FEATUREVIEW_NAME: nombre de la vista de características de la que quiere obtener valores de características.
ENTITY_ID: valor de la columna ID del registro de la función del que quiere obtener los valores más recientes.
FORMAT: opcional. El formato en el que quieres obtener los valores de la función. Entre los formatos admitidos se incluyen los formatos de pares JSON
KEY_VALUE
y protoPROTO_STRUCT
.
Obtener valores de características mediante el servicio online optimizado desde un endpoint de Private Service Connect
Si ha configurado su instancia de tienda online para que proporcione valores de características mediante la opción de servicio online optimizado desde un punto final de Private Service Connect, debe seguir estos pasos para obtener valores de características de una vista de características de la tienda online:
Recupera la configuración de Private Service Connect de la instancia
FeatureOnlineStore
.Añade un endpoint de Private Service Connect a tu configuración de red.
Conéctate al endpoint de Private Service Connect a través de gRPC.
Recuperar la cadena de adjunto de servicio de la tienda online
Cuando creas y configuras una instancia de tienda online para el servicio online optimizado con un endpoint de Private Service Connect, Vertex AI Feature Store genera una cadena de vinculación de servicio que puedes usar para configurar el endpoint de Private Service Connect. Puedes obtener la cadena de adjunto de servicio de los detalles de la tienda online.
Usa el siguiente ejemplo para obtener los detalles de una instancia de tienda online.
REST
Para obtener los detalles de un recurso FeatureOnlineStore
de tu proyecto, envía una solicitud GET
mediante el método featureOnlineStores.get
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
. - PROJECT_ID: tu ID de proyecto.
- FEATUREONLINESTORE_NAME: nombre de la instancia de la tienda online.
Método HTTP y URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1", "createTime": "2023-09-06T23:25:04.256314Z", "updateTime": "2023-09-06T23:25:04.256314Z", "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=", "state": "STABLE", "dedicatedServingEndpoint": { "privateServiceConnectConfig": { "enablePrivateServiceConnect": "true", "projectAllowlist": [ "PROJECT_NAME" ] }, serviceAttachment: "SERVICE_ATTACHMENT_STRING" }, "optimized": {} }
Necesitarás el SERVICE_ATTACHMENT_STRING de la respuesta para obtener los valores de las características en el siguiente paso.
Añadir un endpoint para Private Service Connect
Para añadir un endpoint de Private Service Connect para el servicio online optimizado a la configuración de tu red, sigue estos pasos:
En la Google Cloud consola, selecciona el proyecto que contiene la instancia de la tienda online.
Crea un punto final para Private Service Connect especificando el SERVICE_ATTACHMENT_STRING como Servicio de destino. Para obtener información sobre cómo crear un endpoint para Private Service Connect, consulta Crear un endpoint.
Una vez que hayas creado el punto final, aparecerá en la pestaña Puntos finales conectados de la página Private Service Connect. La dirección IP del endpoint aparece en la columna Direcciones IP.
Ir a la pestaña Puntos finales conectados
Deberás usar esta dirección IP para conectarte al endpoint de tu instancia de tienda online al endpoint de Private Service Connect a través de gRPC en el siguiente paso.
Conectarse al endpoint de Private Service Connect a través de gRPC
Usa el siguiente fragmento de código para conectarte al endpoint de Private Service Connect creado para tu tienda online a través de gRPC.
Python
from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.services.feature_online_store_service.transports.grpc import FeatureOnlineStoreServiceGrpcTransport
import grpc
data_client = FeatureOnlineStoreServiceClient(
transport = FeatureOnlineStoreServiceGrpcTransport(
# Add the IP address of the Endpoint you just created.
channel = grpc.insecure_channel("ENDPOINT_IP:10002")
)
)
Haz los cambios siguientes:
- ENDPOINT_IP: la dirección IP del endpoint de la columna Direcciones IP de la página Private Service Connect.
Obtener valores de funciones de un ID de entidad
Una vez que te hayas conectado al endpoint de Private Service Connect a través de gRPC, usa el siguiente ejemplo para obtener los valores de las funciones de un ID de entidad específico mediante el servicio online optimizado.
Python
data_client.fetch_feature_values(
request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
data_key=feature_online_store_service_pb2.FeatureViewDataKey(ENTITY_ID),
data_format=feature_online_store_service_pb2.FeatureViewDataFormat.PROTO_STRUCT,
)
)
Haz los cambios siguientes:
LOCATION_ID: región en la que se encuentra la tienda online, como
us-central1
.PROJECT_ID: tu ID de proyecto.
FEATUREONLINESTORE_NAME: nombre de la tienda online que contiene la vista de la función.
FEATUREVIEW_NAME: nombre de la vista de características de la que quiere obtener valores de características.
ENTITY_ID: valor de la columna ID del registro de la función del que quiere obtener los valores más recientes.
FORMAT: opcional. El formato en el que quieres obtener los valores de la función. Se admiten formatos como el par clave-valor JSON y el formato proto
Struct
. Ten en cuenta que el formato protoStruct
no admite el tipo de valor de función de bytes. Si quieres obtener valores de características con formato de bytes, usa JSON como formato de respuesta.
Siguientes pasos
Consulta cómo sincronizar los datos de una vista de funciones.
Consulte cómo actualizar una tienda online.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-12 (UTC).