Questa guida spiega come importare i dati degli indici da BigQuery in
Vector Search con l'API ImportIndex, semplificando
il processo di compilazione degli indici di Vector Search direttamente dalle
tabelle BigQuery che contengono incorporamenti vettoriali.
Preparare i dati di BigQuery per l'importazione
Prima di importare i dati dell'indice, la tabella BigQuery deve avere le seguenti colonne:
- Identificatori univoci: questa colonna contiene identificatori univoci per ogni punto dati. È mappato al campo - idin Vector Search.
- Incorporamenti vettoriali: questa colonna contiene gli incorporamenti vettoriali, rappresentati come un campo - FLOATripetuto. Viene mappato al campo embedding in Vector Search.
In via facoltativa, puoi includere le seguenti colonne:
- Limitazioni: si tratta di colonne per limitazioni numeriche e di stringa, che consentono di filtrare i dati durante le ricerche. 
- Metadati: si tratta di colonne di metadati da restituire con i risultati della query dell'indice di ricerca vettoriale. 
Preparazione dell'indice Vector Search per l'importazione
Dopo aver preparato i dati BigQuery, assicurati che l'indice di ricerca vettoriale di destinazione:
- Esiste in Vector Search all'interno del progetto: questo indice funge da destinazione per i dati importati. L'indice deve essere creato all'interno del progetto. 
- È impostato per sovrascrivere o aggiungere dati: durante il processo di importazione, hai la possibilità di sovrascrivere i dati esistenti all'interno dell'indice di ricerca vettoriale o di aggiungere i dati importati da BigQuery. La sovrascrittura sostituisce i punti dati attuali con i dati importati. L'aggiunta dei nuovi dati all'indice esistente. 
- Corrispondenza della dimensionalità: la dimensionalità degli incorporamenti archiviati nei dati BigQuery deve essere identica a quella configurata per l'indice di ricerca vettoriale. 
Specifica del ImportIndexRequest
Prima di importare i dati da BigQuery, crea un oggetto ImportIndexRequest che specifichi l'indice di destinazione, se sovrascrivere i dati esistenti e la configurazione per la connessione a BigQuery. Invia questo oggetto di richiesta all'API ImportIndex.
Di seguito è riportato un esempio di ImportIndexRequest in formato JSON:
{
  "name": "projects/[PROJECT_ID]/locations/[LOCATION]/indexes/[INDEX_ID]",
  "isCompleteOverwrite": true,
  "config": {
    "bigQuerySourceConfig": {
      "tablePath": "bq://[PROJECT_ID].[DATASET_ID].[TABLE_ID]",
      "datapointFieldMapping": {
        "idColumn": "[ID_COLUMN_NAME]",
        "embeddingColumn": "[EMBEDDING_COLUMN_NAME]",
        "restricts": [
          {
            "namespace": "[RESTRICT_NAMESPACE]",
            "allowColumn": ["[RESTRICT_ALLOW_COLUMN_NAME]"],
            "denyColumn": ["[RESTRICT_DENY_COLUMN_NAME]"]
          }
        ],
        "numericRestricts": [
          {
            "namespace": "[RESTRICT_NAMESPACE]",
            "valueColumn": "[RESTRICT_VALUE_COLUMN_NAME]",
            "valueType": "INT"
          }
        ],
        "metadataColumns": ["METADATA_COLUMN1", "METADATA_COLUMN2", ...]
      }
    }
  }
}
- name: il nome completo della risorsa dell'indice Vector Search in cui vuoi importare i dati.
- isCompleteOverwrite: un valore booleano che indica se sovrascrivere i dati esistenti nell'indice. Imposta su- trueper sostituire i dati esistenti.
- config: contiene la configurazione dell'origine BigQuery.- bigquerySourceConfig: specifica i dettagli per la connessione alla tabella BigQuery.
- tablePath: il percorso completo della tabella BigQuery nel formato- bq://[PROJECT_ID].[DATASET_ID].[TABLE_ID].
- datapointFieldMapping: mappa le colonne della tabella BigQuery ai campi di Vector Search.- idColumn: il nome della colonna contenente gli identificatori univoci.
- embeddingColumn: il nome della colonna contenente gli incorporamenti vettoriali.
- restricts: (facoltativo) specifica le restrizioni della stringa.
- namespace: lo spazio dei nomi per la limitazione.
- allowColumn: l'array contenente i nomi delle colonne per i valori consentiti per la restrizione.
- denyColumn: l'array contenente i nomi delle colonne per i valori negati per la limitazione.
- numericRestricts: (facoltativo) specifica le limitazioni numeriche.
- namespace: lo spazio dei nomi per la limitazione numerica.
- value_column: il nome della colonna contenente valori numerici.
- value_type: il tipo di valore numerico, ad esempio- INT,- FLOATo- DOUBLE.
- metadataColumns: (facoltativo) i campi dei metadati da includere nell'incorporamento delle funzionalità. Questi campi di metadati possono essere recuperati dai risultati di ricerca dell'indice, ma non influiscono sulla ricerca stessa. Ad esempio, non è possibile eseguire il filtraggio sui campi dei metadati.
 
 
Esecuzione dell'importazione
Una volta creato un ImportIndexRequest, invialo all'endpoint API ImportIndex. Viene attivato il processo di importazione, che esporta i dati da BigQuery e li inserisce nell'indice di Vector Search. ImportIndex restituisce un'operazione a lunga esecuzione. Puoi utilizzare l'ID operazione per monitorare l'avanzamento dell'operazione di importazione.
Una volta memorizzati, i dati importati risiedono nell'indice di Vector Search e non sono distinguibili da quelli inseriti con altri metodi. L'indice può continuare a essere gestito utilizzando le API Vector Search standard.
Il seguente esempio di codice mostra un risultato della query con
return_full_datapoint impostato su true e la configurazione del connettore BigQuery
che specifica una restrizione genre, una restrizione numerica year
e le colonne dei metadati title e description.
nearest_neighbors {
  neighbors {
    datapoint {
      datapoint_id: "4"
      feature_vector: 0.7
      feature_vector: 0.8
      restricts {
        namespace: "genre"
        allow_list: "Drama"
      }
      embedding_metadata {
        title: "A Movie"
        description: "The story of A Movie..."
      }
      crowding_tag {
        crowding_attribute: "0"
      }
      numeric_restricts {
        namespace: "year"
        value_int: 1942
      }
    }
    distance: 0.75
  }
}