Vista SEARCH_INDEXES

La vista INFORMATION_SCHEMA.SEARCH_INDEXES contiene una fila por cada índice de búsqueda de un conjunto de datos.

Permisos obligatorios

Para ver los metadatos del índice de búsqueda, necesitas el permiso de gestión de identidades y accesos (IAM) bigquery.tables.get o bigquery.tables.list en la tabla con el índice. Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos 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 los permisos de BigQuery, consulta Control de acceso con gestión de identidades y accesos.

Esquema

Cuando consultas la vista INFORMATION_SCHEMA.SEARCH_INDEXES, los resultados de la consulta contienen una fila por cada índice de 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 Nombre del proyecto que contiene el conjunto de datos.
index_schema STRING Nombre del conjunto de datos que contiene el índice.
table_name STRING Nombre de la tabla base en la que se crea el índice.
index_name STRING Nombre del índice.
index_status STRING Estado del índice: ACTIVE, PENDING DISABLEMENT, TEMPORARILY DISABLED o PERMANENTLY DISABLED.
  • ACTIVE significa que el índice se puede usar o se está creando. Consulta la coverage_percentage para ver el progreso de la creación del índice.
  • PENDING DISABLEMENT significa que el tamaño total de las tablas base indexadas supera el límite de tu organización y que el índice se ha puesto en cola para su eliminación. Mientras se encuentre en este estado, el índice se puede usar en consultas de búsqueda y se le cobrará por el almacenamiento del índice de búsqueda.
  • TEMPORARILY DISABLED significa que el tamaño total de las tablas base indexadas supera el límite de tu organización o que la tabla base indexada es inferior a 10 GB. En este estado, el índice no se usa en las consultas de búsqueda y no se te cobra por el almacenamiento del índice de búsqueda.
  • PERMANENTLY DISABLED significa que se ha producido un cambio de esquema incompatible en la tabla base, como cambiar el tipo de una columna indexada de STRING a INT64.
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, eliminar 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 a la que se definió el estado del índice como DISABLED. El valor es NULL si el estado del índice no es DISABLED.
disable_reason STRING Motivo por el que se ha inhabilitado el índice. NULL si el estado del índice no es DISABLED.
DDL STRING La instrucción DDL usada para crear el índice.
coverage_percentage INTEGER El porcentaje aproximado de datos de la tabla que se ha indexado. 0 % significa que el índice no se puede usar en una consulta SEARCH, aunque ya se hayan indexado algunos datos.
unindexed_row_count INTEGER Número de filas de la tabla base que no se han indexado.
total_logical_bytes INTEGER Número de bytes lógicos facturables del índice.
total_storage_bytes INTEGER Número de bytes de almacenamiento facturables del índice.
analyzer STRING El analizador de texto que se va a usar para generar tokens para el índice de búsqueda.

Ámbito y sintaxis

Las consultas de esta vista deben tener un calificador de conjunto de datos. En la siguiente tabla se explica el ámbito de la región de esta vista:

Nombre de la vista Ámbito de los recursos Ámbito de la región
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEXES Nivel del conjunto de datos Ubicación del conjunto de datos
Sustituye lo siguiente:
  • Opcional: PROJECT_ID: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado.
  • DATASET_ID: el ID de tu 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 de las tablas del conjunto de datos my_dataset, ubicado en el proyecto my_project. Incluye sus nombres, las instrucciones DDL usadas para crearlos, su porcentaje de cobertura y su analizador de texto. Si una tabla base indexada tiene menos de 10 GB, su índice no se rellena, en cuyo caso coverage_percentage es 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 tener este aspecto:

+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
| 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   |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+