Vista SEARCH_INDEX_COLUMN_OPTIONS

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

La vista INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS 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_column_name STRING Nombre de la columna indexada en la que se ha definido la opción.
option_name STRING El nombre de la opción especificada en la columna.
option_type STRING Tipo de opción.
option_value STRING Valor de la opción.

Á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_INDEX_COLUMN_OPTIONS 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 index column options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS;

Ejemplo

En el siguiente ejemplo, se asigna el valor COLUMN a la granularidad de la columna de índice predeterminada y se asignan los valores GLOBAL y COLUMN a la granularidad de col2 y col3, respectivamente. En este ejemplo, las columnas col2 y col3 aparecen en los resultados porque su granularidad se ha definido explícitamente. La granularidad de la columna col1 no se muestra porque usa la granularidad predeterminada.

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:

+-------------------+-------------------+---------------+--------------+
| index_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 define la granularidad predeterminada de la columna de índice como COLUMN y se define individualmente la granularidad de dos columnas como 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:

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