Vue VECTOR_INDEXES

La vue INFORMATION_SCHEMA.VECTOR_INDEXES contient une ligne pour chaque index vectoriel d'un ensemble de données.

Autorisations requises

Pour afficher les métadonnées d'index vectoriel, vous devez disposer de l'autorisation IAM (gestion de l'authentification et des accès) bigquery.tables.get ou bigquery.tables.list sur la table contenant l'index. Chacun des rôles IAM prédéfinis suivants inclut au moins l'une de ces autorisations :

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

Pour plus d'informations sur les autorisations BigQuery, consultez la page Contrôle des accès avec IAM.

Schéma

Lorsque vous interrogez la vue INFORMATION_SCHEMA.VECTOR_INDEXES, les résultats de la requête contiennent une ligne pour chaque index vectoriel d'un ensemble de données.

La vue INFORMATION_SCHEMA.VECTOR_INDEXES présente le schéma suivant :

Nom de la colonne Type de données Valeur
index_catalog STRING Nom du projet qui contient l'ensemble de données.
index_schema STRING Nom de l'ensemble de données contenant l'index.
table_name STRING Nom de la table sur laquelle l'index est créé.
index_name STRING Nom de l'index vectoriel.
index_status STRING État de l'index : ACTIVE, PENDING DISABLEMENT, TEMPORARILY DISABLED ou PERMANENTLY DISABLED.
  • ACTIVE signifie que l'index est utilisable ou en cours de création. Reportez-vous à la section coverage_percentage pour voir la progression de la création de l'index.
  • PENDING DISABLEMENT signifie que la taille totale des tables indexées dépasse la limite de votre organisation. L'index est mis en file d'attente pour suppression. Dans cet état, l'index est utilisable dans les requêtes de recherche vectorielle et le stockage des index vectoriels vous est facturé.
  • TEMPORARILY DISABLED signifie que la taille totale des tables indexées dépasse la limite de votre organisation, ou que la table indexée est inférieure à 10 Mo. Dans cet état, l'index n'est pas utilisé dans les requêtes de recherche vectorielle, et le stockage d'index vectoriels ne vous est pas facturé.
  • PERMANENTLY DISABLED signifie qu'il y a une modification de schéma incompatible sur la table indexée.
creation_time TIMESTAMP Heure de création de l'index.
last_modification_time TIMESTAMP Heure de la dernière modification de la configuration d'index. Par exemple, la suppression d'une colonne indexée.
last_refresh_time TIMESTAMP Date et heure de la dernière indexation de la table. Une valeur NULL signifie que l'index n'est pas encore disponible.
disable_time TIMESTAMP Heure à laquelle l'état de l'index a été défini sur DISABLED. La valeur est NULL si l'état de l'index n'est pas DISABLED.
disable_reason STRING Raison de la désactivation de l'index. NULL si l'état de l'index n'est pas DISABLED.
DDL STRING L'instruction LDD (langage de définition de données) est utilisée pour créer l'index.
coverage_percentage INTEGER Pourcentage approximatif des données de table qui ont été indexées. Une valeur de 0 % signifie que l'index n'est pas utilisable dans une requête VECTOR_SEARCH, même si certaines données ont déjà été indexées.
unindexed_row_count INTEGER Nombre de lignes de la table qui n'ont pas été indexées.
total_logical_bytes INTEGER Nombre d'octets logiques facturables pour l'index.
total_storage_bytes INTEGER Nombre d'octets de stockage facturables de l'index.

Champ d'application et syntaxe

Les requêtes exécutées sur cette vue doivent être associées à un qualificatif d'ensemble de données. Le tableau suivant explique le champ d'application de la région pour cette vue :

Nom de la vue Champ d'application de la ressource Champ d'application de la région
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VECTOR_INDEXES Niveau de l'ensemble de données Emplacement d'un ensemble de données

Remplacez les éléments suivants :

  • Facultatif : PROJECT_ID : ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
DATASET_ID : ID de votre ensemble de données. Pour en savoir plus, consultez la section Qualificatif d'ensemble de données.

Exemple

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

Exemple

L'exemple suivant montre tous les index vectoriels actifs sur les tables de l'ensemble de données my_dataset, situées dans le projet my_project. Cela inclut leur nom, les instructions LDD utilisées pour les créer et leur pourcentage de couverture. Si une table de base indexée est inférieure à 10 Mo, son index n'est pas renseigné, auquel cas la valeur de coverage_percentage est égale à 0.

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

Le résultat ressemble à ce qui suit :

+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| 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"}') |                     |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+