Crear una instancia de vista de atributos

Puedes crear una vista de atributos dentro de una instancia de tienda en línea existente. Cuando creas una vista de atributos, puedes asociar atributos con ella de las siguientes maneras:

  • Agregar grupos de atributos y atributos del Registro de atributos: Asocia con grupos de atributos y atributos existentes del Registro de Atributos. Un grupo de funciones especifica la ubicación de la fuente de datos de BigQuery. Un atributo dentro del grupo de atributos apunta a una columna de atributos específica dentro de esa fuente de datos. Puedes asociar una vista de atributos con varios grupos de atributos.

  • Agrega atributos desde una fuente de BigQuery: asocia directamente una fuente de datos de BigQuery, como una tabla o vista de BigQuery, y especifica al menos una columna de ID de la entidad.

Después de crear una vista de atributos, Vertex AI Feature Store sincroniza los valores de los atributos más recientes de la fuente de datos de BigQuery. Si configuras el parámetro de consulta run_sync_immediately=true, Vertex AI Feature Store sincroniza los valores de los atributos cuando creas la vista de atributos. De lo contrario, Vertex AI Feature Store sincroniza los valores de los atributos según el programa de sincronización especificado para la vista de atributos.

Antes de comenzar

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:

Console

When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

Python

Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. 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.

Para obtener más información, consulta Set up authentication for a local development environment.

REST

Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

    Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Sincroniza datos de atributos en una vista de funciones

Vertex AI Feature Store puede actualizar o sincronizar los valores de los atributos de la fuente de datos de BigQuery a la vista de atributos. Puedes especificar el tipo de sincronización de datos para una vista de atributos con el parámetro FeatureView.sync_config.

Vertex AI Feature Store admite los siguientes tipos de sincronización de datos:

  • Sincronización de datos programada: Puedes especificar el programa o la frecuencia de la sincronización de datos. Puedes elegir esta sincronización de datos programada para una vista de atributos, independientemente del tipo de publicación en línea especificado para la instancia de la tienda en línea.

    Si tu vista de atributos está configurada para usar la sincronización de datos programada, puedes omitir la espera hasta la próxima operación de sincronización programada de forma opcional si inicias manualmente la sincronización de datos. Para obtener más información sobre cómo activar manualmente una sincronización de datos, consulta Sincroniza datos de funciones con la tienda en línea.

    Durante la publicación en línea, si deseas publicar solo los valores de atributos más recientes, incluidos los valores nulos, debes usar la siguiente configuración:

    1. Registra tu fuente de datos de atributos creando un grupo de atributos con el parámetro dense establecido en true.

    2. Elige la entrega en línea de Bigtable cuando crees la instancia de la tienda en línea.

    3. Elige la sincronización de datos programada cuando crees tus vistas de componentes.

  • Sincronización de datos continua: Los datos de atributos se actualizan cada vez que se actualizan los datos de atributos en la fuente de datos de BigQuery. Puedes elegir este tipo de sincronización de datos para una vista de componentes solo si se cumplen todas las siguientes condiciones:

    • La instancia de tienda en línea está configurada para la entrega en línea de Bigtable.

    • La vista de atributos está asociada con grupos de atributos y recursos de atributos.

    • La fuente de datos de BigQuery se encuentra en cualquiera de las siguientes regiones:

      • eu

      • us

      • us-central1

    La sincronización de datos continua tiene las siguientes limitaciones:

    • No puedes actualizar una vista de atributos si seleccionas la sincronización de datos continua para ella.

    • Solo se sincronizan los registros de atributos nuevos desde la fuente de datos de BigQuery. La sincronización continua de datos no sincroniza los registros de atributos que actualizas o borras en BigQuery.

Optimiza los costos durante la sincronización de datos programada

