Visualizzazione SEARCH_INDEXES_BY_ORGANIZATION
Gli indici di ricerca BigQuery forniscono una gestione gratuita degli indici finché la tua organizzazione non raggiunge il limite in una determinata regione. Puoi utilizzare la visualizzazione
INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
per comprendere il tuo
consumo attuale rispetto a questo limite, suddiviso per progetti e tabelle. La
visualizzazione INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
contiene una riga per
ogni indice di ricerca per l'intera organizzazione associata al progetto corrente.
Autorizzazioni obbligatorie
Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
, devi disporre delle seguenti autorizzazioni IAM (Identity and Access Management) per la tua organizzazione:
bigquery.tables.get
bigquery.tables.list
Ognuno dei seguenti ruoli IAM predefiniti include le autorizzazioni precedenti:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
Questa visualizzazione dello schema è disponibile solo per gli utenti con organizzazioniGoogle Cloud definite.
Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.
Schema
La vista INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
ha lo schema seguente:
Nome colonna | Tipo di dati | Valore |
---|---|---|
project_id |
STRING |
Il nome del progetto che contiene il set di dati. |
project_number |
STRING |
Il numero di progetto che contiene il set di dati. |
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 di ricerca. |
index_status |
STRING |
Lo stato dell'indice può essere uno dei seguenti:
|
index_status_details |
RECORD |
Il record contiene i seguenti campi:
|
use_background_reservation |
BOOL |
Indica se la manutenzione dell'indice utilizza la prenotazione BACKGROUND . Questa opzione è impostata su FALSE quando la manutenzione dell'indice utilizza il limite. |
Ambito e sintassi
Le query su questa visualizzazione devono includere un qualificatore di regione. La tabella seguente spiega l'ambito della regione per questa visualizzazione:
Nome vista | Ambito risorsa | Ambito regione |
---|---|---|
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION |
Organizzazione che contiene il progetto specificato | REGION |
Sostituisci quanto segue:
(Facoltativo)
PROJECT_ID
: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito.REGION
: la regione per il tuo progetto. Ad esempio:`myproject`.`region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
.
Limitazione dell'indice
Se un indice viene limitato, le dimensioni della tabella non vengono conteggiate ai fini del limite dell'organizzazione. Questa limitazione si verifica quando le dimensioni della tabella di base sono inferiori a 10 GB o superano il limite della tua organizzazione. Quando un indice viene limitato, i relativi job di gestione vengono sospesi, causando l'obsolescenza dell'indice e la sua disattivazione temporanea. Di conseguenza, le query di ricerca non possono utilizzare l'indice.
Esempi
Questa sezione include query di esempio della visualizzazione INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
.
Verificare se il consumo supera il limite in una determinata regione
Il seguente esempio illustra se la dimensione totale della tabella di base indicizzata in un'organizzazione, che utilizza slot condivisi all'interno della multiregione degli Stati Uniti, supera i 100 TB:
WITH indexed_base_table_size AS ( SELECT SUM(base_table.total_logical_bytes) AS total_logical_bytes FROM `region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION AS search_index JOIN `region-us`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION AS base_table ON (search_index.table_name = base_table.table_name AND search_index.project_id = base_table.project_id AND search_index.index_schema = base_table.table_schema) WHERE TRUE -- Excludes search indexes that are permanently disabled. AND search_index.index_status != 'PERMANENTLY DISABLED' -- Excludes BASE_TABLE_TOO_SMALL search indexes whose base table size is -- less than 10 GB. These tables don't count toward the limit. AND search_index.index_status_details.throttle_status != 'BASE_TABLE_TOO_SMALL' -- Excludes search indexes whose project has BACKGROUND reservation purchased -- for search indexes. AND search_index.use_background_reservation = false -- Outputs the total indexed base table size if it exceeds 100 TB, -- otherwise, doesn't return any output. ) SELECT * FROM indexed_base_table_size WHERE total_logical_bytes >= 109951162777600 -- 100 TB
Il risultato è simile al seguente:
+---------------------+ | total_logical_bytes | +---------------------+ | 109951162777601 | +---------------------+
Trovare le dimensioni totali della tabella di base indicizzata per progetti in una regione
L'esempio seguente mostra la suddivisione di ogni progetto in una regione multiregionale degli Stati Uniti con la dimensione totale delle tabelle di base indicizzate:
SELECT search_index.project_id, search_index.use_background_reservation, SUM(base_table.total_logical_bytes) AS total_logical_bytes FROM `region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION AS search_index JOIN `region-us`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION AS base_table ON (search_index.table_name = base_table.table_name AND search_index.project_id = base_table.project_id AND search_index.index_schema = base_table.table_schema) WHERE TRUE -- Excludes search indexes that are permanently disabled. AND search_index.index_status != 'PERMANENTLY DISABLED' -- Excludes BASE_TABLE_TOO_SMALL search indexes whose base table size is -- less than 10 GB. These tables don't count toward limit. AND search_index.index_status_details.throttle_status != 'BASE_TABLE_TOO_SMALL' GROUP BY search_index.project_id, search_index.use_background_reservation
Il risultato è simile al seguente:
+---------------------+----------------------------+---------------------+ | project_id | use_background_reservation | total_logical_bytes | +---------------------+----------------------------+---------------------+ | projecta | true | 971329178274633 | +---------------------+----------------------------+---------------------+ | projectb | false | 834638211024843 | +---------------------+----------------------------+---------------------+ | projectc | false | 562910385625126 | +---------------------+----------------------------+---------------------+
Trovare gli indici di ricerca limitati
L'esempio seguente restituisce tutti gli indici di ricerca limitati all'interno dell'organizzazione e della regione:
SELECT project_id, index_schema, table_name, index_name FROM `region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION WHERE -- Excludes search indexes that are permanently disabled. index_status != 'PERMANENTLY DISABLED' AND index_status_details.throttle_status IN ('ORGANIZATION_LIMIT_EXCEEDED', 'BASE_TABLE_TOO_LARGE')
Il risultato è simile al seguente:
+--------------------+--------------------+---------------+----------------+ | project_id | index_schema | table_name | index_name | +--------------------+--------------------+---------------+----------------+ | projecta | dataset_us | table1 | index1 | | projectb | dataset_us | table1 | index1 | +--------------------+--------------------+---------------+----------------+