Modello di ricerca vettoriale da Bigtable a Vertex AI

Il modello per i file Bigtable e Vertex AI Vector Search su Cloud Storage crea una pipeline batch che legge i dati da una tabella Bigtable e li scrive in un bucket Cloud Storage in formato JSON. Utilizza questo modello per gli incorporamenti vettoriali.

Requisiti della pipeline

  • La tabella Bigtable deve esistere.
  • Il bucket Cloud Storage di output deve esistere prima di eseguire la pipeline.

Parametri del modello

Parametro Descrizione
bigtableProjectId L'ID per il progetto Google Cloud che contiene l'istanza Bigtable da cui vuoi leggere i dati.
bigtableInstanceId L'ID dell'istanza Bigtable che contiene la tabella.
bigtableTableId L'ID della tabella Bigtable da leggere.
filenamePrefix Prefisso del nome file JSON. Ad esempio: table1-. Se non viene fornito alcun valore, il valore predefinito è part.
idColumn Il nome completo della colonna in cui è archiviato l'ID. Nel formato cf:col o _key.
embeddingColumn Il nome completo della colonna in cui sono archiviati gli incorporamenti. Nel formato cf:col o _key.
outputDirectory (Facoltativo) Il percorso di Cloud Storage in cui sono archiviati i file JSON di output. Ad esempio: gs://your-bucket/your-path/.
crowdingTagColumn (Facoltativo) Il nome completo della colonna in cui è archiviato il tag di crowding. Nel formato cf:col o _key.
embeddingByteSize Facoltativo: la dimensione in byte di ogni voce nell'array degli incorporamenti. Per i numeri in virgola mobile, utilizza il valore 4. Per il valore doppio, utilizza il valore 8. Il valore predefinito è: 4.
allowRestrictsMappings Facoltativo: i nomi delle colonne completi e separati da virgole per le colonne da utilizzare come limitazioni da allow, con i relativi alias. Nel formato cf:col->alias.
denyRestrictsMappings Facoltativo: i nomi delle colonne completi e separati da virgole per le colonne da utilizzare come limitazioni da deny, con i relativi alias. Nel formato cf:col->alias.
intNumericRestrictsMappings (Facoltativo) I nomi delle colonne completi e separati da virgole delle colonne da utilizzare come numero intero numeric_restricts, con i relativi alias. Nel formato cf:col->alias.
floatNumericRestrictsMappings Facoltativo: i nomi delle colonne completi e separati da virgole delle colonne da utilizzare come numeri in virgola mobile (4 byte) numeric_restricts, con i relativi alias. Nel formato cf:col->alias.
doubleNumericRestrictsMappings Facoltativo: i nomi delle colonne completi e separati da virgole delle colonne da utilizzare come doppie (8 byte) numeric_restricts, con i relativi alias. Nel formato cf:col->alias.

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 di regioni in cui è possibile eseguire un job Dataflow, consulta Località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Cloud Bigtable to Vector Embeddings template.
  6. Inserisci i valori parametro negli appositi campi.
  7. Fai clic su Esegui job.

Interfaccia a riga di comando gcloud

Nella shell o nel terminale, esegui il modello:

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

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:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella padre non con data del bucket: gs://dataflow-templates-REGION_NAME/latest/
    • il nome della versione, ad esempio 2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che è possibile trovare nidificata nella rispettiva cartella principale con data nel bucket: gs://dataflow-templates-REGION_NAME/
  • REGION_NAME: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: ID progetto
  • BIGTABLE_INSTANCE_ID: l'ID istanza
  • BIGTABLE_TABLE_ID: l'ID tabella
  • FILENAME_PREFIX: il prefisso del file JSON
  • ID_COLUMN: la colonna ID
  • EMBEDDING_COLUMN: la colonna degli incorporamenti

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori 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_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" }
}

Sostituisci quanto segue:

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

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella padre non con data del bucket: gs://dataflow-templates-REGION_NAME/latest/
    • il nome della versione, ad esempio 2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che è possibile trovare nidificata nella rispettiva cartella principale con data nel bucket: gs://dataflow-templates-REGION_NAME/
  • LOCATION: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: ID progetto
  • BIGTABLE_INSTANCE_ID: l'ID istanza
  • BIGTABLE_TABLE_ID: l'ID tabella
  • FILENAME_PREFIX: il prefisso del file JSON
  • ID_COLUMN: la colonna ID
  • EMBEDDING_COLUMN: la colonna degli incorporamenti

Passaggi successivi