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.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, 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
Dabei gilt:
  • Optional: PROJECT_ID ist die ID Ihres Google Cloud Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.
  • DATASET_ID ist 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       |
+-------------------+-------------------+---------------+--------------+