Obtenir des métadonnées d'ensemble de données à l'aide de INFORMATION_SCHEMA

INFORMATION_SCHEMA contient les vues suivantes pour les métadonnées de l'ensemble de données :

  • SCHEMATA
  • SCHEMATA_OPTIONS

Autorisations requises

Pour SCHEMATA et SCHEMATA_OPTIONS, vous devez disposer de l'autorisation bigquery.datasets.get.

Vue SCHEMATA

Lorsque vous interrogez la vue INFORMATION_SCHEMA.SCHEMATA, les résultats de la requête contiennent une ligne pour chaque ensemble de données d'un projet auquel l'utilisateur actuel a accès.

La vue INFORMATION_SCHEMA.SCHEMATA présente le schéma suivant :

Nom de la colonne Type de données Valeur
CATALOG_NAME STRING Nom du projet qui contient l'ensemble de données
SCHEMA_NAME STRING Nom de l'ensemble de données (également appelé datasetId)
SCHEMA_OWNER STRING La valeur est toujours NULL
CREATION_TIME TIMESTAMP Date/Heure de création de l'ensemble de données
LAST_MODIFIED_TIME TIMESTAMP Date/Heure de la dernière modification de l'ensemble de données
LOCATION STRING Emplacement géographique de l'ensemble de données

Exemples

L'exemple suivant récupère toutes les colonnes de la vue INFORMATION_SCHEMA.SCHEMATA, à l'exception de schema_owner qui est réservée en vue d'une utilisation ultérieure. Les métadonnées renvoyées concernent tous les ensembles de données du projet par défaut (myproject).

Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : `project_id`.INFORMATION_SCHEMA.view Par exemple : `myproject`.INFORMATION_SCHEMA.SCHEMATA.

Pour exécuter la requête :

Console

  1. Ouvrez l'UI Web de BigQuery dans Cloud Console.

    Accéder à Cloud Console

  2. Saisissez la requête SQL standard suivante dans la zone Éditeur de requête. INFORMATION_SCHEMA requiert la syntaxe SQL standard. Le langage SQL standard est la syntaxe par défaut dans Cloud Console.

    SELECT
     * EXCEPT(schema_owner)
    FROM
     INFORMATION_SCHEMA.SCHEMATA
    
  3. Cliquez sur Exécuter.

Ligne de commande

Exécutez la commande query, puis spécifiez la syntaxe SQL standard à l'aide de l'option --nouse_legacy_sql ou --use_legacy_sql=false. La syntaxe SQL standard est requise pour les requêtes INFORMATION_SCHEMA.

Pour exécuter la requête, saisissez :

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(schema_owner)
 FROM
   INFORMATION_SCHEMA.SCHEMATA'

Les résultats doivent se présenter sous la forme suivante :

  +----------------+---------------+---------------------+---------------------+-----------------+
  |  catalog_name  |  schema_name  |    creation_time    | last_modified_time  |    location     |
  +----------------+---------------+---------------------+---------------------+-----------------+
  | myproject      | mydataset1    | 2018-11-07 19:50:24 | 2018-11-07 19:50:24 | US              |
  | myproject      | mydataset2    | 2018-07-16 04:24:22 | 2018-07-16 04:24:22 | US              |
  | myproject      | mydataset3    | 2018-02-07 21:08:45 | 2018-05-01 23:32:53 | asia-northeast1 |
  +----------------+---------------+---------------------+---------------------+-----------------+
  

Vue SCHEMATA_OPTIONS

Lorsque vous interrogez la vue INFORMATION_SCHEMA.SCHEMATA_OPTIONS, les résultats de la requête contiennent une ligne pour chaque ensemble de données d'un projet auquel l'utilisateur actuel a accès.

La vue INFORMATION_SCHEMA.SCHEMATA_OPTIONS présente le schéma suivant :

Nom de la colonne Type de données Valeur
CATALOG_NAME STRING Nom du projet qui contient l'ensemble de données
SCHEMA_NAME STRING Nom de l'ensemble de données (également appelé datasetId)
OPTION_NAME STRING Une des valeurs de nom figurant dans la table d'options
OPTION_TYPE STRING Une des valeurs de type de données figurant dans la table d'options
OPTION_VALUE STRING Une des options de valeur figurant dans la table d'options