Una operación de sincronización de datos puede implicar costos por el uso de recursos de BigQuery. Sigue estos lineamientos para optimizar estos costos y mejorar el rendimiento durante una sincronización de datos:

  • No configures el programa de sincronización para que se ejecute con más frecuencia que la frecuencia con la que se espera que cambien los datos en la fuente de BigQuery.

  • Optimiza el tamaño de la fuente de datos de componentes en BigQuery. Cuando crees la vista de atributos, incluye solo los datos que necesitas para la publicación en línea.

  • Avoid running complex aggregations in BigQuery. Run a SELECT * query on the table or view to estimate the volume and duration of data processing.

  • Mientras configuras las opciones de escalamiento de la tienda en línea, establece max_node_count en un valor lo suficientemente alto como para cubrir cargas altas durante una sincronización de datos.

  • Programa la sincronización de diferentes vistas de atributos en diferentes momentos dentro de la misma tienda en línea.

  • Si tu tabla de BigQuery contiene datos históricos extensos, considera particionar la tabla con marcas de tiempo y especificar un período para recuperar los datos de atributos. Esto minimiza la recuperación de datos de atributos obsoletos durante la sincronización.

  • El uso de Bigtable aumenta durante las sincronizaciones de datos. En el caso de las vistas de atributos creados dentro de las tiendas en línea para la entrega en línea de Bigtable, programa trabajos de sincronización durante los momentos de menor demanda para obtener un mejor rendimiento.

Configura la cuenta de servicio para una vista de funciones

Cada vista de funciones usa una cuenta de servicio para acceder a los datos de origen en BigQuery durante la sincronización. Vertex AI Feature Store asigna el rol de Visualizador de datos de BigQuery de Identity and Access Management (IAM) a esta cuenta de servicio.

De forma predeterminada, una vista de funciones usa la cuenta de servicio configurada para tu proyecto. Con esta configuración, cualquier usuario con permiso para crear una vista de atributos en tu proyecto puede acceder a los datos de los atributos en BigQuery.

Como alternativa, puedes configurar la vista de características para usar su propia cuenta de servicio. Luego, Vertex AI Feature Store configura una cuenta de servicio dedicada para la vista de atributos. Con esta configuración, puedes restringir el acceso a los datos de los atributos en BigQuery u otorgar acceso a usuarios adicionales. Puedes especificar la configuración de la cuenta de servicio con el parámetro FeatureView.service_agent_type.

Configura la recuperación de vectores para una vista de atributos

Puedes configurar la recuperación de vectores para una vista de atributos dentro de una tienda en línea creada para la entrega en línea optimizada con el parámetro FeatureView.index_config. Si deseas obtener información para preparar o actualizar la fuente de datos de BigQuery para admitir incorporaciones mediante la inclusión de la columna embedding, consulta Lineamientos de preparación de fuentes de datos.

Ten en cuenta que puedes configurar la recuperación de vectores y administrar las incorporaciones solo si la vista de atributos se crea mediante la especificación de un URI de origen de BigQuery y no mediante grupos y atributos de Feature Registry.

Para obtener más información sobre cómo buscar vecinos más cercanos aproximados a través de incorporaciones en Vertex AI Feature Store, consulta Busca con el uso de incorporaciones.

Crea una vista de atributos a partir de grupos de atributos

Puedes crear una vista de atributos según los datos de atributos registrados con grupos de atributos y atributos. Para asociar varias fuentes de datos de BigQuery con la misma vista de atributos, puedes especificar varios grupos de atributos.

Si creas una vista de atributos especificando grupos de atributos y atributos, haz lo siguiente:

  • Tu fuente de datos debe tener una columna feature_timestamp y puede contener datos históricos.

  • Vertex AI Feature Store solo entrega los valores de atributos más recientes según la marca de tiempo del atributo.

  • No puedes configurar la administración de incorporaciones para la vista de atributos.

Crea una vista de funciones con la configuración de la cuenta de servicio predeterminada

Usa el siguiente ejemplo para crear una vista de funciones mediante la asociación de varios grupos de funciones sin especificar una configuración de cuenta de servicio.

REST

