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ámetro Descripción
spannerProjectId ID del proyecto de la instancia de 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 tabla 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 id y embedding son necesarias 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 from:to. 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. Por ejemplo: gs://your-bucket/folder1/.
gcsOutputFilePrefix Prefijo del nombre de archivo para escribir los archivos de salida. Por ejemplo: vector-embeddings.
spannerHost El extremo de Spanner al que se llamará en la plantilla (opcional). El valor predeterminado es 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 marca de tiempo de inactividad. Si no se establece, se usa un límite sólido para leer los datos más recientes. La configuración predeterminada es vacía.
spannerDataBoostEnabled Opcional: Cuando se establece en true, 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 Descripción general de Spanner Data Boost. La configuración predeterminada es: false.
spannerPriority Opcional: La prioridad de solicitud para llamadas de Spanner. Los valores permitidos son HIGH, MEDIUM y LOW. El valor predeterminado es MEDIUM.

Ejecuta la plantilla

Consola

  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 HTTP POST. 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?