Ansicht TABLES
Die Ansicht INFORMATION_SCHEMA.TABLES
enthält eine Zeile für jede Tabelle oder Ansicht in einem Dataset. Die Ansichten TABLES
und TABLE_OPTIONS
enthalten auch allgemeine Informationen zu Ansichten.
Detaillierte Informationen erhalten Sie, wenn Sie die Ansicht INFORMATION_SCHEMA.VIEWS
abfragen.
Erforderliche Berechtigungen
Zum Abfragen der INFORMATION_SCHEMA.TABLES
-Ansicht benötigen Sie folgende IAM-Berechtigungen (Identity and Access Management):
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
Die folgenden vordefinierten IAM-Rollen enthalten jeweils die vorherigen Berechtigungen:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Schema
Wenn Sie die Ansicht INFORMATION_SCHEMA.TABLES
abfragen, wird in den Abfrageergebnissen jede Tabelle oder Ansicht eines Datasets in einer eigenen Zeile dargestellt. Detaillierte Informationen zu Ansichten erhalten Sie, wenn Sie stattdessen die Ansicht INFORMATION_SCHEMA.VIEWS
abfragen.
Die Ansicht INFORMATION_SCHEMA.TABLES
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 oder Ansicht enthält. Wird auch als datasetId bezeichnet. |
table_name |
STRING |
Der Name der Tabelle oder Ansicht. Wird auch als tableId bezeichnet. |
table_type |
STRING |
Der Tabellentyp; einer der folgenden:
|
is_insertable_into |
STRING |
YES oder NO , je nachdem, ob die Tabelle DML INSERT-Anweisungen unterstützt |
is_typed |
STRING |
Der Wert ist immer NO |
creation_time |
TIMESTAMP |
Der Erstellungszeitpunkt der Tabelle |
base_table_catalog |
STRING |
Für Tabellenklone und Tabellen-Snapshots ist dies das Projekt der Basistabelle. Gilt nur für Tabellen, bei denen table_type auf CLONE oder SNAPSHOT gesetzt ist.
|
base_table_schema |
STRING |
Für Tabellenklone und Tabellen-Snapshots ist dies das Dataset der Basistabelle. Gilt nur für Tabellen, bei denen table_type auf CLONE oder SNAPSHOT gesetzt ist. |
base_table_name |
STRING |
Für Tabellenklone und Tabellen-Snapshots ist dies der Name der Basistabelle. Gilt nur für Tabellen, bei denen table_type auf CLONE oder SNAPSHOT gesetzt ist. |
snapshot_time_ms |
TIMESTAMP |
Für Tabellenklone und Tabellen-Snapshots ist dies der Zeitpunkt, zu dem der Klon- oder Snapshot-Vorgang zur Erstellung dieser Tabelle für die Basistabelle ausgeführt wurde. Wenn Zeitreise verwendet wurde, enthält dieses Feld den Zeitreise-Zeitstempel. Andernfalls ist das Feld snapshot_time_ms mit dem Feld creation_time identisch. Gilt nur für Tabellen, bei denen table_type auf CLONE oder SNAPSHOT gesetzt ist.
|
replica_source_catalog |
STRING |
Bei Replikaten der materialisierten Ansicht ist dies das Projekt der materialisierten Basisansicht. |
replica_source_schema |
STRING |
Bei Replikaten der materialisierten Ansicht ist dies das Dataset der materialisierten Basisansicht. |
replica_source_name |
STRING |
Für Replikate der materialisierten Ansicht ist dies der Name der materialisierten Basisansicht. |
replication_status |
STRING |
Bei Replikaten der materialisierten Ansicht der Status der Replikation von der materialisierten Basisansicht zum Replikat der materialisierten Ansicht. Folgende Status sind möglich:
|
replication_error |
STRING |
Wenn replication_status auf ein Replikationsproblem für ein Replikat einer materialisierten Ansicht hinweist, enthält replication_error weitere Details zum Problem. |
ddl |
STRING |
Die DDL-Anweisung, mit der die Tabelle neu erstellt werden kann, z. B. CREATE TABLE oder CREATE VIEW |
default_collation_name |
STRING |
Der Name der standardmäßigen Sortierspezifikation, falls vorhanden. Andernfalls NULL .
|
upsert_stream_apply_watermark |
TIMESTAMP |
Bei Tabellen, die Change Data Capture (CDC) verwenden, ist dies der Zeitpunkt der letzten Anwendung von Zeilenänderungen. Weitere Informationen finden Sie unter Fortschritt des Tabellen-Upsert-Vorgangs überwachen. |
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.TABLES |
auf Projektebene | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLES |
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
-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;
Beispiele
Beispiel 1:
Im folgenden Beispiel werden Tabellenmetadaten für alle Tabellen im Dataset mydataset
abgerufen. Die zurückgegebenen Metadaten gelten für alle Tabellentypen in mydataset
in Ihrem Standardprojekt.
mydataset
enthält folgende Tabellen:
mytable1
: eine Standard-BigQuery-Tabellemyview1
: Eine BigQuery-Ansicht
Dem Dataset fügen Sie die Projekt-ID im folgenden Format hinzu, um die Abfrage für ein anderes Projekt als Ihr Standardprojekt auszuführen: `project_id`.dataset.INFORMATION_SCHEMA.view
; beispielsweise `myproject`.mydataset.INFORMATION_SCHEMA.TABLES
.
SELECT table_catalog, table_schema, table_name, table_type, is_insertable_into, creation_time, ddl FROM mydataset.INFORMATION_SCHEMA.TABLES;
Das Ergebnis sieht etwa so aus. Zur besseren Lesbarkeit werden einige Spalten aus dem Ergebnis ausgeschlossen.
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+ | table_catalog | table_schema | table_name | table_type | is_insertable_into | creation_time | ddl | +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+ | myproject | mydataset | mytable1 | BASE TABLE | YES | 2018-10-29 20:34:44 | CREATE TABLE `myproject.mydataset.mytable1` | | | | | | | | ( | | | | | | | | id INT64 | | | | | | | | ); | | myproject | mydataset | myview1 | VIEW | NO | 2018-12-29 00:19:20 | CREATE VIEW `myproject.mydataset.myview1` | | | | | | | | AS SELECT 100 as id; | +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
Beispiel 2:
Im folgenden Beispiel werden Tabellenmetadaten für alle Tabellen des Typs CLONE
oder SNAPSHOT
aus der Ansicht INFORMATION_SCHEMA.TABLES
abgerufen. Die zurückgegebenen Metadaten beziehen sich auf Tabellen in mydataset
in Ihrem Standardprojekt.
Dem Dataset fügen Sie die Projekt-ID im folgenden Format hinzu, um die Abfrage für ein anderes Projekt als Ihr Standardprojekt auszuführen: `project_id`.dataset.INFORMATION_SCHEMA.view
; beispielsweise `myproject`.mydataset.INFORMATION_SCHEMA.TABLES
.
SELECT table_name, table_type, base_table_catalog, base_table_schema, base_table_name, snapshot_time_ms FROM mydataset.INFORMATION_SCHEMA.TABLES WHERE table_type = 'CLONE' OR table_type = 'SNAPSHOT';
Das Ergebnis sieht etwa so aus. Zur besseren Lesbarkeit werden einige Spalten aus dem Ergebnis ausgeschlossen.
+--------------+------------+--------------------+-------------------+-----------------+---------------------+ | table_name | table_type | base_table_catalog | base_table_schema | base_table_name | snapshot_time_ms | +--------------+------------+--------------------+-------------------+-----------------+---------------------+ | items_clone | CLONE | myproject | mydataset | items | 2018-10-31 22:40:05 | | orders_bk | SNAPSHOT | myproject | mydataset | orders | 2018-11-01 08:22:39 | +--------------+------------+--------------------+-------------------+-----------------+---------------------+
Beispiel 3:
Im folgenden Beispiel werden die Spalten table_name
und ddl
aus der Ansicht INFORMATION_SCHEMA.TABLES
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 befindet, fügen Sie dem Dataset die Projekt-ID im folgenden Format hinzu: `project_id`.dataset.INFORMATION_SCHEMA.view
.
In diesem Beispiel ist der Wert `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
.
SELECT table_name, ddl FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES WHERE table_name = 'population_by_zip_2010';
Das Ergebnis sieht etwa so aus:
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | table_name | ddl | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | population_by_zip_2010 | CREATE TABLE `bigquery-public-data.census_bureau_usa.population_by_zip_2010` | | | ( | | | geo_id STRING OPTIONS(description="Geo code"), | | | zipcode STRING NOT NULL OPTIONS(description="Five digit ZIP Code Tabulation Area Census Code"), | | | population INT64 OPTIONS(description="The total count of the population for this segment."), | | | minimum_age INT64 OPTIONS(description="The minimum age in the age range. If null, this indicates the row as a total for male, female, or overall population."), | | | maximum_age INT64 OPTIONS(description="The maximum age in the age range. If null, this indicates the row as having no maximum (such as 85 and over) or the row is a total of the male, female, or overall population."), | | | gender STRING OPTIONS(description="male or female. If empty, the row is a total population summary.") | | | ) | | | OPTIONS( | | | labels=[("freebqcovid", "")] | | | ); | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+