Para crear un recurso FeatureView, envía una solicitud POST mediante el método featureViews.create.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: La región en la que deseas crear la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: el nombre de la instancia de la tienda en línea en la que deseas crear la vista de atributos.
  • FEATUREVIEW_NAME: el nombre de la instancia de vista de atributos nueva que deseas crear.
  • FEATUREGROUP_NAME_A y FEATUREGROUP_NAME_B: Los nombres de los grupos de atributos desde los que deseas agregar atributos a la vista de atributos.
  • FEATURE_ID_A1 y FEATURE_ID_A2: Los IDs de los atributos del grupo de atributos FEATUREGROUP_NAME_A que deseas agregar a la vista de atributos.
  • FEATURE_ID_B1 y FEATURE_ID_B2: Los IDs de los atributos del grupo de atributos FEATUREGROUP_NAME_B que deseas agregar a la vista de atributos.
  • SYNC_CONFIG: Ingresa una de las siguientes configuraciones de sincronización para la vista de atributos:
    • Para usar la sincronización de datos programada, proporciona el programa de sincronización en el siguiente formato:
      "cron": "cron_schedule_expression"
      Reemplaza "cron_schedule_expression" por la expresión de programación de cron que representa la frecuencia para sincronizar datos con la vista de atributos. Para obtener más información, consulta cron.
    • Para usar la sincronización de datos continua, ingresa lo siguiente:
      "continuous": true Puedes usar la sincronización de datos continua solo si la instancia de la tienda en línea que contiene la vista de funciones está configurada para la entrega en línea de Bigtable.

Método HTTP y URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Cuerpo JSON de la solicitud:

{
  "feature_registry_source": {
    "feature_groups": [
      {
        "feature_group_id": "FEATUREGROUP_NAME_A",
        "feature_ids": [ "FEATURE_ID_A1", "FEATURE_ID_A2" ]
      },
      {
        "feature_group_id": "FEATUREGROUP_NAME_B",
        "feature_ids": [ "FEATURE_ID_B1", "FEATURE_ID_B2" ]
      }
    ]
  },
  "sync_config": {
    SYNC_CONFIG
  }
}

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?feature_view_id=FEATUREVIEW_NAME"

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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Crea una vista de funciones mediante la especificación de una configuración de cuenta de servicio

Usa el siguiente ejemplo para crear una vista de funciones a partir de grupos de funciones mediante la especificación de una configuración de cuenta de servicio.

REST

Para crear un recurso FeatureView, envía una solicitud POST mediante el método featureViews.create.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: La región en la que deseas crear la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: el nombre de la instancia de la tienda en línea en la que deseas crear la vista de atributos.
  • FEATUREVIEW_NAME: el nombre de la instancia de vista de atributos nueva que deseas crear.
  • FEATUREGROUP_NAME_A y FEATUREGROUP_NAME_B: Los nombres de los grupos de atributos desde los que deseas agregar atributos a la vista de atributos.
  • FEATURE_ID_A1 y FEATURE_ID_A2: Los IDs de los atributos del grupo de atributos FEATUREGROUP_NAME_A que deseas agregar a la vista de atributos.
  • FEATURE_ID_B1 y FEATURE_ID_B2: Los IDs de los atributos del grupo de atributos FEATUREGROUP_NAME_B que deseas agregar a la vista de atributos.
  • SYNC_CONFIG: Ingresa una de las siguientes configuraciones de sincronización para la vista de atributos:
    • Para usar la sincronización de datos programada, proporciona el programa de sincronización en el siguiente formato:
      "cron": "cron_schedule_expression"
      Reemplaza "cron_schedule_expression" por la expresión de programación de cron que representa la frecuencia para sincronizar datos con la vista de atributos. Para obtener más información, consulta cron.
    • Para usar la sincronización de datos continua, ingresa lo siguiente:
      "continuous": true Puedes usar la sincronización de datos continua solo si la instancia de la tienda en línea que contiene la vista de funciones está configurada para la entrega en línea de Bigtable.
  • SERVICE_AGENT_TYPE: Opcional: Configuración de la cuenta de servicio para la vista de funciones. Los tipos de agente de servicio compatibles incluyen lo siguiente:
    • SERVICE_AGENT_TYPE_PROJECT: Usa la cuenta de servicio a nivel de proyecto para la vista de atributos. Esta es la configuración predeterminada.
    • SERVICE_AGENT_TYPE_FEATURE_VIEW: Configura y usa una cuenta de servicio dedicada para la vista de funciones.

