Crea 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 de la siguiente manera:

  • 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 atributos 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 funciones 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 la 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.

Sincroniza datos de atributos en una vista de funciones

Vertex AI Feature Store actualiza o sincroniza de forma periódica los valores de los atributos almacenados en la tienda en línea desde BigQuery. Cuando creas una vista de funciones, puedes especificar el programa o la frecuencia para la sincronización de datos con el parámetro FeatureView.sync_config.

También puede activar manualmente una sincronización de datos para una vista de funciones. Si deseas obtener más información para sincronizar de forma manual los datos de una vista de funciones, consulta Sincroniza los datos de las funciones con la tienda en línea.

Ten en cuenta que solo una operación de sincronización de datos puede estar activa a la vez para una vista de funciones. Si hay una sincronización de datos en curso para una vista de funciones, todas las sincronizaciones de datos programadas para esa vista de funciones se omiten hasta que se completa la sincronización.

Optimiza los costos durante la sincronización

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 la programación de sincronización para que se ejecute con más frecuencia que la frecuencia a la que se espera que los datos cambien en la fuente de BigQuery.

  • Optimizar el tamaño de la fuente de datos de atributos en BigQuery Mientras creas la vista de atributos, solo incluye los datos que necesitas para la entrega en línea.

  • Evita ejecutar agregaciones complejas en BigQuery. Ejecuta una consulta SELECT * en la tabla o vista para estimar el volumen y la duración del procesamiento de datos.

  • Cuando configures las opciones de escalamiento para la tienda en línea, establece max_node_count en un valor que sea lo bastante alto como para cubrir cargas altas durante una sincronización de datos.

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

  • Si tu tabla de BigQuery contiene grandes datos históricos, considera particionar la tabla mediante marcas de tiempo y especifica un intervalo de tiempo para recuperar los datos de los 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 creada en función de si la fuente de datos asociada contiene la columna embedding y el almacén en línea está configurado para admitir la administración de incorporaciones. Para especificar la configuración de recuperación de vectores, usa el parámetro FeatureView.vector_search_config.

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.

Si deseas obtener información sobre cómo configurar 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.

Crea una vista de funciones a partir de grupos de funciones

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

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

  • La 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: Región donde deseas crear la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: Es 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: Son 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: Son los ID de la función del grupo de funciones FEATUREGROUP_NAME_A que deseas agregar a la vista de atributos.
  • FEATURE_ID_B1 y FEATURE_ID_B2: Son los ID de la función del grupo de funciones FEATUREGROUP_NAME_B que deseas agregar a la vista de atributos.
  • 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:

{
  "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": {
    "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 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: Región donde deseas crear la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: Es 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: Son 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: Son los ID de la función del grupo de funciones FEATUREGROUP_NAME_A que deseas agregar a la vista de atributos.
  • FEATURE_ID_B1 y FEATURE_ID_B2: Son los ID de la función del grupo de funciones FEATUREGROUP_NAME_B que deseas agregar a la vista de atributos.
  • 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: (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": {
    "cron": "CRON"
  },
  "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

Si deseas entregar atributos en línea sin registrar tu fuente de datos de BigQuery con grupos de atributos y características, puedes crear una vista de atributos si especificas el URI de la fuente de datos de BigQuery.

Si creas una vista de atributos mediante la especificación de la fuente de datos, haz lo siguiente:

  • No puedes incluir una columna feature_timestamp en la tabla o vista de BigQuery.

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

Crea una vista de atributos con la configuración de la cuenta de servicio predeterminada y sin administración de incorporaciones

Usa el siguiente ejemplo para crear una vista de atributos que no admita la administración de incorporaciones, use la cuenta de servicio predeterminada para tu proyecto y esté asociada directamente con una fuente de datos de BigQuery.

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: Región donde deseas crear la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: Es 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_COLUMN: el nombre de la columna que contiene los IDs de la entidad.
  • 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_COLUMN"
  },
  "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 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 que admita incorporaciones y, además, incluya una configuración de cuenta de servicio y se asocia directamente con una fuente de datos de BigQuery.

REST

Para crear un recurso FeatureView compatible con incorporaciones, envía una solicitud POST mediante el método featureViews.create y Especifica la configuración de búsqueda de vectores.

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

  • LOCATION_ID: Región donde deseas crear la vista de atributos, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: Es 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",
  "vector_search_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?