La transferencia por lotes permite transferir valores de atributos de forma masiva desde una fuente de datos válida. En una solicitud de transferencia por lotes, puedes importar valores para hasta 100 funciones de un tipo de entidad. Ten en cuenta que solo puedes ejecutar un trabajo de transferencia por lotes para evitar colisiones por tipo de entidad.
En una solicitud de transferencia por lotes, especifique la ubicación de sus datos de origen y cómo se asigna a los atributos del almacén de atributos. Debido a que cada solicitud de transferencia por lotes está destinada a un solo tipo de entidad, sus datos de origen también deben ser para un solo tipo de entidad.
Una vez que la importación se haya completado de forma correcta, los valores de los atributos estarán disponibles en las operaciones de lectura posteriores.
- Para obtener información sobre los requisitos de datos de origen, consulta Requisitos de los datos de origen.
- Para obtener información sobre la cantidad de tiempo que Vertex AI Feature Store (Legacy) conserva tus datos en el almacenamiento sin conexión, consulta Vertex AI Feature Store (Legacy) en Cuotas y límites.
- Para obtener información sobre la marca de tiempo del valor de atributo más antiguo que puedes transferir, consulta Vertex AI Feature Store (Legacy) en Cuotas y límites.
- No puedes importar valores de atributos para los que las marcas de tiempo indican fechas y horas futuras.
Rendimiento de los trabajos de importación
Vertex AI Feature Store (Legacy) proporciona transferencias de alta capacidad de procesamiento, pero la latencia mínima puede tardar unos minutos. Cada solicitud a Vertex AI Feature Store (Legacy) inicia un trabajo para completar la tarea. Un trabajo de importación tarda unos minutos en completarse, incluso si estás importando un solo registro.
Si deseas realizar ajustes en el rendimiento de un trabajo, cambia las siguientes dos variables:
- La cantidad de nodos de entrega en línea del almacén de atributos.
- La cantidad de trabajadores que se usaron para el trabajo de transferencia. Los trabajadores procesan y escriben datos en el almacén de atributos.
La cantidad recomendada de trabajadores es un trabajador por cada 10 nodos de entrega en línea en el almacén de atributos. Puedes aumentarla si la carga de la entrega en línea es baja. Puedes especificar un máximo de 100 trabajadores. Si deseas obtener más orientación, consulta Supervisa y ajusta los recursos según corresponda para optimizar la transferencia por lotes.
Si el clúster de entrega en línea no está suficientemente aprovisionado, el trabajo de transferencia puede fallar. En caso de falla, vuelve a intentar la solicitud de importación cuando la carga de la entrega en línea sea baja, o aumenta el recuento de nodos de tu almacén de atributos y vuelve a intentar la solicitud.
Si el almacén de atributos no tiene una tienda en línea (cero nodos de entrega en línea), el trabajo de transferencia solo escribe en la tienda sin conexión y el rendimiento del trabajo depende solo de la cantidad de trabajadores de transferencia.
Coherencia de los datos
Se pueden generar inconsistencias si los datos de origen se modifican durante la importación. Asegúrate de que las modificaciones de los datos de origen se hayan completado antes de iniciar un trabajo de transferencia. Además, los valores de atributos duplicados pueden hacer que se entreguen valores diferentes entre las solicitudes en línea y por lotes. Asegúrate de tener un valor de atributo para cada par de ID de la entidad y marca de tiempo.
Si una operación de importación falla, la tienda de atributos puede tener solo datos parciales, lo que puede provocar que se muestren valores incoherentes entre las solicitudes de entrega en línea y por lotes. Para evitar esta incoherencia, vuelve a intentar la misma solicitud de importación y espera hasta que la solicitud se complete de forma correcta.
Valores nulos y arrays vacíos
Durante la transferencia, Vertex AI Feature Store (Legacy) considera valores escalares nulos o arrays vacíos como valores vacíos. Estos incluyen valores vacíos en una columna CSV. Vertex AI Feature Store (Legacy) no admite valores nulos no escalares, como un valor null
en una matriz.
Durante la entrega en línea y por lotes, Vertex AI Feature Store (Legacy) muestra el último valor no nulo o no vacío de la función. Si un valor histórico de la función no está disponible, Vertex AI Feature Store (Legacy) muestra null
.
Valores NaN
Vertex AI Feature Store (Legacy) admite valores NaN (no un número) en Double
y DoubleArray
. Durante la transferencia, puedes ingresar NaN
en el archivo CSV de entrada de entrega para representar un valor NaN. Durante la entrega en línea y la entrega por lotes, Vertex AI Feature Store (Legacy) muestra NaN
para los valores NaN.
batchImport
Importa valores de forma masiva en un almacén de atributos para una o más atributos de un solo tipo de entidad.
IU web
- En la sección de Vertex AI de la consola de Google Cloud, ve a la página Funciones.
- Selecciona una región de la lista desplegable Región.
- En la tabla de atributos, consulta la columna Tipo de entidad y busca el tipo de entidad que contiene los atributos para los que deseas transferir valores.
- Haz clic en el nombre del tipo de entidad.
- En la barra de acciones, haz clic en Transferir valores.
- En Fuente de datos, selecciona una de las siguientes opciones:
- Archivo CSV de Cloud Storage: Selecciona esta opción para transferir datos de varios archivos CSV de Cloud Storage. Especifica la ruta de acceso y el nombre del archivo CSV. Para especificar archivos adicionales, haz clic en Agregar otro archivo.
- Archivo AVRO de Cloud Storage: Selecciona esta opción para transferir datos de un archivo AVRO desde Cloud Storage. Especifica la ruta y el nombre del archivo AVRO.
- Tabla de BigQuery: selecciona esta opción para transferir datos desde una tabla de BigQuery o una vista de BigQuery. Explora y selecciona una tabla o vista para usar, que tiene el siguiente formato:
PROJECT_ID.DATASET_ID.TABLE_ID
- Haz clic en Continuar.
- En Asignar columna a atributos, especifica qué columnas de tus datos de origen se asignan a entidades y atributos en tu almacén de atributos.
- Especifica el nombre de la columna en los datos de origen que contiene los ID de las entidades.
- Para la marca de tiempo, especifica una columna de marca de tiempo en los datos de origen o especifica una sola marca de tiempo asociada con todos los valores de atributos que transfieras.
- En la lista de atributos, ingresa el nombre de la columna de datos de origen que se asignará a cada atributo. De forma predeterminada, Vertex AI Feature Store (Legacy) supone que el nombre del atributo y el nombre de la columna coinciden.
- Haz clic en Transferir.
REST
Para importar los valores de los atributos existentes, envía una solicitud POST mediante el método featurestores.entityTypes.importFeatureValues. Ten en cuenta que, si los nombres de las columnas de datos de origen y los ID de los atributos de destino son diferentes, incluye el parámetro sourceField
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION_ID: Región en la que se crea el featurestore. Por ejemplo,
us-central1
- PROJECT_ID: El ID del proyecto.
- FEATURESTORE_ID: ID del featurestore.
- ENTITY_TYPE_ID: Es el ID del tipo de entidad.
- ENTITY_SOURCE_COLUMN_ID: Es el ID de la columna de origen que contiene los ID de la entidad.
- FEATURE_TIME_ID: ID de la columna de origen que contiene las marcas de tiempo de los valores de los atributos.
- FEATURE_ID: Es el ID de un atributo existente en la tienda de atributos para la cual se importarán valores.
- FEATURE_SOURCE_COLUMN_ID: Es el ID de la columna de origen que contiene los valores de los atributos de las entidades.
- SOURCE_DATA_DETAILS: La ubicación de los datos de origen, que también indica el formato, como
"bigquerySource": { "inputUri": "bq://test.dataset.sourcetable" }
para una tabla de BigQuery o una vista de BigQuery. - WORKER_COUNT: Es la cantidad de trabajadores que se usarán para escribir datos en la tienda de atributos.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:importFeatureValues
Cuerpo JSON de la solicitud:
{ "entityIdField": "ENTITY_SOURCE_COLUMN_ID", "featureTimeField": "FEATURE_TIME_ID", SOURCE_DATA_DETAILS, "featureSpecs": [{ "id": "FEATURE_ID", "sourceField": "FEATURE_SOURCE_COLUMN_ID" }], "workerCount": WORKER_COUNT }
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/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:importFeatureValues"
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/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:importFeatureValues" | Select-Object -Expand Content
Deberías ver un resultado similar al siguiente. Puedes usar el OPERATION_ID en la respuesta para obtener el estado de la operación.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ImportFeatureValuesOperationMetadata", "genericMetadata": { "createTime": "2021-03-02T00:04:13.039166Z", "updateTime": "2021-03-02T00:04:13.039166Z" } } }
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.
Python
La biblioteca cliente de Vertex AI se incluye cuando instalas el SDK de Vertex AI para Python. Si deseas obtener información sobre cómo instalar 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 del SDK de AI de Vertex para la API de Python.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Visualiza trabajos de importación
Usa la consola de Google Cloud para ver los trabajos de importación por lotes en un proyecto de Google Cloud.
IU web
- En la sección de Vertex AI de la consola de Google Cloud, ve a la página Funciones.
- Selecciona una región de la lista desplegable Región.
- En la barra de acciones, haz clic en Ver trabajos de transferencia para enumerar los trabajos de transferencia de todos los almacenes de atributos.
- Haz clic en el ID de un trabajo de importación para ver sus detalles, como sus fuente de datos, cantidad de entidades de importación y cantidad de valores de atributos importados.
Reemplazar los datos existentes en un almacén de atributos
Puedes volver a importar valores para reemplazar los valores de atributos existentes si ambos tienen las mismas marcas de tiempo. No es necesario que borres primero los valores de los atributos existentes. Por ejemplo, puedes confiar en un dato de origen subyacente que se modificó recientemente. Para mantener el almacén de atributos coherente con esos datos subyacentes, vuelve a importar los valores de tus atributos. Si tienes marcas de tiempo que no coinciden, los valores importados se consideran únicos y los valores antiguos continúan existiendo (no se reemplazan).
Para garantizar la coherencia entre las solicitudes de entrega en línea y por lotes, espera a que se complete el trabajo de importación antes de realizar cualquier solicitud de entrega.
Datos históricos de reabastecimiento
Si reabasteces datos, en los que importas valores de atributos anteriores, inhabilita la entrega en línea para el trabajo de importación. La entrega en línea sirve para entregar solo los valores de función más recientes, que el reabastecimiento no incluye. Inhabilitar la entrega en línea es útil porque borras cualquier carga en los nodos de entrega en línea y aumentas la capacidad de procesamiento de tu trabajo de importación, lo que puede disminuir su tiempo de finalización.
Puedes inhabilitar la entrega en línea para trabajos de importación cuando usas la API o las bibliotecas cliente. Para obtener más información, consulta el campo disableOnlineServing
del método importFeatureValue.
¿Qué sigue?
- Obtén más información sobre cómo entregar funciones a través de la entrega en línea o la entrega por lotes.
- Aprende a supervisar los valores de los atributos importados a lo largo del tiempo.
- Consulta la cuota de trabajos por lotes simultáneos de Vertex AI Feature Store (heredado).
- Soluciona problemas comunes de Vertex AI Feature Store (heredado).