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