Vista SEARCH_INDEX_COLUMN_OPTIONS

A vista INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS contém uma linha para cada opção definida numa coluna indexada pela pesquisa nas tabelas num conjunto de dados.

Autorizações necessárias

Para ver os metadados do índice de pesquisa, precisa da autorização bigquery.tables.get ou bigquery.tables.list de gestão de identidade e de acesso (IAM) na tabela com o índice. Cada uma das seguintes funções do IAM predefinidas inclui, pelo menos, uma destas autorizações:

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer
  • roles/bigquery.user

Para mais informações sobre as autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.

Esquema

Quando consulta a vista INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS, os resultados da consulta contêm uma linha para cada opção definida numa coluna indexada pela pesquisa nas tabelas num conjunto de dados.

A vista INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS tem o seguinte esquema:

Nome da coluna Tipo de dados Valor
index_catalog STRING O nome do projeto que contém o conjunto de dados.
index_schema STRING O nome do conjunto de dados que contém o índice.
table_name STRING O nome da tabela base na qual o índice é criado.
index_name STRING O nome do índice.
index_column_name STRING O nome da coluna indexada na qual a opção está definida.
option_name STRING O nome da opção especificada na coluna.
option_type STRING O tipo de opção.
option_value STRING O valor da opção.

Âmbito e sintaxe

As consultas nesta vista têm de ter um qualificador de conjunto de dados. A tabela seguinte explica o âmbito da região para esta vista:

Nome da vista Âmbito do recurso Âmbito da região
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS Nível do conjunto de dados Localização do conjunto de dados
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Trusted Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido.
  • DATASET_ID: o ID do seu conjunto de dados. Para mais informações, consulte o artigo Qualificador de conjunto de dados.

Exemplo

-- Returns metadata for search index column options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS;

Exemplo

O exemplo seguinte define o nível de detalhe da coluna de índice predefinido como COLUMN e define individualmente o nível de detalhe de col2 e col3 como GLOBAL e COLUMN, respetivamente. Neste exemplo, as colunas col2 e col3 aparecem nos resultados porque a respetiva granularidade está definida explicitamente. A granularidade da coluna col1 não é apresentada porque usa a granularidade predefinida.

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

O resultado é semelhante ao seguinte:

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

O exemplo equivalente seguinte, que não usa ALL COLUMNS, define a granularidade da coluna de índice predefinida como COLUMN e define individualmente a granularidade de duas colunas como GLOBAL e COLUMN, respetivamente:

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

O resultado é semelhante ao seguinte:

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