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 ist.

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.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer
  • roles/bigquery.user

Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.

Schema

Wenn Sie die Ansicht INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS abfragen, enthalten die Ergebnisse eine Zeile für jede Option, die für eine suchindexierte Spalte in den Tabellen eines Datasets festgelegt ist.

Die Ansicht INFORMATION_SCHEMA.SEARCH_INDEX_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.
column_name STRING Der Name der indexierten Spalte, für die die Option festgelegt ist.
option_name STRING Der Name der Option, die für die Spalte angegeben ist.
option_type STRING Der Typ der Option.
option_value STRING Der Wert der Option.

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
Dabei gilt:
  • Optional: PROJECT_ID: die ID Ihres Trusted Cloud -Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.
  • DATASET_ID: 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 auf GLOBAL bzw. COLUMN. In diesem Beispiel werden die Spalten col2 und col3 in den Ergebnissen angezeigt, weil ihre Granularität explizit festgelegt ist. 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 auf GLOBAL bzw. COLUMN festgelegt:

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       |
+-------------------+-------------------+---------------+--------------+