HTTP method and URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Cuerpo JSON de la solicitud:

{
  "feature_registry_source": {
    "feature_groups": [
      {
        "feature_group_id": "FEATUREGROUP_NAME_A",
        "feature_ids": [ "FEATURE_ID_A1", "FEATURE_ID_A2" ]
      },
      {
        "feature_group_id": "FEATUREGROUP_NAME_B",
        "feature_ids": [ "FEATURE_ID_B1", "FEATURE_ID_B2" ]
      }
    ]
  },
  "sync_config": {
    SYNC_CONFIG
  },
  "service_agent_type": "SERVICE_AGENT_TYPE"
}

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?feature_view_id=FEATUREVIEW_NAME"

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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Crear una vista de atributos desde una fuente de BigQuery

If you want to serve features online without registering your BigQuery data source using feature groups and features, you can create a feature view by specifying the URI of the BigQuery data source.

Si creas una vista de funciones especificando la fuente de datos, haz lo siguiente:

  • You can't include a feature_timestamp column in the BigQuery table or view.

  • No puedes incluir valores históricos de atributos en la fuente de datos. Cada fila debe contener un ID de entidad único.

Crea una vista de atributos que use la cuenta de servicio predeterminada y no admita embeddings

Usa los siguientes ejemplos para crear una vista de atributos que no admita embeddings mediante la asociación directa de una fuente de datos de BigQuery y sin especificar una configuración de cuenta de servicio.

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
from typing import List


def create_feature_view_from_bq_source(
    project: str,
    location: str,
    existing_feature_online_store_id: str,
    feature_view_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
):
    aiplatform.init(project=project, location=location)
    fos = feature_store.FeatureOnlineStore(existing_feature_online_store_id)
    fv = fos.create_feature_view(
        name=feature_view_id,
        source=feature_store.utils.FeatureViewBigQuerySource(
            uri=bq_table_uri, entity_id_columns=entity_id_columns
        ),
    )
    return fv

  • project: ID del proyecto
  • location: La región en la que deseas crear la vista de atributos, como us-central1.
  • existing_feature_online_store_id: el nombre de la instancia de la tienda en línea en la que deseas crear la vista de atributos.
  • feature_view_id: el nombre de la instancia de vista de atributos nueva que deseas crear.
  • bq_table_uri: El URI de la tabla o vista de origen de BigQuery.
  • entity_id_columns: Los nombres de las columnas que contienen los IDs de las entidades. Puedes especificar una o varias columnas.
    • Para especificar solo una columna de ID de la entidad, especifica el nombre de la columna en el siguiente formato:
      "entity_id_column_name".
    • Para especificar varias columnas de ID de entidad, especifica los nombres de las columnas en el siguiente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].

REST

Para crear un recurso FeatureView, envía una solicitud POST mediante el método featureViews.create.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: La región en la que deseas crear la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: el nombre de la instancia de la tienda en línea en la que deseas crear la vista de atributos.
  • FEATUREVIEW_NAME: el nombre de la vista de atributos nueva que deseas crear.
  • PROJECT_NAME: Es el nombre de tu proyecto.
  • DATASET_NAME: el nombre de tu conjunto de datos de BigQuery.
  • TABLE_NAME: el nombre de la tabla de tu conjunto de datos de BigQuery.
  • ENTITY_ID_COLUMNS: Los nombres de las columnas que contienen los ID de las entidades. Puedes especificar una o varias columnas.
    • Para especificar solo una columna de ID de la entidad, especifica el nombre de la columna en el siguiente formato:
      "entity_id_column_name"
    • Para especificar varias columnas de ID de entidad, especifica los nombres de las columnas en el siguiente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: expresión de programa cron que representa la frecuencia para sincronizar datos con la vista de funciones. Para obtener más información, consulta Cron.

