Visualizzazione VECTOR_INDEXES

La visualizzazione INFORMATION_SCHEMA.VECTOR_INDEXES contiene una riga per ogni indice vettoriale in un set di dati.

Autorizzazioni obbligatorie

Per visualizzare i metadati dell'indice vettoriale, devi disporre dell'autorizzazione bigquery.tables.get o bigquery.tables.list Identity and Access Management (IAM) sulla tabella con l'indice. Ciascuno dei seguenti ruoli IAM predefiniti include almeno una di queste autorizzazioni:

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer
  • roles/bigquery.user

Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui una query sulla visualizzazione INFORMATION_SCHEMA.VECTOR_INDEXES, i risultati della query contengono una riga per ogni indice vettoriale in un set di dati.

La vista INFORMATION_SCHEMA.VECTOR_INDEXES ha lo schema seguente:

Nome colonna Tipo di dati Valore
index_catalog STRING Il nome del progetto che contiene il set di dati.
index_schema STRING Il nome del set di dati che contiene l'indice.
table_name STRING Il nome della tabella su cui viene creato l'indice.
index_name STRING Il nome dell'indice vettoriale.
index_status STRING Lo stato dell'indice: ACTIVE, PENDING DISABLEMENT, TEMPORARILY DISABLED o PERMANENTLY DISABLED.
  • ACTIVE indica che l'indice è utilizzabile o in fase di creazione. Consulta coverage_percentage per visualizzare l'avanzamento della creazione dell'indice.
  • PENDING DISABLEMENT significa che le dimensioni totali delle tabelle indicizzate superano il limite della tua organizzazione; l'indice è in coda per l'eliminazione. In questo stato, l'indice è utilizzabile nelle query di ricerca vettoriale e ti viene addebitato lo spazio di archiviazione dell'indice vettoriale.
  • TEMPORARILY DISABLED significa che le dimensioni totali delle tabelle indicizzate superano il limite della tua organizzazione oppure che la tabella indicizzata è inferiore a 10 MB. In questo stato, l'indice non viene utilizzato nelle query di ricerca vettoriale e non ti vengono addebitati costi per lo spazio di archiviazione dell'indice vettoriale.
  • PERMANENTLY DISABLED indica che è stata apportata una modifica dello schema incompatibile alla tabella indicizzata.
creation_time TIMESTAMP L'ora in cui è stato creato l'indice.
last_modification_time TIMESTAMP L'ultima volta che la configurazione dell'indice è stata modificata. Ad esempio, l'eliminazione di una colonna indicizzata.
last_refresh_time TIMESTAMP L'ultima volta che i dati della tabella sono stati indicizzati. Un valore NULL indica che l'indice non è ancora disponibile.
disable_time TIMESTAMP L'ora in cui lo stato dell'indice è stato impostato su DISABLED. Il valore è NULL se lo stato dell'indice non è DISABLED.
disable_reason STRING Il motivo per cui l'indice è stato disattivato. NULL se lo stato dell'indice non è DISABLED.
DDL STRING L'istruzione DDL (Data Definition Language) utilizzata per creare l'indice.
coverage_percentage INTEGER La percentuale approssimativa dei dati della tabella che è stata indicizzata. 0% significa che l'indice non è utilizzabile in una query VECTOR_SEARCH, anche se alcuni dati sono già stati indicizzati.
unindexed_row_count INTEGER Il numero di righe nella tabella che non sono state indicizzate.
total_logical_bytes INTEGER Il numero di byte logici fatturabili per l'indice.
total_storage_bytes INTEGER Il numero di byte di spazio di archiviazione fatturabili per l'indice.

Per garantire la stabilità, ti consigliamo di elencare esplicitamente le colonne nelle query dello schema informativo anziché utilizzare un carattere jolly (SELECT *). L'elenco esplicito delle colonne impedisce l'interruzione delle query se lo schema sottostante cambia.

Ambito e sintassi

Le query su questa visualizzazione devono avere un qualificatore del set di dati. La tabella seguente spiega l'ambito della regione per questa visualizzazione:

Visualizza nome Ambito risorsa Ambito regione
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VECTOR_INDEXES Livello del set di dati Posizione del set di dati

Sostituisci quanto segue:
  • (Facoltativo) PROJECT_ID: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito.
  • DATASET_ID: l'ID del set di dati. Per maggiori informazioni, vedi Qualificatore del set di dati.

Esempio

-- Returns metadata for vector indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.VECTOR_INDEXES;

Esempio

L'esempio seguente mostra tutti gli indici vettoriali attivi nelle tabelle del set di dati my_dataset, che si trova nel progetto my_project. Sono inclusi i nomi, le istruzioni DDL utilizzate per crearli e la percentuale di copertura. Se una tabella di base indicizzata è inferiore a 10 MB, il relativo indice non viene compilato, nel qual caso il valore di coverage_percentage è 0.

SELECT table_name, index_name, ddl, coverage_percentage
FROM my_project.my_dataset.INFORMATION_SCHEMA.VECTOR_INDEXES
WHERE index_status = 'ACTIVE';

Il risultato è simile al seguente:

+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table_name | index_name | ddl                                                                                             | coverage_percentage |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table1     | indexa     | CREATE VECTOR INDEX `indexa` ON `my_project.my_dataset.table1`(embeddings)                      | 100                 |
|            |            | OPTIONS (distance_type = 'EUCLIDEAN', index_type = 'IVF', ivf_options = '{"num_lists": 100}')   |                     |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table2     | indexb     | CREATE VECTOR INDEX `indexb` ON `my_project.my_dataset.table2`(vectors)                         | 42                  |
|            |            | OPTIONS (distance_type = 'COSINE', index_type = 'IVF', ivf_options = '{"num_lists": 500}')      |                     |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table3     | indexc     | CREATE VECTOR INDEX `indexc` ON `my_project.my_dataset.table3`(vectors)                         | 98                  |
|            |            | OPTIONS (distance_type = 'DOT_PRODUCT', index_type = 'TREE_AH',                                 |                     |
|            |            |          tree_ah_options = '{"leaf_node_embedding_count": 1000, "normalization_type": "NONE"}') |                     |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+