Vue SEARCH_INDEX_COLUMN_OPTIONS
La vue INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS contient une ligne pour chaque option définie sur une colonne indexée pour la recherche dans les tables 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.adminroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.dataViewerroles/bigquery.metadataViewerroles/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.SEARCH_INDEX_COLUMN_OPTIONS, les résultats de la requête contiennent une ligne pour chaque option définie sur une colonne indexée pour la recherche dans les tables d'un ensemble de données.
La vue INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS 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 de base sur laquelle l'index est créé. |
index_name |
STRING |
Nom de l'index. |
index_column_name |
STRING |
Nom de la colonne indexée sur laquelle l'option est définie. |
option_name |
STRING |
Nom de l'option spécifiée dans la colonne. |
option_type |
STRING |
Type de l'option. |
option_value |
STRING |
Valeur de l'option. |
Pour plus de stabilité, nous vous recommandons de lister explicitement les colonnes dans vos requêtes de schéma d'informations au lieu d'utiliser un caractère générique (SELECT *). Cela évite que les requêtes ne soient interrompues si le schéma sous-jacent change.
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_INDEX_COLUMN_OPTIONS |
Niveau de l'ensemble de données | Emplacement de l'ensemble de données |
-
Facultatif :
PROJECT_ID: ID de votre Google Cloud projet. 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 index column options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS;
Exemple
L'exemple suivant définit la granularité par défaut de la colonne d'index sur COLUMN, et définit individuellement la granularité de col2 et col3 sur GLOBAL et COLUMN, respectivement. Dans cet exemple, les colonnes col2 et col3 apparaissent dans les résultats, car leur granularité est définie explicitement. La granularité de la colonne col1 n'est pas affichée, car elle utilise la granularité par défaut.
CREATE SEARCH INDEX index1 ON `mydataset.table1` ( ALL COLUMNS WITH COLUMN OPTIONS ( col2 OPTIONS(index_granularity = 'GLOBAL'), col3 OPTIONS(index_granularity = 'COLUMN') ) ) OPTIONS( default_index_column_granularity = 'COLUMN' ); SELECT index_column_name, option_name, option_type, option_value FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS WHERE index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';
Le résultat ressemble à ce qui suit :
+-------------------+-------------------+---------------+--------------+ | index_column_name | option_name | option_type | option_value | +-------------------+-------------------+---------------+--------------+ | col2 | index_granularity | STRING | GLOBAL | | col3 | index_granularity | STRING | COLUMN | +-------------------+-------------------+---------------+--------------+
L'exemple équivalent suivant, qui n'utilise pas ALL COLUMNS, définit la
granularité par défaut de la colonne d'index sur
COLUMN et définit individuellement la granularité de deux colonnes sur GLOBAL et
COLUMN respectivement :
CREATE SEARCH INDEX index1 ON `mydataset.table1` ( col1, col2 OPTIONS(index_granularity = 'GLOBAL'), col3 OPTIONS(index_granularity = 'COLUMN') ) OPTIONS( default_index_column_granularity = 'COLUMN' ); SELECT index_column_name, option_name, option_type, option_value FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS WHERE index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';
Le résultat ressemble à ce qui suit :
+-------------------+-------------------+---------------+--------------+ | index_column_name | option_name | option_type | option_value | +-------------------+-------------------+---------------+--------------+ | col2 | index_granularity | STRING | GLOBAL | | col3 | index_granularity | STRING | COLUMN | +-------------------+-------------------+---------------+--------------+