Ansicht COLUMNS

Die Ansicht INFORMATION_SCHEMA.COLUMNS enthält eine Zeile für jede Spalte (Feld) in einer Tabelle.

Erforderliche Berechtigungen

Zum Abfragen der INFORMATION_SCHEMA.COLUMNS-Ansicht benötigen Sie folgende IAM-Berechtigungen (Identity and Access Management):

  • 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

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

Schema

Wenn Sie die Ansicht INFORMATION_SCHEMA.COLUMNS abfragen, wird in den Abfrageergebnissen jede Spalte (jedes Feld) einer Tabelle in einer eigenen Zeile dargestellt.

Die Ansicht INFORMATION_SCHEMA.COLUMNS hat das folgende Schema:

Spaltenname Datentyp Wert
table_catalog STRING Die Projekt-ID des Projekts, das das Dataset enthält.
table_schema STRING Der Name des Datasets, das die Tabelle enthält (auch als datasetId bezeichnet)
table_name STRING Der Name der Tabelle oder Ansicht, auch als tableId bezeichnet.
column_name STRING Der Name der Spalte.
ordinal_position INT64 Der 1-indexierte Versatz der Spalte in der Tabelle; wenn es sich um eine Pseudospalte wie _PARTITIONTIME oder _PARTITIONDATE handelt, ist der Wert NULL.
is_nullable STRING YES oder NO, je nachdem, ob der Spaltenmodus NULL-Werte zulässt.
data_type STRING Der GoogleSQL-Datentyp der Spalte.
is_generated STRING Der Wert ist ALWAYS, wenn die Spalte eine automatisch generierte Einbettungsspalte ist. Andernfalls lautet der Wert NEVER.
generation_expression STRING Der Wert ist der Generierungsausdruck, der zum Definieren der Spalte verwendet wird, wenn die Spalte eine automatisch generierte Einbettungsspalte ist. Andernfalls lautet der Wert NULL.
is_stored STRING Der Wert ist YES, wenn die Spalte eine automatisch generierte Einbettungsspalte ist. Andernfalls lautet der Wert NULL.
async_generation_status STRUCT Enthält blockierende Fehler für Hintergrundjobs zur Einbettungsgenerierung, wenn die Spalte eine automatisch generierte Einbettungsspalte ist. Andernfalls lautet der Wert NULL. Informationen zu blockierenden Fehlern finden Sie im Feld async_generation_status.blocking_error.message. Blockierungsfehler können folgende Ursachen haben:
  • Fehler „Berechtigung verweigert“
  • Fehler „Nicht gefunden“
  • Fehler bei nicht unterstützten Einbettungsmodell-Endpunkten
  • Fehler „Vertex AI API nicht aktiviert“
Sobald der nächste Job zur Einbettungsgenerierung erfolgreich abgeschlossen wurde, wird die Spalte async_generation_status gelöscht.
is_hidden STRING YES oder NO, je nachdem, ob die Spalte eine Pseudospalte wie _PARTITIONTIME oder _PARTITIONDATE ist.
is_updatable STRING Der Wert ist immer NULL.
is_system_defined STRING YES oder NO, je nachdem, ob die Spalte eine Pseudospalte wie _PARTITIONTIME oder _PARTITIONDATE ist.
is_partitioning_column STRING YES oder NO, je nachdem, ob die Spalte eine Partitionierungsspalte ist.
clustering_ordinal_position INT64 Der 1-indexierte Versatz der Spalte in den Clustering-Spalten der Tabelle; der Wert ist NULL, wenn die Tabelle keine geclusterte Tabelle ist.
collation_name STRING Der Name der Sortierspezifikation, falls vorhanden. Andernfalls NULL.

Wenn STRING oder ARRAY<STRING> übergeben wird, wird die Sortierspezifikation zurückgegeben, sofern vorhanden. Andernfalls wird NULL zurückgegeben.
column_default STRING Der Standardwert der Spalte, falls vorhanden. Andernfalls lautet der Wert NULL.
rounding_mode STRING Der Rundungsmodus, der für in das Feld geschriebene Werte verwendet wird, wenn sein Typ ein parametrisierter NUMERIC oder BIGNUMERIC ist. Andernfalls ist der Wert NULL.
data_policies.name STRING Die Liste der Datenrichtlinien, die an die Spalte angehängt sind, um den Zugriff und die Maskierung zu steuern. Dieses Feld befindet sich in der (Vorschau).
data_governance_tags ARRAY<STRUCT> Die Liste der Data-Governance-Tags, die an die Spalte angehängt sind, um den Zugriff und die Maskierung zu steuern. Jedes STRUCT enthält die folgenden STRING-Felder:
  • key: der Tag-Schlüssel mit Namespace im Format PROJECT_ID/TAG_KEY oder ORGANIZATION_ID/TAG_KEY.
  • value: der Kurzname des Tag-Werts.
