SEARCH_INDEXES visualizzazione

La vista 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 maggiori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui una query sulla vista 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 il seguente schema:

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 in base a 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 la coverage_percentage per visualizzare l'avanzamento della creazione dell'indice.
  • PENDING DISABLEMENT indica che la dimensione totale delle tabelle di base indicizzate supera il limite della tua organizzazione; l'indice è in coda per l'eliminazione. In questo stato, l'indice può essere utilizzato nelle query di ricerca e ti viene addebitato il costo di archiviazione dell'indice di ricerca.
  • TEMPORARILY DISABLED indica che la dimensione totale delle tabelle di base indicizzate supera il limite della tua organizzazione o che la tabella indicizzata di base è inferiore a 10 GB. In questo stato, l'indice non viene utilizzato nelle query di ricerca e non ti viene addebitato alcun costo per l'archiviazione dell'indice di ricerca.
  • PERMANENTLY DISABLED indica che è presente una modifica dello schema incompatibile nella tabella di base, ad esempio la modifica del tipo di colonna indicizzata da STRING a INT64.
creation_time TIMESTAMP La data e l'ora di creazione dell'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 disabilitato. NULL se lo stato dell'indice non è DISABLED.
DDL STRING L'istruzione DDL utilizzata per creare l'indice.
coverage_percentage INTEGER La percentuale approssimativa di 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 archiviazione fatturabili per l'indice.
analyzer STRING L'analizzatore di testo da utilizzare per generare i token per l'indice di ricerca.

Ambito e sintassi

Le query in questa vista 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 set di dati Posizione del set di dati
Sostituisci quanto segue:

  • (Facoltativo) PROJECT_ID: l'ID del tuo progetto Google Cloud. Se non specificato, viene utilizzato il progetto predefinito.
  • DATASET_ID: l'ID del set di dati. Per ulteriori informazioni, consulta la sezione 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 attiva nelle tabelle nel set di dati my_dataset, che si trova nel progetto my_project. Sono inclusi i nomi, le istruzioni DDL utilizzate per crearle, la percentuale di copertura e l'analizzatore di testo. Se una tabella di base indicizzata è inferiore a 10 GB, il suo 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   |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+