Plantilla de Búsqueda vectorial de Spanner a Vertex AI

La plantilla para Spanner a archivos de búsqueda vectorial de Vertex AI en Cloud Storage crea una canalización por lotes que exporta datos de incorporaciones vectoriales de una tabla de Spanner a Cloud Storage en formato JSON. Usa los parámetros de plantilla a fin de especificar la carpeta de Cloud Storage a la que se exportarán las incorporaciones de vectores. La carpeta de Cloud Storage contiene la lista de archivos .json exportados, que representan las incorporaciones de vector en un formato compatible con el índice de Vertex AI Vector Search.

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

Requisitos de la canalización

  • La base de datos de Spanner debe existir.
  • El bucket de Cloud Storage para los datos de salida debe existir.
  • Además de las funciones de administración de identidades y accesos (IAM) necesarias para ejecutar trabajos de Dataflow, necesitas lo siguiente: roles de IAM obligatorios para leer tus datos de Spanner y escribir en tu bucket de Cloud Storage.

Parámetros de la plantilla

Parámetros obligatorios

  • spannerProjectId: El ID del proyecto de la instancia de Cloud Spanner.
  • spannerInstanceId : ID de la instancia de Spanner desde la que se exportarán las incorporaciones de vectores.
  • spannerDatabaseId : ID de la base de datos de Spanner desde la que se exportarán las incorporaciones de vectores.
  • spannerTable: la table de Spanner desde la que se leerá.
  • spannerColumnsToExport : Una lista separada por comas de las columnas obligatorias para el índice de búsqueda de Vertex AI Vector. Las columnas de ID y de incorporación son obligatorias para la búsqueda de vectores. Si los nombres de tus columnas no coinciden con la estructura de entrada del índice de la búsqueda de vectores de Vertex AI, crea asignaciones de columnas mediante alias. Si los nombres de las columnas no coinciden con el formato que espera Vertex AI, usa la notación de:a. Por ejemplo, si tienes columnas llamadas id y my_embedding, especifica id, my_embedding:embedding.
  • gcsOutputFolder : Carpeta de Cloud Storage para escribir archivos de salida. La ruta de acceso debe terminar con una barra diagonal. (Ejemplo: gs://your-bucket/folder1/).
  • gcsOutputFilePrefix : Prefijo del nombre de archivo para escribir los archivos de salida. (Ejemplo: vector-embeddings).

Parámetros opcionales

  • spannerHost: El extremo de Spanner al que se llamará en la plantilla. El valor predeterminado es https://batch-spanner.googleapis.com (ejemplo: https://batch-spanner.googleapis.com).
  • spannerVersionTime : Opcional: Si se configura, especifica la hora en la que se debe tomar la versión de la base de datos. El valor es una string en formato de fecha RFC-3339 en hora de época Unix. Por ejemplo, 1990-12-31T23:59:60Z. La marca de tiempo debe ser del pasado y se aplica la máxima inactividad de la marca de tiempo (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness). Si no se establece, se usa un límite sólido (https://cloud.google.com/spanner/docs/timestamp-bounds#strong) para leer los datos más recientes. La configuración predeterminada es vacía. (Ejemplo: 1990-12-31T23:59:60Z).
  • spannerDataBoostEnabled : Cuando se establece en verdadero, la plantilla usa el procesamiento a pedido de Spanner. El trabajo de exportación se ejecuta en recursos de procesamiento independientes que no afectan las cargas de trabajo actuales de Spanner. El uso de esta opción genera cargos adicionales en Spanner. Para obtener más información, consulta la descripción general de Data Boost (https://cloud.google.com/spanner/docs/databoost/databoost-overview). La configuración predeterminada es "false".
  • spannerPriority: la prioridad de solicitud para llamadas de Spanner. Los valores permitidos son HIGH, MEDIUM y LOW. El valor predeterminado es MEDIUM.

Ejecuta la plantilla

Console

  1. Ve a la página Crear un trabajo a partir de una plantilla de Dataflow.
  2. Ir a Crear un trabajo a partir de una plantilla
  3. En el campo Nombre del trabajo, ingresa un nombre de trabajo único.
  4. Opcional: Para Extremo regional, selecciona un valor del menú desplegable. La región predeterminada es us-central1.

    Para obtener una lista de regiones en las que puedes ejecutar un trabajo de Dataflow, consulta Ubicaciones de Dataflow.

  5. En el menú desplegable Plantilla de Dataflow, selecciona the Spanner to Vertex AI Vector Search files on Cloud Storage template.
  6. En los campos de parámetros proporcionados, ingresa los valores de tus parámetros.
  7. Haga 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,\

Reemplaza lo siguiente:

  • JOB_NAME: Es el nombre del trabajo que elijas
  • VERSION: Es la versión de la plantilla que deseas usar.

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta superior non-dated en el bucket 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 puede encontrar anidada en la carpeta superior con fecha correspondiente en el bucket gs://dataflow-templates-REGION_NAME/
  • REGION_NAME: La región en la que deseas implementar tu trabajo de Dataflow, por ejemplo, us-central1
  • SPANNER_PROJECT_ID: Es el ID del proyecto de Spanner.
  • SPANNER_INSTANCE_ID: Es el ID de la instancia de Spanner.
  • SPANNER_DATABASE_ID: Es el ID de la base de datos de Spanner.
  • SPANNER_TABLE: Es la tabla de Spanner.
  • SPANNER_COLUMNS_TO_EXPORT: Son las columnas que se exportarán desde la tabla de Spanner
  • GCS_OUTPUT_FOLDER: Es la carpeta de Cloud Storage a la que se exportarán los archivos
  • GCS_OUTPUT_FILE_PREFIX: Es el prefijo de los archivos de salida en Cloud Storage

API

Para ejecutar la plantilla con la API de REST, envía una solicitud POST HTTP. Para obtener más información de la API y sus permisos 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" }
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de Google Cloud en el que deseas ejecutar el trabajo de Dataflow.
  • JOB_NAME: Es el nombre del trabajo que elijas
  • VERSION: Es la versión de la plantilla que deseas usar.

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta superior non-dated en el bucket 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 puede encontrar anidada en la carpeta superior con fecha correspondiente en el bucket gs://dataflow-templates-REGION_NAME/
  • LOCATION: La región en la que deseas implementar tu trabajo de Dataflow, por ejemplo, us-central1
  • SPANNER_PROJECT_ID: Es el ID del proyecto de Spanner.
  • SPANNER_INSTANCE_ID: Es el ID de la instancia de Spanner.
  • SPANNER_DATABASE_ID: Es el ID de la base de datos de Spanner.
  • SPANNER_TABLE: Es la tabla de Spanner.
  • SPANNER_COLUMNS_TO_EXPORT: Son las columnas que se exportarán desde la tabla de Spanner
  • GCS_OUTPUT_FOLDER: Es la carpeta de Cloud Storage a la que se exportarán los archivos
  • GCS_OUTPUT_FILE_PREFIX: Es el prefijo de los archivos de salida en Cloud Storage

¿Qué sigue?