Für STRUCT- (oder RECORD-)Spalten sind Data-Governance-Tags, die an verschachtelte Felder angehängt sind, in der Ansicht INFORMATION_SCHEMA.COLUMN_FIELD_PATHS verfügbar.
policy_tags ARRAY<STRING> Die Liste der Richtlinien-Tags, die an die Spalte angehängt sind.
is_identity STRING YES oder NO, je nachdem, ob die Spalte eine Identitätsspalte ist.
identity_generation STRING Entweder ALWAYS oder BY DEFAULT, je nach Generierungsmodus der Identitätsspalte. Wenn die Spalte keine Identitätsspalte ist, lautet der Wert NULL.
identity_start INT64 Der erste Wert, der von der Identitätsspalte generiert wird, oder NULL, wenn die Spalte keine Identitätsspalte ist.
identity_increment INT64 Die Mindestdifferenz zwischen nacheinander generierten IDs für die Identitätsspalte oder NULL, wenn die Spalte keine Identitätsspalte ist.
identity_maximum INT64 Der maximale Wert, der für die Identitätsspalte generiert werden kann, oder NULL, wenn die Spalte keine Identitätsspalte ist.
identity_minimum INT64 Der Mindestwert, der für die Identitätsspalte generiert werden kann, oder NULL, wenn die Spalte keine Identitätsspalte ist.
identity_cycle STRING Wenn die Spalte eine Identitätsspalte ist, lautet dieser Wert NEVER. Andernfalls lautet der Wert NULL.

Aus Gründen der Stabilität empfehlen wir, Spalten in Ihren Informationsschemaabfragen explizit aufzulisten, anstatt einen Platzhalter (SELECT *) zu verwenden. Durch das explizite Auflisten von Spalten wird verhindert, dass Abfragen fehlschlagen, wenn sich das zugrunde liegende Schema ändert.

Bereich und Syntax

Für Abfragen dieser Ansicht muss ein Dataset- oder Regions-Qualifier verwendet werden. Für Abfragen mit einem Dataset-Qualifier benötigen Sie Berechtigungen für das Dataset. Für Abfragen mit einem Regions-Qualifier müssen Sie Berechtigungen für das Projekt haben. Weitere Informationen finden Sie unter Syntax. In der folgenden Tabelle werden die Regions- und Ressourcenbereiche für diese Ansicht erläutert:

Ansichtsname Ressourcenbereich Regionsbereich
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.COLUMNS auf Projektebene REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS Dataset-Ebene Dataset-Speicherort
Dabei gilt:
  • Optional: PROJECT_ID: die ID Ihres Google Cloud -Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.
  • REGION: ist ein beliebiger Dataset-Regionsname. Beispiel: `region-us`
  • DATASET_ID: die ID Ihres Datasets. Weitere Informationen finden Sie unter Dataset-Qualifier.

Beispiel

Im folgenden Beispiel werden aus der Ansicht INFORMATION_SCHEMA.COLUMNS Metadaten für die Tabelle population_by_zip_2010 im Dataset census_bureau_usa abgerufen. Dieses Dataset ist Teil des öffentlichen Dataset-Programms von BigQuery.

Da sich die abgefragte Tabelle in einem anderen Projekt (bigquery-public-data) befindet, fügen Sie dem Dataset die Projekt-ID im Format `project_id`.dataset.INFORMATION_SCHEMA.view hinzu, beispielsweise so: `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.

Die folgende Spalte ist nicht in den Abfrageergebnissen enthalten:

  • IS_UPDATABLE
  SELECT
    * EXCEPT(is_updatable)
  FROM
    `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS
  WHERE
    table_name = 'population_by_zip_2010';

Das Ergebnis sieht etwa so aus. Zur besseren Lesbarkeit werden einige Spalten aus dem Ergebnis ausgeschlossen.

+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+
|       table_name       | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position | policy_tags |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+
| population_by_zip_2010 | zipcode     |                1 | NO          | STRING    | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | geo_id      |                2 | YES         | STRING    | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | minimum_age |                3 | YES         | INT64     | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | maximum_age |                4 | YES         | INT64     | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | gender      |                5 | YES         | STRING    | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | population  |                6 | YES         | INT64     | NO        | NO                | NO                     |                        NULL | 0 rows      |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+