Ansicht SEARCH_INDEXES_BY_ORGANIZATION
BigQuery-Suchindexe bieten eine kostenlose Indexverwaltung, bis Ihre Organisation das Limit in einer bestimmten Region erreicht. In der Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
können Sie die aktuelle Nutzung des Limits aufgeschlüsselt nach Projekten und Tabellen sehen. Die Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
enthält eine Zeile für jeden Suchindex für die gesamte Organisation, die dem aktuellen Projekt zugeordnet ist.
Erforderliche Berechtigungen
Zum Abfragen der Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
benötigen Sie die folgenden IAM-Berechtigungen (Identity and Access Management) für Ihre Organisation:
bigquery.tables.get
bigquery.tables.list
Die folgenden vordefinierten IAM-Rollen enthalten jeweils die vorherigen Berechtigungen:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
Diese Schemaansicht ist nur für Nutzer mit definierten Google Cloud -Organisationen verfügbar.
Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Schema
Die Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
project_id |
STRING |
Der Name des Projekts, zu dem das Dataset gehört. |
project_number |
STRING |
Die Nummer des Projekts, das das Dataset enthält. |
index_catalog |
STRING |
Der Name des Projekts, zu dem das Dataset gehört. |
index_schema |
STRING |
Der Name des Datasets, das den Index enthält. |
table_name |
STRING |
Der Name der Basistabelle, für die der Index erstellt wird. |
index_name |
STRING |
Der Name des Suchindex. |
index_status |
STRING |
Der Status des Index kann einer der folgenden sein:
|
index_status_details |
RECORD |
Der Datensatz enthält die folgenden Felder:
|
use_background_reservation |
BOOL |
Gibt an, ob für die Indexwartung die BACKGROUND -Reservierung verwendet wird. Dieser Wert wird auf FALSE gesetzt, wenn bei der Indexwartung das Limit verwendet wird. |
Bereich und Syntax
Für Abfragen dieser Ansicht muss ein Regions-Qualifier verwendet werden. In der folgenden Tabelle wird der Regionsbereich für diese Ansicht erläutert:
Ansichtsname | Ressourcenbereich | Regionsbereich |
---|---|---|
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION |
Organisation, die das angegebene Projekt enthält | REGION |
Ersetzen Sie Folgendes:
Optional:
PROJECT_ID
: die ID IhresGoogle Cloud -Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.REGION
: Die Region für Ihr Projekt. Beispiel:`myproject`.`region-us`.INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
Indexdrosselung
Wenn ein Index gedrosselt wird, wird seine Tabellengröße nicht auf das Limit Ihrer Organisation angerechnet. Diese Drosselung tritt auf, wenn die Größe der Basistabelle unter 10 GB liegt oder das Limit Ihrer Organisation überschreitet. Wenn ein Index gedrosselt wird, werden seine Verwaltungsjobs pausiert. Dadurch wird der Index veraltet und schließlich vorübergehend deaktiviert. Daher kann der Index nicht für Suchanfragen verwendet werden.
Beispiele
Dieser Abschnitt enthält Beispielabfragen für die Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES_BY_ORGANIZATION
.
Herausfinden, ob die Nutzung das Limit in einer bestimmten Region überschreitet
Im folgenden Beispiel wird veranschaulicht, ob die Gesamtgröße der indexierten Basistabellen in einer Organisation, die freigegebene Slots in der US-Mehrfachregion nutzt, 100 TB überschreitet:
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
Das Ergebnis sieht etwa so aus:
+---------------------+ | total_logical_bytes | +---------------------+ | 109951162777601 | +---------------------+
Gesamtgröße der indexierten Basistabellen nach Projekten in einer Region ermitteln
Im folgenden Beispiel wird die Aufschlüsselung für jedes Projekt in einer US-Multiregion mit der Gesamtgröße der indexierten Basistabellen dargestellt:
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
Das Ergebnis sieht etwa so aus:
+---------------------+----------------------------+---------------------+ | project_id | use_background_reservation | total_logical_bytes | +---------------------+----------------------------+---------------------+ | projecta | true | 971329178274633 | +---------------------+----------------------------+---------------------+ | projectb | false | 834638211024843 | +---------------------+----------------------------+---------------------+ | projectc | false | 562910385625126 | +---------------------+----------------------------+---------------------+
Gedrosselte Suchindexe finden
Im folgenden Beispiel werden alle Suchindexe zurückgegeben, die in der Organisation und Region gedrosselt werden:
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')
Das Ergebnis sieht etwa so aus:
+--------------------+--------------------+---------------+----------------+ | project_id | index_schema | table_name | index_name | +--------------------+--------------------+---------------+----------------+ | projecta | dataset_us | table1 | index1 | | projectb | dataset_us | table1 | index1 | +--------------------+--------------------+---------------+----------------+