Table d'options
OPTION_NAME OPTION_TYPE OPTION_VALUE
default_table_expiration_days FLOAT64 Durée de vie par défaut, en jours, de toutes les tables de l'ensemble de données
friendly_name STRING Nom descriptif de l'ensemble de données
description STRING Description de l'ensemble de données
labels ARRAY<STRUCT<STRING, STRING>> Tableau de valeurs STRUCT représentant les libellés de l'ensemble de données

Exemples

Exemple 1 :

L'exemple suivant récupère les délais d'expiration de table par défaut pour tous les ensembles de données de votre projet par défaut (myproject) en interrogeant la vue INFORMATION_SCHEMATA.SCHEMATA_OPTIONS.

Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : `project_id`.INFORMATION_SCHEMA.view Par exemple : `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Pour exécuter la requête :

Console

  1. Ouvrez l'UI Web de BigQuery dans Cloud Console.

    Accéder à Cloud Console

  2. Saisissez la requête SQL standard suivante dans la zone Éditeur de requête. INFORMATION_SCHEMA requiert la syntaxe SQL standard. Le langage SQL standard est la syntaxe par défaut dans Cloud Console.

    SELECT
     *
    FROM
     INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
     option_name="default_table_expiration_days"
    
  3. Cliquez sur Exécuter.

Ligne de commande

Exécutez la commande query, puis spécifiez la syntaxe SQL standard à l'aide de l'option --nouse_legacy_sql ou --use_legacy_sql=false. La syntaxe SQL standard est requise pour les requêtes INFORMATION_SCHEMA.

Pour exécuter la requête, saisissez :

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   INFORMATION_SCHEMA.SCHEMATA_OPTIONS
 WHERE
   option_name="default_table_expiration_days"'

Les résultats doivent se présenter sous la forme suivante :

  +----------------+---------------+-------------------------------+-------------+---------------------+
  |  catalog_name  |  schema_name  |          option_name          | option_type |    option_value     |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  | myproject      | mydataset3    | default_table_expiration_days | FLOAT64     | 0.08333333333333333 |
  | myproject      | mydataset2    | default_table_expiration_days | FLOAT64     | 90.0                |
  | myproject      | mydataset1    | default_table_expiration_days | FLOAT64     | 30.0                |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  

Exemple 2 :

L'exemple suivant récupère les libellés de tous les ensembles de données de votre projet par défaut (myproject) en interrogeant la vue INFORMATION_SCHEMATA.SCHEMATA_OPTIONS.

Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : `project_id`.INFORMATION_SCHEMA.view. Par exemple : `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Pour exécuter la requête :

Console

  1. Ouvrez l'UI Web de BigQuery dans Cloud Console.

    Accéder à Cloud Console

  2. Saisissez la requête SQL standard suivante dans la zone Éditeur de requête. INFORMATION_SCHEMA requiert la syntaxe SQL standard. Le langage SQL standard est la syntaxe par défaut dans Cloud Console.

    SELECT
     *
    FROM
     INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
     option_name="labels"
    
  3. Cliquez sur Exécuter.

Ligne de commande

Exécutez la commande query, puis spécifiez la syntaxe SQL standard à l'aide de l'option --nouse_legacy_sql ou --use_legacy_sql=false. La syntaxe SQL standard est requise pour les requêtes INFORMATION_SCHEMA.

Pour exécuter la requête, saisissez :

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   INFORMATION_SCHEMA.SCHEMATA_OPTIONS
 WHERE
   option_name="labels"'

Les résultats doivent se présenter sous la forme suivante :

  +----------------+---------------+-------------+---------------------------------+------------------------+
  |  catalog_name  |  schema_name  | option_name |          option_type            |      option_value      |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  | myproject      | mydataset1    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  | myproject      | mydataset2    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  +----------------+---------------+-------------+---------------------------------+------------------------+