Visualizzazione SEARCH_INDEXES

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 IAM (Identity and Access Management) bigquery.tables.get o bigquery.tables.list per la 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 contenente 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 controllare lo stato di avanzamento della creazione dell'indice.
  • PENDING DISABLEMENT indica che le dimensioni totali delle tabelle di base indicizzate superano il limite dell'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 indica 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 alcun costo per lo spazio di archiviazione dell'indice di ricerca.
  • PERMANENTLY DISABLED indica che nella tabella di base è presente una modifica dello schema incompatibile, 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 è 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 di 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 spazio di archiviazione fatturabili per l'indice.
analyzer STRING L'analizzatore di testo da utilizzare per generare token per l'indice di ricerca.

Ambito e sintassi

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

Visualizza nome Ambito risorsa Ambito regione
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEXES A livello di set di dati Posizione del set di dati
Sostituisci quanto segue:

  • Facoltativo: PROJECT_ID: l'ID del tuo progetto Google Cloud. Se non viene specificato, viene utilizzato il progetto predefinito.

    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 datimy_dataset, nel progetto my_project. Sono inclusi i nomi, le istruzioni DDL utilizzate per crearli, la percentuale di copertura e l'analizza del 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   |
    +-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+