Vue SEARCH_INDEXES

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

Autorisations requises

Pour afficher les métadonnées d'index de recherche, 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.SEARCH_INDEXES, les résultats de la requête contiennent une ligne pour chaque index de recherche d'un ensemble de données.

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

Nom de la colonne Type de données Value
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 de base sur laquelle l'index est créé.
index_name STRING Nom de l'index.
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 de base 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 et le stockage des index de recherche vous est facturé.
  • TEMPORARILY DISABLED signifie que la taille totale des tables indexées de base dépasse la limite de votre organisation, ou que la table indexée de base est inférieure à 10 Go. Dans cet état, l'index n'est pas utilisé dans les requêtes de recherche et le stockage des index de recherche ne vous est pas facturé.
  • PERMANENTLY DISABLED signifie qu'il y a une modification de schéma incompatible avec la table de base. Par exemple, remplacer le type d'une colonne indexée de STRING par INT64.
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 Instruction LDD 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 SEARCH, même si certaines données ont déjà été indexées.
unindexed_row_count INTEGER Nombre de lignes de la table de base 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.
analyzer STRING Analyseur de texte à utiliser pour générer des jetons pour l'index de recherche.

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.SEARCH_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 search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEXES;

Exemple

L'exemple suivant montre tous les index de recherche 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, leur pourcentage de couverture et leur analyseur de texte. Si une table de base indexée est inférieure à 10 Go, son index n'est pas renseigné, auquel cas coverage_percentage est égal à 0.

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

Les résultats doivent se présenter sous la forme suivante :

+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
| table_name  | index_name  | ddl                                                                                  | coverage_percentage | analyzer       |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
| small_table | names_index | CREATE SEARCH INDEX `names_index` ON `my_project.my_dataset.small_table`(names)      | 0                   | NO_OP_ANALYZER |
| large_table | logs_index  | CREATE SEARCH INDEX `logs_index` ON `my_project.my_dataset.large_table`(ALL COLUMNS) | 100                 | LOG_ANALYZER   |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+