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 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 immer NEVER |
GENERATION_EXPRESSION |
STRING |
Der Wert ist immer NULL |
IS_STORED |
STRING |
Der Wert ist immer NULL |
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 Werte in das Feld verwendet wird, wenn deren Typ ein parametrisierter NUMERIC oder BIGNUMERIC ist. Andernfalls ist der Wert NULL .
|
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-Standort |
- Optional:
PROJECT_ID
: die ID Ihres Google Cloud-Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.
REGION
: 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 folgenden Spalten sind nicht in den Abfrageergebnissen enthalten, da sie derzeit für eine zukünftige Verwendung reserviert sind:
IS_GENERATED
GENERATION_EXPRESSION
IS_STORED
IS_UPDATABLE
SELECT * EXCEPT(is_generated, generation_expression, is_stored, 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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+