Vista de SEARCH_INDEXES
La vista INFORMATION_SCHEMA.SEARCH_INDEXES
contiene una fila para cada Índice de la Búsqueda en un conjunto de datos.
Permisos necesarios
Para ver los metadatos del índice de búsqueda, necesitas el permiso bigquery.tables.get
o bigquery.tables.list
de Identity and Access Management (IAM) en la tabla con el índice. Cada una de los siguientes roles predefinidos de IAM incluye, al menos, uno de estos permisos:
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
roles/bigquery.user
Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.
Esquema
Cuando consultas la vistaINFORMATION_SCHEMA.SEARCH_INDEXES
, los resultados de la consulta
contienen una fila por cada Índice de la Búsqueda de un conjunto de datos.
La vista INFORMATION_SCHEMA.SEARCH_INDEXES
tiene el siguiente esquema:
Nombre de la columna | Tipo de datos | Valor |
---|---|---|
index_catalog |
STRING |
El nombre del proyecto que contiene el conjunto de datos. |
index_schema |
STRING |
Es el nombre del conjunto de datos que contiene el índice. |
table_name |
STRING |
El nombre de la tabla base en la que se crea el índice. |
index_name |
STRING |
Es el nombre del índice. |
index_status |
STRING |
El estado del índice: ACTIVE , PENDING
DISABLEMENT , TEMPORARILY DISABLED , o
PERMANENTLY DISABLED .
|
creation_time |
TIMESTAMP |
La hora en la que se creó el índice. |
last_modification_time |
TIMESTAMP |
La última vez que se modificó la configuración del índice. Por ejemplo, borrar una columna indexada. |
last_refresh_time |
TIMESTAMP |
La última vez que se indexaron los datos de la tabla. Un valor NULL significa que el índice aún no está disponible. |
disable_time |
TIMESTAMP |
La hora en la que el estado del índice se estableció en DISABLED . El valor es NULL si el estado del índice no es DISABLED . |
disable_reason |
STRING |
El motivo por el que se inhabilitó el índice. NULL si el estado del índice no es DISABLED . |
DDL |
STRING |
La declaración DDL que se usa para crear el índice. |
coverage_percentage |
INTEGER |
El porcentaje aproximado de datos de tabla que se indexaron. 0% significa que el índice no se puede usar en una consulta SEARCH , incluso si ya se indexaron algunos datos. |
unindexed_row_count |
INTEGER |
La cantidad de filas en la tabla base que no se indexaron. |
total_logical_bytes |
INTEGER |
La cantidad de bytes lógicos facturables para el índice. |
total_storage_bytes |
INTEGER |
La cantidad de bytes de almacenamiento facturables para el índice. |
analyzer |
STRING |
El analizador de texto que se usará para generar tokens para el índice de búsqueda. |
Permiso y sintaxis
Las consultas realizadas a esta vista deben tener un calificador de conjunto de datos. En la siguiente tabla, se explica el permiso de la región para esta vista:
Nombre de la vista | Permiso del recurso | Permiso de la región |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEXES |
Nivel de conjunto de datos | Ubicación del conjunto de datos |
Opcional: PROJECT_ID
: el ID del proyecto de Google Cloud. Si no se especifica, se usa el proyecto predeterminado.
DATASET_ID
: Es el ID del conjunto de datos. Para obtener más información, consulta calificador de conjunto de datos.
Ejemplo
-- Returns metadata for search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEXES;
Ejemplo
En el siguiente ejemplo, se muestran todos los índices de búsqueda activos en las tablas del conjunto de datos my_dataset
, ubicado en el proyecto my_project
. Incluye los nombres, las declaraciones DDL que se usan para crearlos, el porcentaje de cobertura y el analizador de texto. Si una tabla base indexada tiene menos de 10 GB, su índice no se propaga. En ese caso, coverage_percentage
será 0.
SELECT table_name, index_name, ddl, coverage_percentage, analyzer
FROM my_project.my_dataset.INFORMATION_SCHEMA.SEARCH_INDEXES
WHERE index_status = 'ACTIVE';
Los resultados deberían verse así:
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+ | 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 | +-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+