Ansicht SEARCH_INDEX_COLUMN_OPTIONS
Die Ansicht INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS enthält eine Zeile für jede Option, die für eine suchindexierte Spalte in den Tabellen eines Datasets festgelegt wurde.
Erforderliche Berechtigungen
Zum Aufrufen der Metadaten des Suchindex benötigen Sie die Berechtigung bigquery.tables.get oder bigquery.tables.list der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) für die Tabelle mit dem Index. Jede der folgenden vordefinierten IAM-Rollen enthält mindestens eine der folgenden Berechtigungen:
roles/bigquery.adminroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.dataViewerroles/bigquery.metadataViewerroles/bigquery.user
Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Schema
Wenn Sie die AnsichtINFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS abfragen, wird im Ergebnis jede Option, die für eine suchindexierte Spalte in den Tabellen eines Datasets festgelegt wurde, in einer eigenen Zeile dargestellt.
Die Ansicht INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS hat das folgende Schema:
| Spaltenname | Datentyp | Wert |
|---|---|---|
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 Index. |
index_column_name |
STRING |
Der Name der indexierten Spalte, für die die Option festgelegt wurde. |
option_name |
STRING |
Der Name der für die Spalte angegebenen Option. |
option_type |
STRING |
Der Typ der Option. |
option_value |
STRING |
Der Wert der Option. |
Aus Stabilitätsgründen empfehlen wir, Spalten in Ihren Informationsschemaabfragen explizit aufzulisten, anstatt ein Platzhalterzeichen (SELECT *) zu verwenden. Wenn Sie Spalten explizit auflisten, wird verhindert, dass Abfragen fehlschlagen, wenn sich das zugrunde liegende Schema ändert.
Bereich und Syntax
Für Abfragen dieser Ansicht muss ein Dataset-Qualifizierer verwendet werden. In der folgenden Tabelle wird der Regionsbereich für diese Ansicht erläutert:
| Ansichtsname | Ressourcenbereich | Regionsbereich |
|---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS |
Dataset-Ebene | Dataset-Speicherort |
-
Optional:
PROJECT_IDist die ID Ihres Google Cloud Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet. -
DATASET_IDist die ID Ihres Datasets. Weitere Informationen finden Sie unter Dataset-Qualifier.
Beispiel
-- Returns metadata for search index column options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS;
Beispiel
Im folgenden Beispiel wird die Standardgranularität der Indexspalte auf COLUMN festgelegt und die Granularität für col2 und col3 einzeln auf GLOBAL bzw. COLUMN gesetzt. In diesem Beispiel werden die Spalten col2 und col3 in den Ergebnissen angezeigt, da ihre Granularität explizit festgelegt wurde. Die Granularität für die Spalte col1 wird nicht angezeigt, da die Standardgranularität verwendet wird.
CREATE SEARCH INDEX index1 ON `mydataset.table1` ( ALL COLUMNS WITH COLUMN OPTIONS ( col2 OPTIONS(index_granularity = 'GLOBAL'), col3 OPTIONS(index_granularity = 'COLUMN') ) ) OPTIONS( default_index_column_granularity = 'COLUMN' ); SELECT index_column_name, option_name, option_type, option_value FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS WHERE index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';
Das Ergebnis sieht etwa so aus:
+-------------------+-------------------+---------------+--------------+ | index_column_name | option_name | option_type | option_value | +-------------------+-------------------+---------------+--------------+ | col2 | index_granularity | STRING | GLOBAL | | col3 | index_granularity | STRING | COLUMN | +-------------------+-------------------+---------------+--------------+
Im folgenden gleichwertigen Beispiel, in dem ALL COLUMNS nicht verwendet wird, wird die
Standardgranularität der Indexspalte auf
COLUMN festgelegt und die Granularität für zwei Spalten einzeln auf GLOBAL und
COLUMN gesetzt:
CREATE SEARCH INDEX index1 ON `mydataset.table1` ( col1, col2 OPTIONS(index_granularity = 'GLOBAL'), col3 OPTIONS(index_granularity = 'COLUMN') ) OPTIONS( default_index_column_granularity = 'COLUMN' ); SELECT index_column_name, option_name, option_type, option_value FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS WHERE index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';
Das Ergebnis sieht etwa so aus:
+-------------------+-------------------+---------------+--------------+ | index_column_name | option_name | option_type | option_value | +-------------------+-------------------+---------------+--------------+ | col2 | index_granularity | STRING | GLOBAL | | col3 | index_granularity | STRING | COLUMN | +-------------------+-------------------+---------------+--------------+