Plantilla de Spanner a Vertex AI Vector Search

La plantilla de archivos de Spanner a Vertex AI Vector Search en Cloud Storage crea un flujo de procesamiento por lotes que exporta datos de inserciones de vectores de una tabla de Spanner a Cloud Storage en formato JSON. Usa parámetros de plantilla para especificar la carpeta de Cloud Storage a la que quieres exportar las inserciones vectoriales. La carpeta de Cloud Storage contiene la lista de archivos .json exportados, que representan las inserciones de vectores en un formato compatible con el índice de búsqueda de vectores de Vertex AI.

Para obtener más información, consulta Formato y estructura de los datos de entrada.

Requisitos del flujo de procesamiento

  • La base de datos de Spanner debe existir.
  • El segmento de Cloud Storage para la salida de datos debe existir.
  • Además de los roles de Gestión de Identidades y Accesos (IAM) necesarios para ejecutar trabajos de Dataflow, necesitas los roles de IAM obligatorios para leer tus datos de Spanner y escribir en tu segmento de Cloud Storage.

Parámetros de plantilla

Parámetros obligatorios

  • spannerProjectId: el ID del proyecto de la instancia de Spanner.
  • spannerInstanceId el ID de la instancia de Spanner de la que se van a exportar las inserciones de vectores.
  • spannerDatabaseId el ID de la base de datos de Spanner de la que se van a exportar las inserciones de vectores.
  • spannerTable la tabla de Spanner de la que se va a leer.
  • spannerColumnsToExport: lista separada por comas de las columnas obligatorias del índice de Vertex AI Vector Search. Vector Search necesita las columnas de ID e inserción. Si los nombres de las columnas no coinciden con la estructura de entrada del índice de Vertex AI Vector Search, crea asignaciones de columnas mediante alias. Si los nombres de las columnas no coinciden con el formato esperado por Vertex AI, utilice la notación de:a. Por ejemplo, si tiene columnas llamadas id y my_embedding, especifique id, my_embedding:embedding.
  • gcsOutputFolder la carpeta de Cloud Storage en la que se escribirán los archivos de salida. La ruta debe terminar con una barra. Por ejemplo, gs://your-bucket/folder1/.
  • gcsOutputFilePrefix el prefijo del nombre de archivo para escribir archivos de salida. Por ejemplo, vector-embeddings.

Parámetros opcionales

  • spannerHost el endpoint de Spanner al que se llama en la plantilla. El valor predeterminado es https://batch-spanner.googleapis.com. Por ejemplo, https://batch-spanner.googleapis.com.
  • spannerVersionTime si se define, especifica la hora en la que se debe tomar la versión de la base de datos. El valor es una cadena en el formato de fecha RFC-3339 en tiempo de época de Unix. Por ejemplo: 1990-12-31T23:59:60Z. La marca de tiempo debe ser anterior a la actual y se aplica la obsolescencia máxima de la marca de tiempo (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness). Si no se define, se usa un límite estricto (https://cloud.google.com/spanner/docs/timestamp-bounds#strong) para leer los datos más recientes. El valor predeterminado es empty. Por ejemplo, 1990-12-31T23:59:60Z.
  • spannerDataBoostEnabled si se define como true, la plantilla usa la computación bajo demanda de Spanner. La tarea de exportación se ejecuta en recursos de computación independientes que no afectan a las cargas de trabajo de Spanner actuales. Si usas esta opción, se aplicarán cargos adicionales en Spanner. Para obtener más información, consulta la descripción general de Data Boost de Spanner (https://cloud.google.com/spanner/docs/databoost/databoost-overview). El valor predeterminado es false.
  • spannerPriority la prioridad de la solicitud para las llamadas de Spanner. Los valores permitidos son HIGH, MEDIUM y LOW. El valor predeterminado es MEDIUM.

Ejecutar la plantilla

Consola

  1. Ve a la página Crear tarea a partir de plantilla de Dataflow.
  2. Ir a Crear tarea a partir de plantilla
  3. En el campo Nombre de la tarea, introduce un nombre único.
  4. Opcional: En Endpoint regional, seleccione un valor en el menú desplegable. La región predeterminada es us-central1.

    Para ver una lista de las regiones en las que puedes ejecutar una tarea de Dataflow, consulta Ubicaciones de Dataflow.

  5. En el menú desplegable Plantilla de flujo de datos, seleccione the Spanner to Vertex AI Vector Search files on Cloud Storage template.
  6. En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
  7. Haz clic en Ejecutar trabajo.

gcloud

En tu shell o terminal, ejecuta la plantilla:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/Cloud_Spanner_vectors_to_Cloud_Storage \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       spannerProjectId=SPANNER_PROJECT_ID,\
       spannerInstanceId=SPANNER_INSTANCE_ID,\
       spannerDatabaseId=SPANNER_DATABASE_ID,\
       spannerTable=SPANNER_TABLE,\
       spannerColumnsToExport=SPANNER_COLUMNS_TO_EXPORT,\
       gcsOutputFolder=GCS_OUTPUT_FOLDER,\
       gcsOutputFilePrefix=GCS_OUTPUT_FILE_PREFIX,\

Haz los cambios siguientes:

  • JOB_NAME: un nombre de trabajo único que elijas
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • REGION_NAME: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • SPANNER_PROJECT_ID: el ID del proyecto de Spanner
  • SPANNER_INSTANCE_ID: el ID de la instancia de Spanner
  • SPANNER_DATABASE_ID: el ID de la base de datos de Spanner
  • SPANNER_TABLE: la tabla de Spanner
  • SPANNER_COLUMNS_TO_EXPORT: las columnas que se van a exportar de la tabla de Spanner
  • GCS_OUTPUT_FOLDER: la carpeta de Cloud Storage en la que se guardarán los archivos de salida.
  • GCS_OUTPUT_FILE_PREFIX: el prefijo de los archivos de salida en Cloud Storage

API

Para ejecutar la plantilla mediante la API REST, envía una solicitud HTTP POST. Para obtener más información sobre la API y sus ámbitos de autorización, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Cloud_Spanner_vectors_to_Cloud_Storage
{
   "jobName": "JOB_NAME",
   "parameters": {
     "spannerProjectId": "SPANNER_PROJECT_ID",
     "spannerInstanceId": "SPANNER_INSTANCE_ID",
     "spannerDatabaseId": "SPANNER_DATABASE_ID",
     "spannerTable": "SPANNER_TABLE",
     "spannerColumnsToExport": "SPANNER_COLUMNS_TO_EXPORT",
     "gcsOutputFolder": "GCS_OUTPUT_FOLDER",
     "gcsOutputFilePrefix": "GCS_OUTPUT_FILE_PREFIX",
   },
   "environment": { "maxWorkers": "10" }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud en el que quieres ejecutar la tarea de Dataflow
  • JOB_NAME: un nombre de trabajo único que elijas
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • LOCATION: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • SPANNER_PROJECT_ID: el ID del proyecto de Spanner
  • SPANNER_INSTANCE_ID: el ID de la instancia de Spanner
  • SPANNER_DATABASE_ID: el ID de la base de datos de Spanner
  • SPANNER_TABLE: la tabla de Spanner
  • SPANNER_COLUMNS_TO_EXPORT: las columnas que se van a exportar de la tabla de Spanner
  • GCS_OUTPUT_FOLDER: la carpeta de Cloud Storage en la que se guardarán los archivos de salida.
  • GCS_OUTPUT_FILE_PREFIX: el prefijo de los archivos de salida en Cloud Storage

Siguientes pasos