Modifiche in tempo reale di Bigtable al modello di ricerca vettoriale

Questo modello crea una pipeline di streaming per trasmettere i flussi di record delle modifiche dei dati di Bigtable e scriverli in Vertex AI Vector Search utilizzando Dataflow Runner V2.

Requisiti della pipeline

  • L'istanza di origine Bigtable deve esistere.
  • La tabella di origine Bigtable deve esistere e deve avere gli stream di modifiche in tempo reale abilitati.
  • Il profilo dell'applicazione Bigtable deve esistere.
  • Il percorso dell'indice Vector Search deve esistere.

Parametri del modello

Parametri obbligatori

  • embeddingColumn: il nome completo della colonna in cui sono archiviati gli incorporamenti. Nel formato cf:col.
  • embeddingByteSize: le dimensioni in byte di ogni voce nell'array di incorporamenti. Utilizza 4 per Float e 8 per Double. Il valore predefinito è 4.
  • vectorSearchIndex: l'indice Vector Search in cui verranno trasmessi i flussi di modifiche, nel formato "projects/{projectID}/locations/{region}/indexes/{indexID}" (senza spazi iniziali o finali). Ad esempio, projects/123/locations/us-east1/indexes/456.
  • bigtableChangeStreamAppProfile: l'ID del profilo dell'applicazione Bigtable. Il profilo dell'applicazione deve utilizzare il routing a cluster singolo e consentire le transazioni su riga singola.
  • bigtableReadInstanceId: l'ID dell'istanza Bigtable di origine.
  • bigtableReadTableId: l'ID della tabella Bigtable di origine.

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 job univoco.
  4. (Facoltativo) Per Endpoint regionale, 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à Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona il modello Stream di modifiche di Bigtable a Vector Search.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud CLI

Nella shell o nel terminale, esegui il modello:

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/ \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       embeddingColumn=EMBEDDING_COLUMN,\
       embeddingByteSize=EMBEDDING_BYTE_SIZE,\
       vectorSearchIndex=VECTOR_SEARCH_INDEX,\
       bigtableChangeStreamAppProfile=BIGTABLE_CHANGE_STREAM_APP_PROFILE,\
       bigtableReadInstanceId=BIGTABLE_READ_INSTANCE_ID,\
       bigtableReadTableId=BIGTABLE_READ_TABLE_ID,\

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco 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
  • EMBEDDING_COLUMN: la colonna di incorporamento
  • EMBEDDING_BYTE_SIZE: le dimensioni in byte dell'array di incorporamenti. Può essere 4 o 8.
  • VECTOR_SEARCH_INDEX: il percorso dell'indice della Ricerca vettoriale
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE: l'ID del profilo dell'applicazione Bigtable
  • BIGTABLE_READ_INSTANCE_ID: l'ID dell'istanza Bigtable di origine
  • BIGTABLE_READ_TABLE_ID: l'ID della tabella Bigtable di origine

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta HTTP POST. Per saperne di più sull' API e sui relativi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "embeddingColumn": "EMBEDDING_COLUMN",
       "embeddingByteSize": "EMBEDDING_BYTE_SIZE",
       "vectorSearchIndex": "VECTOR_SEARCH_INDEX",
       "bigtableChangeStreamAppProfile": "BIGTABLE_CHANGE_STREAM_APP_PROFILE",
       "bigtableReadInstanceId": "BIGTABLE_READ_INSTANCE_ID",
       "bigtableReadTableId": "BIGTABLE_READ_TABLE_ID",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/",
     "environment": { "maxWorkers": "10" }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto in cui vuoi eseguire il job Dataflow Google Cloud
  • JOB_NAME: un nome job univoco 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
  • EMBEDDING_COLUMN: la colonna di incorporamento
  • EMBEDDING_BYTE_SIZE: le dimensioni in byte dell'array di incorporamenti. Può essere 4 o 8.
  • VECTOR_SEARCH_INDEX: il percorso dell'indice della Ricerca vettoriale
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE: l'ID del profilo dell'applicazione Bigtable
  • BIGTABLE_READ_INSTANCE_ID: l'ID dell'istanza Bigtable di origine
  • BIGTABLE_READ_TABLE_ID: l'ID della tabella Bigtable di origine