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.getbigquery.tables.list
Die folgenden vordefinierten IAM-Rollen enthalten jeweils die vorherigen Berechtigungen:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/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 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 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 Spalte für Einbettungen ist. Andernfalls ist der Wert NEVER. |
generation_expression |
STRING |
Der Wert ist der Generierungsausdruck, der zum Definieren der Spalte verwendet wird, wenn es sich um eine automatisch generierte Einbettungsspalte handelt. Andernfalls ist der Wert NULL. |
is_stored |
STRING |
Der Wert ist YES, wenn es sich bei der Spalte um eine automatisch generierte Spalte für Einbettungen handelt. Andernfalls ist der Wert NULL. |
async_generation_status |
STRUCT |
Enthält blockierende Fehler für Hintergrundjobs zur Generierung von Einbettungen, 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.
Blockierungsfehler können folgende Ursachen haben:
async_generation_status geleert.
|
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. |
Aus Stabilitätsgründen empfehlen wir, Spalten in Ihren Informationsschema-Abfragen 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- 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 |
-
Optional:
PROJECT_ID: die ID Ihres Cloud de Confiance -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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+