Vue TABLES
La vue INFORMATION_SCHEMA.TABLES
contient une ligne pour chaque table ou vue d'un ensemble de données. Les vues TABLES
et TABLE_OPTIONS
contiennent également des informations générales sur les vues.
Pour obtenir des informations détaillées, interrogez la vue INFORMATION_SCHEMA.VIEWS
.
Autorisations requises
Pour interroger la vue INFORMATION_SCHEMA.TABLES
, vous avez besoin des autorisations IAM (Identity and Access Management) suivantes :
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
Chacun des rôles IAM prédéfinis suivants inclut les autorisations ci-dessus :
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
Pour plus d'informations sur les autorisations BigQuery, consultez la page Contrôle des accès avec IAM.
Schéma
Lorsque vous interrogez la vue INFORMATION_SCHEMA.TABLES
, les résultats de la requête contiennent une ligne pour chaque table ou vue d'un ensemble de données. Pour obtenir des informations détaillées sur les vues, interrogez plutôt la vue INFORMATION_SCHEMA.VIEWS
.
La vue INFORMATION_SCHEMA.TABLES
présente le schéma suivant :
Nom de la colonne | Type de données | Valeur |
---|---|---|
table_catalog |
STRING |
ID du projet qui contient l'ensemble de données. |
table_schema |
STRING |
Nom de l'ensemble de données contenant la table ou la vue, également appelé datasetId . |
table_name |
STRING |
Nom de la table ou de la vue, également appelé tableId . |
table_type |
STRING |
Type de table (l'un des éléments suivants) :
|
is_insertable_into |
STRING |
YES ou NO , suivant que la table accepte ou non les instructions LMD INSERT |
is_typed |
STRING |
La valeur est toujours NO |
creation_time |
TIMESTAMP |
Date/Heure de création de la table |
base_table_catalog |
STRING |
Pour les clones de table et les instantanés de table, le projet de la table de base. Applicable uniquement aux tables dont la valeur table_type est définie sur CLONE ou SNAPSHOT .
|
base_table_schema |
STRING |
Pour les clones de table et les instantanés de table, l'ensemble de données de la table de base. Applicable uniquement aux tables dont la valeur table_type est définie sur CLONE ou SNAPSHOT . |
base_table_name |
STRING |
Pour les clones de table et les instantanés de table, le nom de la table de base. Applicable uniquement aux tables dont la valeur table_type est définie sur CLONE ou SNAPSHOT . |
snapshot_time_ms |
TIMESTAMP |
Pour les clones de tables et les instantanés de table, le moment où l'opération de clonage ou de génération d'instantané a été exécutée sur la table de base pour créer cette table. Si la fonctionnalité temporelle a été utilisée, ce champ contient l'horodatage de la fonctionnalité temporelle. Sinon, le champ snapshot_time_ms est identique au champ creation_time . Applicable uniquement aux tables dont la valeur table_type est définie sur CLONE ou SNAPSHOT .
|
replica_source_catalog |
STRING |
Pour les instances répliquées de vues matérialisées, le projet de la vue matérialisée de base. |
replica_source_schema |
STRING |
Pour les instances répliquées de vues matérialisées, l'ensemble de données de la vue matérialisée de base. |
replica_source_name |
STRING |
Pour les instances répliquées de vues matérialisées, le nom de la vue matérialisée de base. |
replication_status |
STRING |
Pour les instances répliquées de vues matérialisées, l'état de la réplication de la vue matérialisée de base vers l'instance répliquée de la vue matérialisée ; l'une des options suivantes :
|
replication_error |
STRING |
Si replication_status indique un problème de réplication pour une instance répliquée de vue matérialisée, replication_error fournit des informations supplémentaires. |
ddl |
STRING |
L'Instruction LDD peut être utilisée pour recréer la table, par exemple CREATE TABLE ou CREATE VIEW |
default_collation_name |
STRING |
Nom de la spécification de classement par défaut, le cas échéant. Dans le cas contraire, cette valeur est définie sur NULL .
|
upsert_stream_apply_watermark |
TIMESTAMP |
Heure de la dernière application des modifications de ligne pour les tables qui utilisent la capture des données modifiées (CDC). Pour en savoir plus, consultez la page Surveiller la progression des opérations upsert de la table. |
Champ d'application et syntaxe
Les requêtes exécutées sur cette vue doivent inclure un ensemble de données ou un qualificatif de région. Pour les requêtes avec un qualificatif d'ensemble de données, vous devez disposer d'autorisations pour l'ensemble de données. Pour les requêtes avec un qualificatif de région, vous devez disposer des autorisations nécessaires sur le projet. Pour en savoir plus, consultez la section Syntaxe. Le tableau suivant explique la portée des régions et des ressources pour cette vue :
Nom de la vue | Champ d'application de la ressource | Champ d'application de la région |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLES |
Niveau Projet | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLES |
Niveau de l'ensemble de données | Emplacement d'un ensemble de données |
- Facultatif :
PROJECT_ID
: ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
REGION
: nom de la région de l'ensemble de données.
Par exemple, region-us
.
+ DATASET_ID
: ID de votre ensemble de données. Pour en savoir plus, consultez la section Qualificatif d'ensemble de données.
Exemple
-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;
Exemples
Exemple 1 :
L'exemple suivant récupère les métadonnées de toutes les tables de l'ensemble de données nommé mydataset
. Les métadonnées renvoyées concernent tous les types de tables de mydataset
dans votre projet par défaut.
mydataset
contient les tables suivantes :
mytable1
: une table BigQuery standardmyview1
: une vue BigQuery
Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet à l'ensemble de données, en respectant le format suivant : `project_id`.dataset.INFORMATION_SCHEMA.view
. Par exemple : `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;
Le résultat ressemble à ce qui suit. Pour des raisons de lisibilité, certaines colonnes sont exclues des résultats.
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+ | 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; | +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
Exemple 2 :
L'exemple suivant récupère les métadonnées de toutes les tables de type CLONE
ou SNAPSHOT
à partir de la vue INFORMATION_SCHEMA.TABLES
. Les métadonnées renvoyées concernent les tables dans mydataset
, dans votre projet par défaut.
Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet à l'ensemble de données, en respectant le format suivant : `project_id`.dataset.INFORMATION_SCHEMA.view
. Par exemple : `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';
Le résultat ressemble à ce qui suit. Pour des raisons de lisibilité, certaines colonnes sont exclues des résultats.
+--------------+------------+--------------------+-------------------+-----------------+---------------------+ | 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 | +--------------+------------+--------------------+-------------------+-----------------+---------------------+
Exemple 3 :
L'exemple suivant récupère les colonnes table_name
et ddl
de la vue INFORMATION_SCHEMA.TABLES
pour la table population_by_zip_2010
de l'ensemble de données census_bureau_usa
. Celui-ci fait partie du programme d'ensembles de données publics de BigQuery.
Comme la table que vous interrogez se trouve dans un autre projet, ajoutez l'ID du projet à l'ensemble de données en utilisant le format suivant : `project_id`.dataset.INFORMATION_SCHEMA.view
.
Dans cet exemple, la valeur est `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';
Le résultat ressemble à ce qui suit :
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 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", "")] | | | ); | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+