HTTP method and URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Cuerpo JSON de la solicitud:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  }
}

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?feature_view_id=FEATUREVIEW_NAME"

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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Crea una vista de atributos que use la cuenta de servicio predeterminada y admita embeddings

Usa los siguientes ejemplos para crear una vista de atributos compatible con embeddings mediante la asociación directa de una fuente de datos de BigQuery y sin especificar una configuración de cuenta de servicio.

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
from typing import List


def create_feature_view_from_bq_source_with_embedding_management(
    project: str,
    location: str,
    existing_feature_online_store_id: str,
    feature_view_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
    embedding_column: str,
    embedding_dimensions: int,
):
    aiplatform.init(project=project, location=location)

    fos = feature_store.FeatureOnlineStore(existing_feature_online_store_id)

    bigquery_source = feature_store.utils.FeatureViewBigQuerySource(
        uri=bq_table_uri,
        entity_id_columns=entity_id_columns,
    )
    index_config = feature_store.utils.IndexConfig(
        embedding_column=embedding_column,
        dimensions=embedding_dimensions,
        algorithm_config=feature_store.utils.TreeAhConfig(),
    )
    fv = fos.create_feature_view(
        name=feature_view_id,
        source=bigquery_source,
        index_config=index_config,
    )
    return fv

  • project: ID del proyecto
  • location: La región en la que deseas crear la vista de atributos, como us-central1.
  • existing_feature_online_store_id: el nombre de la instancia de la tienda en línea en la que deseas crear la vista de atributos.
  • feature_view_id: el nombre de la instancia de vista de atributos nueva que deseas crear.
  • bq_table_uri: El URI de la tabla o vista de origen de BigQuery.
  • entity_id_columns: Los nombres de las columnas que contienen los IDs de las entidades. Puedes especificar una o varias columnas.
    • Para especificar solo una columna de ID de la entidad, especifica el nombre de la columna en el siguiente formato:
      "entity_id_column_name".
    • Para especificar varias columnas de ID de entidad, especifica los nombres de las columnas en el siguiente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].
  • embedding_column: El nombre de la columna que contiene los datos de origen a fin de crear el índice para la búsqueda vectorial Esto solo es necesario si deseas administrar las incorporaciones con la vista de atributos.
  • embedding_dimensions: Opcional El tamaño, expresado como cantidad de dimensiones, de una embedding en la columna de embedding.

REST

Para crear un recurso FeatureView, envía una solicitud POST mediante el método featureViews.create.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: La región en la que deseas crear la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: el nombre de la instancia de la tienda en línea en la que deseas crear la vista de atributos.
  • FEATUREVIEW_NAME: el nombre de la vista de atributos nueva que deseas crear.
  • PROJECT_NAME: Es el nombre de tu proyecto.
  • DATASET_NAME: el nombre de tu conjunto de datos de BigQuery.
  • TABLE_NAME: el nombre de la tabla de tu conjunto de datos de BigQuery.
  • ENTITY_ID_COLUMNS: Los nombres de las columnas que contienen los ID de las entidades. Puedes especificar una o varias columnas.
    • Para especificar solo una columna de ID de la entidad, especifica el nombre de la columna en el siguiente formato:
      "entity_id_column_name"
    • Para especificar varias columnas de ID de entidad, especifica los nombres de las columnas en el siguiente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: expresión de programa cron que representa la frecuencia para sincronizar datos con la vista de funciones. Para obtener más información, consulta Cron.
  • EMBEDDING_COLUMN: El nombre de la columna que contiene los datos de origen a fin de crear el índice para la búsqueda vectorial Esto solo es necesario si deseas administrar las incorporaciones con la vista de atributos.
  • FILTER_COLUMN_1 y FILTER_COLUMN_2: Opcional: Los nombres de las columnas que se usan para filtrar los resultados de la búsqueda vectorial
  • CROWDING_COLUMN: Opcional: El nombre de la columna que contiene los atributos de multitud.
  • EMBEDDING_DIMENSION: Opcional: El tamaño, expresado como cantidad de dimensiones, de una incorporación en la columna de incorporación.

