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 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", "")]                                                                                                                                                                                             |
|                        | );                                                                                                                                                                                                                         |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+