Vista SEARCH_INDEXES

A vista INFORMATION_SCHEMA.SEARCH_INDEXES contém uma linha para cada índice de pesquisa 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_INDEXES, os resultados da consulta contêm uma linha para cada índice de pesquisa num conjunto de dados.

A vista INFORMATION_SCHEMA.SEARCH_INDEXES 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_status STRING O estado do índice: ACTIVE, PENDING DISABLEMENT, TEMPORARILY DISABLED ou PERMANENTLY DISABLED.
  • ACTIVE significa que o índice está utilizável ou a ser criado. Consulte o coverage_percentage para ver o progresso da criação do índice.
  • PENDING DISABLEMENT significa que o tamanho total das tabelas base indexadas excede o limite da sua organização; o índice é colocado em fila para eliminação. Enquanto estiver neste estado, o índice é utilizável em consultas de pesquisa e são-lhe cobradas taxas de armazenamento do índice de pesquisa.
  • TEMPORARILY DISABLED significa que o tamanho total das tabelas base indexadas excede o limite da sua organização ou que a tabela indexada base é inferior a 10 GB. Neste estado, o índice não é usado em consultas de pesquisa e não lhe é cobrado o armazenamento do índice de pesquisa.
  • PERMANENTLY DISABLED significa que existe uma alteração de esquema incompatível na tabela base, como alterar o tipo de uma coluna indexada de STRING para INT64.
creation_time TIMESTAMP A hora em que o índice foi criado.
last_modification_time TIMESTAMP A última vez que a configuração do índice foi modificada. Por exemplo, eliminar uma coluna indexada.
last_refresh_time TIMESTAMP A última vez que os dados da tabela foram indexados. Um valor NULL significa que o índice ainda não está disponível.
disable_time TIMESTAMP A hora em que o estado do índice foi definido como DISABLED. O valor é NULL se o estado do índice não for DISABLED.
disable_reason STRING O motivo pelo qual o índice foi desativado. NULL se o estado do índice não for DISABLED.
DDL STRING A declaração DDL usada para criar o índice.
coverage_percentage INTEGER A percentagem aproximada de dados da tabela que foram indexados. 0% significa que o índice não é utilizável numa consulta SEARCH, mesmo que alguns dados já tenham sido indexados.
unindexed_row_count INTEGER O número de linhas na tabela de base que não foram indexadas.
total_logical_bytes INTEGER O número de bytes lógicos faturáveis para o índice.
total_storage_bytes INTEGER O número de bytes de armazenamento faturáveis para o índice.
analyzer STRING O analisador de texto a usar para gerar tokens para o índice de pesquisa.

Â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_INDEXES Nível do conjunto de dados Localização do conjunto de dados
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Google 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 indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEXES;

Exemplo

O exemplo seguinte mostra todos os índices de pesquisa ativos em tabelas no conjunto de dados my_dataset, localizados no projeto my_project. Inclui os respetivos nomes, as declarações DDL usadas para os criar, a percentagem de cobertura e o analisador de texto. Se uma tabela base indexada tiver menos de 10 GB, o respetivo índice não é preenchido. Nesse caso, o valor de coverage_percentage é 0.

SELECT table_name, index_name, ddl, coverage_percentage, analyzer
FROM my_project.my_dataset.INFORMATION_SCHEMA.SEARCH_INDEXES
WHERE index_status = 'ACTIVE';

Os resultados devem ter o seguinte aspeto:

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