HTTP method and URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Cuerpo JSON de la solicitud:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  },
  "index_config": {
    "embedding_column": "EMBEDDING_COLUMN",
    "filter_columns": ["FILTER_COLUMN_1", "FILTER_COLUMN_2"],
    "crowding_column": "CROWDING_COLUMN",
    "embedding_dimension": EMBEDDING_DIMENSION
    "tree_ah_config": {}
  }
}

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?feature_view_id=FEATUREVIEW_NAME"

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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Crea una vista de atributos con la administración de incorporaciones mediante la especificación de una configuración de cuenta de servicio

Usa el siguiente ejemplo para crear una vista de atributos con compatibilidad de incorporaciones mediante la asociación directa de una fuente de datos de BigQuery y la especificación de una configuración de cuenta de servicio.

REST

Para crear un recurso FeatureView compatible con incorporaciones, envía una solicitud POST mediante el método featureViews.create y especifica el parámetro FeatureView.index_config. Ten en cuenta que puedes usar la administración de incorporaciones solo si la tienda en línea está configurada para la entrega en línea optimizada.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: La región en la que deseas crear la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: el nombre de la instancia de la tienda en línea en la que deseas crear la vista de atributos.
  • FEATUREVIEW_NAME: el nombre de la vista de atributos nueva que deseas crear.
  • PROJECT_NAME: Es el nombre de tu proyecto.
  • DATASET_NAME: el nombre de tu conjunto de datos de BigQuery.
  • TABLE_NAME: el nombre de la tabla de tu conjunto de datos de BigQuery.
  • ENTITY_ID_COLUMNS: Los nombres de las columnas que contienen los ID de las entidades. Puedes especificar una o varias columnas.
    • Para especificar solo una columna de ID de la entidad, especifica el nombre de la columna en el siguiente formato:
      "entity_id_column_name"
    • Para especificar varias columnas de ID de entidad, especifica los nombres de las columnas en el siguiente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: expresión de programa cron que representa la frecuencia para sincronizar datos con la vista de funciones. Para obtener más información, consulta Cron.
  • SERVICE_AGENT_TYPE: Configuración de la cuenta de servicio para la vista de funciones. Los tipos de agente de servicio compatibles incluyen lo siguiente:
    • SERVICE_AGENT_TYPE_PROJECT: Usa la cuenta de servicio a nivel de proyecto para la vista de atributos. Esta es la configuración predeterminada.
    • SERVICE_AGENT_TYPE_FEATURE_VIEW: Configura y usa una cuenta de servicio dedicada para la vista de funciones.
  • EMBEDDING_COLUMN: El nombre de la columna que contiene los datos de origen a fin de crear el índice para la búsqueda vectorial Esto solo es necesario si deseas administrar las incorporaciones con la vista de atributos.
  • FILTER_COLUMN_1 y FILTER_COLUMN_2: Opcional: Los nombres de las columnas que se usan para filtrar los resultados de la búsqueda vectorial
  • CROWDING_COLUMN: Opcional: El nombre de la columna que contiene los atributos de multitud.
  • EMBEDDING_DIMENSION: Opcional: El tamaño, expresado como cantidad de dimensiones, de una incorporación en la columna de incorporación.

HTTP method and URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Cuerpo JSON de la solicitud:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  },
  "service_agent_type": "SERVICE_AGENT_TYPE",
  "index_config": {
    "embedding_column": "EMBEDDING_COLUMN",
    "filter_columns": ["FILTER_COLUMN_1", "FILTER_COLUMN_2"],
    "crowding_column": "CROWDING_COLUMN",
    "embedding_dimension": EMBEDDING_DIMENSION
    "tree_ah_config": {}
  }
}

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?feature_view_id=FEATUREVIEW_NAME"

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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

¿Qué sigue?