Vista de SEARCH_INDEX_COLUMN_OPTIONS

La vista INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS contiene una fila para cada opción establecida en una columna indexada de la búsqueda en las tablas de 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 vista INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS, los resultados de la consulta contienen una fila por cada opción establecida en una columna indexada de búsqueda en las tablas de un conjunto de datos.

La vista INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS 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.
column_name STRING Es el nombre de la columna indexada en la que se establece la opción.
option_name STRING Es el nombre de la opción especificada en la columna.
option_type STRING Es el tipo de la opción.
option_value STRING El valor de la opción.

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_INDEX_COLUMN_OPTIONS Nivel de conjunto de datos Ubicación del conjunto de datos
Reemplaza lo siguiente:
  • Opcional: PROJECT_ID es el ID de tu 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 index column options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS;

Ejemplo

En el siguiente ejemplo, se establece el nivel de detalle predeterminado de la columna de índice en COLUMN y, luego, se establece de forma individual el nivel de detalle de col2 y col3 en GLOBAL y COLUMN, respectivamente. En este ejemplo, las columnas col2 y col3 aparecen en los resultados porque su nivel de detalle se establece de forma explícita. No se muestra el nivel de detalle de la columna col1 porque usa el nivel de detalle predeterminado.

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';

El resultado es similar al siguiente:

+-------------+-------------------+---------------+--------------+
| column_name |  option_name      | option_type   | option_value |
+-------------+-------------------+---------------+--------------+
| col2        | index_granularity | STRING        | GLOBAL       |
| col3        | index_granularity | STRING        | COLUMN       |
+-------------+-------------------+---------------+--------------+

En el siguiente ejemplo equivalente, que no usa ALL COLUMNS, se establece el nivel de detalle predeterminado de la columna de índice en COLUMN y, de forma individual, se establece el nivel de detalle de dos columnas en GLOBAL y COLUMN, respectivamente:

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';

El resultado es similar al siguiente:

+-------------+-------------------+---------------+--------------+
| column_name |  option_name      | option_type   | option_value |
+-------------+-------------------+---------------+--------------+
| col2        | index_granularity | STRING        | GLOBAL       |
| col3        | index_granularity | STRING        | COLUMN       |
+-------------+-------------------+---------------+--------------+