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; bei einer Pseudospalte wie _PARTITIONTIME oder _PARTITIONDATE ist der Wert NULL.
is_nullable STRING YES oder NO, je nachdem, ob der Spalten modus 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 ist der Wert NEVER.
generation_expression STRING Der Wert ist der Ausdruck, der zum Generieren der Spalte verwendet wird wenn die Spalte eine automatisch generierte Einbettungsspalte ist. Andernfalls ist der Wert NULL.
is_stored STRING Der Wert ist YES, wenn die Spalte eine automatisch generierte Einbettungsspalte ist. Andernfalls ist der Wert NULL.
async_generation_status STRUCT Enthält blockierende Fehler für Hintergrundjobs zur Einbettungserstellung, wenn die Spalte eine automatisch generierte Einbettungsspalte ist. Andernfalls ist der Wert NULL. Informationen zu blockierenden Fehlern finden Sie im Feld async_generation_status.blocking_error.message. Blockierende Fehler können folgende Ursachen haben:
  • Fehler „Berechtigung verweigert“
  • Fehler des Typs „Nicht gefunden“
  • Fehler des Typs „Nicht unterstützter Einbettungsmodell-Endpunkt“
  • Fehler des Typs „Vertex AI API nicht aktiviert“
Sobald der nächste Job zur Einbettungserstellung erfolgreich abgeschlossen wurde, wird die async_generation_status Spalte 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 ein 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).
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 Einer der Werte ALWAYS oder BY DEFAULT, je nach Generierungsmodus der Identitätsspalte. Wenn die Spalte keine Identitäts Spalte ist, ist 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 aufeinanderfolgend generierten IDs für die Identitätsspalte oder NULL wenn die Spalte keine Identitätsspalte ist.
identity_maximum INT64 Der Maximalwert, der für die Identitätsspalte generiert werden kann, oder NULL wenn die Spalte keine Identitätsspalte ist.
identity_minimum INT64 Der Minimalwert, 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, ist dieser Wert NEVER. Andernfalls ist der Wert NULL.

Aus Stabilitätsgründen empfehlen wir, Spalten in Ihren Informationsschema-Abfragen explizit aufzulisten, anstatt einen Platzhalter (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- 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 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 folgenden Format hinzu: `project_id`.dataset.INFORMATION_SCHEMA.view; 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      |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+