Visualizzazione SEARCH_INDEXES

La visualizzazione INFORMATION_SCHEMA.SEARCH_INDEXES contiene una riga per ogni indice di ricerca in un set di dati.

Autorizzazioni obbligatorie

Per visualizzare i metadati dell'indice di ricerca, devi disporre dell'autorizzazione bigquery.tables.get o bigquery.tables.list Identity and Access Management (IAM) nella tabella con l'indice. Ciascuno dei seguenti ruoli IAM predefiniti include almeno una di queste autorizzazioni:

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

Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui una query sulla visualizzazione INFORMATION_SCHEMA.SEARCH_INDEXES, i risultati della query contengono una riga per ogni indice di ricerca in un set di dati.

La vista INFORMATION_SCHEMA.SEARCH_INDEXES ha lo schema seguente:

Nome colonna Tipo di dati Valore
index_catalog STRING Il nome del progetto che contiene il set di dati.
index_schema STRING Il nome del set di dati che contiene l'indice.
table_name STRING Il nome della tabella di base su cui viene creato l'indice.
index_name STRING Il nome dell'indice.
index_status STRING Lo stato dell'indice: ACTIVE, PENDING DISABLEMENT, TEMPORARILY DISABLED o PERMANENTLY DISABLED.
  • ACTIVE indica che l'indice è utilizzabile o in fase di creazione. Consulta coverage_percentage per visualizzare l'avanzamento della creazione dell'indice.
  • PENDING DISABLEMENT significa che le dimensioni totali delle tabelle di base indicizzate superano il limite della tua organizzazione; l'indice è in coda per l'eliminazione. In questo stato, l'indice è utilizzabile nelle query di ricerca e ti viene addebitato lo spazio di archiviazione dell'indice di ricerca.
  • TEMPORARILY DISABLED significa che le dimensioni totali delle tabelle di base indicizzate superano il limite della tua organizzazione oppure che la tabella di base indicizzata è inferiore a 10 GB. In questo stato, l'indice non viene utilizzato nelle query di ricerca e non ti viene addebitato lo spazio di archiviazione dell'indice di ricerca.
  • PERMANENTLY DISABLED indica che è stata apportata una modifica dello schema incompatibile alla tabella di base, ad esempio la modifica del tipo di una colonna indicizzata da STRING a INT64.
creation_time TIMESTAMP L'ora in cui è stato creato l'indice.
last_modification_time TIMESTAMP L'ultima volta che la configurazione dell'indice è stata modificata. Ad esempio, l'eliminazione di una colonna indicizzata.
last_refresh_time TIMESTAMP L'ultima volta che i dati della tabella sono stati indicizzati. Un valore NULL indica che l'indice non è ancora disponibile.
disable_time TIMESTAMP L'ora in cui lo stato dell'indice è stato impostato su DISABLED. Il valore è NULL se lo stato dell'indice non è DISABLED.
disable_reason STRING Il motivo per cui l'indice è stato disattivato. NULL se lo stato dell'indice non è DISABLED.
DDL STRING L'istruzione DDL utilizzata per creare l'indice.
coverage_percentage INTEGER La percentuale approssimativa dei dati della tabella che è stata indicizzata. 0% significa che l'indice non è utilizzabile in una query SEARCH, anche se alcuni dati sono già stati indicizzati.
unindexed_row_count INTEGER Il numero di righe nella tabella di base che non sono state indicizzate.
total_logical_bytes INTEGER Il numero di byte logici fatturabili per l'indice.
total_storage_bytes INTEGER Il numero di byte di spazio di archiviazione fatturabili per l'indice.
analyzer STRING L'analizzatore di testo da utilizzare per generare token per l'indice di ricerca.

Per garantire la stabilità, ti consigliamo di elencare esplicitamente le colonne nelle query dello schema informativo anziché utilizzare un carattere jolly (SELECT *). L'elenco esplicito delle colonne impedisce l'interruzione delle query se lo schema sottostante cambia.

Ambito e sintassi

Le query su questa visualizzazione devono avere un qualificatore del set di dati. La tabella seguente spiega l'ambito della regione per questa visualizzazione:

Visualizza nome Ambito risorsa Ambito regione
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEXES Livello del set di dati Posizione del set di dati
Sostituisci quanto segue:
  • (Facoltativo) PROJECT_ID: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito.
  • DATASET_ID: l'ID del set di dati. Per maggiori informazioni, vedi Qualificatore del set di dati.

Esempio

-- Returns metadata for search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEXES;

Esempio

L'esempio seguente mostra tutti gli indici di ricerca attivi nelle tabelle del set di dati my_dataset, che si trova nel progetto my_project. Include i loro nomi, le istruzioni DDL utilizzate per crearli, la percentuale di copertura e l'analizzatore di testo. Se una tabella di base indicizzata è inferiore a 10 GB, il relativo indice non viene compilato, nel qual caso 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';

I risultati dovrebbero essere simili ai seguenti:

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