Modello da Spanner a Vertex AI Vector Search

Il modello per i file da Spanner a Vertex AI Vector Search su Cloud Storage crea una pipeline batch che esporta i dati degli incorporamenti vettoriali da una tabella Spanner a Cloud Storage in formato JSON. Utilizza i parametri del modello per specificare la cartella Cloud Storage in cui esportare gli embedding vettoriali. La cartella Cloud Storage contiene l'elenco dei file .json esportati, che rappresentano gli incorporamenti vettoriali in un formato supportato dall'indice Vertex AI Vector Search.

Per maggiori informazioni, consulta la pagina Formato e struttura dei dati di input.

Requisiti della pipeline

  • Il database Spanner deve esistere.
  • Deve esistere il bucket Cloud Storage per l'output dei dati.
  • Oltre ai ruoli Identity and Access Management (IAM) necessari per eseguire i job Dataflow, devi disporre dei ruoli IAM richiesti per leggere i dati di Spanner e scrivere nel bucket Cloud Storage.

Parametri del modello

Parametri obbligatori

  • spannerProjectId: l'ID progetto dell'istanza Spanner.
  • spannerInstanceId: l'ID dell'istanza Spanner da cui esportare gli incorporamenti vettoriali.
  • spannerDatabaseId: l'ID del database Spanner da cui esportare gli incorporamenti vettoriali.
  • spannerTable: la tabella Spanner da cui leggere.
  • spannerColumnsToExport: un elenco separato da virgole delle colonne richieste per l'indice Vertex AI Vector Search. Le colonne ID e incorporamento sono obbligatorie per la ricerca vettoriale. Se i nomi delle colonne non corrispondono alla struttura di input dell'indice Vertex AI Vector Search, crea mappature delle colonne utilizzando gli alias. Se i nomi delle colonne non corrispondono al formato previsto da Vertex AI, utilizza la notazione da:a. Ad esempio, se hai colonne denominate id e my_embedding, specifica id, my_embedding:embedding.
  • gcsOutputFolder: la cartella Cloud Storage in cui scrivere i file di output. Il percorso deve terminare con una barra. Ad esempio, gs://your-bucket/folder1/.
  • gcsOutputFilePrefix: il prefisso del nome file per la scrittura dei file di output. Ad esempio, vector-embeddings.

Parametri facoltativi

  • spannerHost: l'endpoint Spanner da chiamare nel modello. Il valore predefinito è https://batch-spanner.googleapis.com. Ad esempio, https://batch-spanner.googleapis.com.
  • spannerVersionTime: se impostato, specifica l'ora in cui deve essere acquisita la versione del database. Il valore è una stringa nel formato di data RFC-3339 in formato ora Unix. Ad esempio: 1990-12-31T23:59:60Z. Il timestamp deve essere nel passato e si applica la massima obsolescenza del timestamp (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness). Se non impostato, viene utilizzato un limite rigido (https://cloud.google.com/spanner/docs/timestamp-bounds#strong) per leggere i dati più recenti. Il valore predefinito è empty. Ad esempio, 1990-12-31T23:59:60Z.
  • spannerDataBoostEnabled: se impostato su true, il modello utilizza il computing on demand di Spanner. Il job di esportazione viene eseguito su risorse di computing indipendenti che non influiscono sui carichi di lavoro Spanner attuali. L'utilizzo di questa opzione comporta costi aggiuntivi in Spanner. Per saperne di più, consulta la panoramica di Spanner Data Boost (https://cloud.google.com/spanner/docs/databoost/databoost-overview). Valore predefinito: false.
  • spannerPriority: la priorità della richiesta per le chiamate Spanner. I valori consentiti sono HIGH, MEDIUM e LOW. Il valore predefinito è MEDIUM.

Esegui il modello

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. La regione predefinita è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta Località di Dataflow.

  5. Dal menu a discesa Modello di dataflow, seleziona the Spanner to Vertex AI Vector Search files on Cloud Storage template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

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,\

Sostituisci quanto segue:

  • JOB_NAME: un nome univoco del job a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

  • REGION_NAME: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • SPANNER_PROJECT_ID: l'ID progetto Spanner
  • SPANNER_INSTANCE_ID: l'ID istanza Spanner
  • SPANNER_DATABASE_ID: l'ID database Spanner
  • SPANNER_TABLE: la tabella Spanner
  • SPANNER_COLUMNS_TO_EXPORT: le colonne da esportare dalla tabella Spanner
  • GCS_OUTPUT_FOLDER: la cartella Cloud Storage in cui inserire i file di output
  • GCS_OUTPUT_FILE_PREFIX: il prefisso dei file di output in Cloud Storage

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per ulteriori informazioni sull'API e sui relativi ambiti di autorizzazione, 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" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome univoco del job a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

  • LOCATION: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • SPANNER_PROJECT_ID: l'ID progetto Spanner
  • SPANNER_INSTANCE_ID: l'ID istanza Spanner
  • SPANNER_DATABASE_ID: l'ID database Spanner
  • SPANNER_TABLE: la tabella Spanner
  • SPANNER_COLUMNS_TO_EXPORT: le colonne da esportare dalla tabella Spanner
  • GCS_OUTPUT_FOLDER: la cartella Cloud Storage in cui inserire i file di output
  • GCS_OUTPUT_FILE_PREFIX: il prefisso dei file di output in Cloud Storage

Passaggi successivi