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