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.getbigquery.tables.listbigquery.routines.getbigquery.routines.list
Die folgenden vordefinierten IAM-Rollen enthalten jeweils die vorherigen Berechtigungen:
roles/bigquery.adminroles/bigquery.dataViewerroles/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:
|
managed_table_type |
STRING |
Diese Spalte befindet sich in der Vorschau. Der Typ der verwalteten Tabelle; einer der folgenden:
|
is_insertable_into |
STRING |
YES oder NO, je nachdem, ob die Tabelle DML INSERT-Anweisungen unterstützt |
is_fine_grained_mutations_enabled |
STRING |
YES oder NO, je nachdem, ob detaillierte DML-Mutationen für die Tabelle aktiviert sind
|
is_typed |
STRING |
Der Wert ist immer NO |
is_change_history_enabled |
STRING |
YES oder NO, je nachdem, ob der Änderungsverlauf aktiviert ist |
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 ein Replikationsproblem für ein Replikat der materialisierten Ansicht angibt, 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-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
-- 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", "")] |
| | ); |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+