Plantilla de Bigtable a Vertex AI Vector Search

La plantilla de archivos de Bigtable a Vertex AI Vector Search en Cloud Storage crea un flujo de procesamiento por lotes que lee datos de una tabla de Bigtable y los escribe en un segmento de Cloud Storage en formato JSON. Usa esta plantilla para las incrustaciones de vectores.

Requisitos del flujo de procesamiento

  • La tabla de Bigtable debe existir.
  • El segmento de Cloud Storage de salida debe existir antes de ejecutar el flujo de procesamiento.

Parámetros de plantilla

Parámetros obligatorios

  • bigtableProjectId el ID del proyecto de Google Cloud que contiene la instancia de Bigtable de la que quieres leer datos.
  • bigtableInstanceId el ID de la instancia de Bigtable que contiene la tabla.
  • bigtableTableId el ID de la tabla de Bigtable de la que se van a leer los datos.
  • outputDirectory ruta de Cloud Storage en la que se almacenan los archivos JSON de salida. Por ejemplo, gs://your-bucket/your-path/.
  • idColumn el nombre de columna completo en el que se almacena el ID. En el formato cf:col o _key.
  • embeddingColumn nombre de columna completo en el que se almacenan las inserciones. En el formato cf:col o _key.

Parámetros opcionales

  • filenamePrefix el prefijo del nombre del archivo JSON. Por ejemplo: table1-. Si no se proporciona ningún valor, se utiliza part de forma predeterminada.
  • crowdingTagColumn nombre de columna completo en el que se almacena la etiqueta de aglomeración. En el formato cf:col o _key.
  • embeddingByteSize el tamaño en bytes de cada entrada de la matriz de incrustaciones. En el caso de los valores flotantes, usa el valor 4. En el caso de los valores dobles, usa el valor 8. El valor predeterminado es 4.
  • allowRestrictsMappings los nombres de columna completos separados por comas de las columnas que se van a usar como restricciones permitidas, con sus alias. Con el formato cf:col->alias.
  • denyRestrictsMappings los nombres de columna completos separados por comas de las columnas que se van a usar como restricciones de denegación, con sus alias. Con el formato cf:col->alias.
  • intNumericRestrictsMappings los nombres de columna completos separados por comas de las columnas que se van a usar como numeric_restricts de números enteros, con sus alias. Con el formato cf:col->alias.
  • floatNumericRestrictsMappings los nombres de columna completos separados por comas de las columnas que se van a usar como numeric_restricts de tipo float (4 bytes), con sus alias. Con el formato cf:col->alias.
  • doubleNumericRestrictsMappings los nombres de columna completos separados por comas de las columnas que se van a usar como numeric_restricts de tipo double (8 bytes), con sus alias. Con el formato cf:col->alias.
  • bigtableAppProfileId ID del perfil de aplicación de Cloud Bigtable que se va a usar para la exportación. Valor predeterminado: default.

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 Cloud Bigtable to Vector Embeddings template.
  6. En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
  7. Haz clic en Ejecutar trabajo.

CLI de gcloud

En tu shell o terminal, ejecuta la plantilla:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/Cloud_Bigtable_to_Vector_Embeddings \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       bigtableProjectId=BIGTABLE_PROJECT_ID,\
       bigtableInstanceId=BIGTABLE_INSTANCE_ID,\
       bigtableTableId=BIGTABLE_TABLE_ID,\
       filenamePrefix=FILENAME_PREFIX,\
       idColumn=ID_COLUMN,\
       embeddingColumn=EMBEDDING_COLUMN,\

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
  • BIGTABLE_PROJECT_ID: el ID del proyecto
  • BIGTABLE_INSTANCE_ID: el ID de instancia
  • BIGTABLE_TABLE_ID: el ID de la tabla
  • FILENAME_PREFIX: el prefijo del archivo JSON
  • ID_COLUMN: la columna de ID
  • EMBEDDING_COLUMN: la columna de las inserciones

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_Bigtable_to_Vector_Embeddings
{
   "jobName": "JOB_NAME",
   "parameters": {
     "bigtableProjectId": "BIGTABLE_PROJECT_ID",
     "bigtableInstanceId": "BIGTABLE_INSTANCE_ID",
     "bigtableTableId": "BIGTABLE_TABLE_ID",
     "filenamePrefix": "FILENAME_PREFIX",
     "idColumn": "ID_COLUMN",
     "embeddingColumn": "EMBEDDING_COLUMN",
   },
   "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
  • BIGTABLE_PROJECT_ID: el ID del proyecto
  • BIGTABLE_INSTANCE_ID: el ID de instancia
  • BIGTABLE_TABLE_ID: el ID de la tabla
  • FILENAME_PREFIX: el prefijo del archivo JSON
  • ID_COLUMN: la columna de ID
  • EMBEDDING_COLUMN: la columna de las inserciones

Siguientes pasos