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.
|
sync_status |
JSON |
Der Synchronisierungsstatus zwischen den primären und sekundären Replikaten für Datasets für regionenübergreifende Replikation und Notfallwiederherstellung. Gibt NULL zurück, wenn das Replikat ein primäres Replikat ist oder das Dataset keine Replikation verwendet. |
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. |
Aus Stabilitätsgründen empfehlen wir, Spalten in Ihren Informationsschema-Abfragen explizit aufzulisten, anstatt ein Platzhalterzeichen (SELECT *) zu verwenden. So 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.TABLES |
auf Projektebene | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLES |
Dataset-Ebene | Dataset-Speicherort |
-
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
-- 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", "")] |
| | ); |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+