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'
bigquery.tables.get o bigquery.tables.list autorizzazione di Identity and Access Management (IAM)
sulla tabella con l'indice. Ciascuno dei seguenti ruoli IAM predefiniti include almeno una di queste autorizzazioni:
roles/bigquery.adminroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.dataViewerroles/bigquery.metadataViewerroles/bigquery.user
Per ulteriori informazioni sulle autorizzazioni di BigQuery, consulta Controllo dell'accesso con IAM.
Schema
Quando esegui una query sulla visualizzazioneINFORMATION_SCHEMA.SEARCH_INDEXES, i risultati della query contengono una riga per ogni indice di ricerca in un set di dati.
La visualizzazione 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 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.
|
creation_time |
TIMESTAMP |
L'ora in cui è stato creato l'indice. |
last_modification_time |
TIMESTAMP |
L'ultima volta che è stata modificata la configurazione dell'indice. 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 sono stati indicizzati. 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 token per l'indice di ricerca. |
last_index_alteration_info |
STRUCT |
I dettagli dell'ultima modifica dell'indice attivata dall'utente, contenente
i seguenti campi:
|
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 regionale per questa visualizzazione:
| Visualizza nome | Ambito risorsa | Ambito regionale |
|---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEXES |
A livello di set di dati | Posizione del set di dati |
-
(Facoltativo)
PROJECT_ID: l'ID del tuo Cloud de Confiance progetto. Se non viene specificato, viene utilizzato il progetto predefinito. -
DATASET_ID: l'ID del set di dati. Per ulteriori informazioni, consulta 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 sulle tabelle del set di dati my_dataset, che si trova nel progetto my_project. Include i 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 | +-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
Risoluzione dei problemi
Per abilitare questa visualizzazione, puoi impostare il valore di enable_info_schema_storage su TRUE nel progetto o nell'organizzazione. Per ulteriori informazioni sulla gestione della
configurazione, consulta Gestire le impostazioni di configurazione.
Se non hai configurato questa impostazione, vedrai il seguente errore:
INFORMATION_SCHEMA.SEARCH_INDEXES hasn't been enabled for project <myproject>. Consider using one of the following SQL statements to enable data collection: ALTER PROJECT `<myproject>` SET OPTIONS (`region-<region>.enable_info_schema_storage` = TRUE) Or to enable for the entire organization: ALTER ORGANIZATION SET OPTIONS (`region-<region>.enable_info_schema_storage` = TRUE) After enabling, please allow around 1 day for the complete historical data to become available.
Esegui le istruzioni SQL descritte nel messaggio di errore per abilitare la visualizzazione.