Obtenir des informations sur les ensembles de données

Ce document explique comment obtenir des informations ou des métadonnées sur des ensembles de données dans BigQuery.

Vous pouvez obtenir des informations sur les ensembles de données selon l'une des méthodes suivantes :

  • Utilisation de la console GCP ou de l'UI Web classique de BigQuery
  • Utilisation de la commande CLI bq show
  • Appel de la méthode API datasets.get
  • Interrogation des vues INFORMATION_SCHEMA (version bêta)
  • Utiliser les bibliothèques clientes

Autorisations requises

Pour obtenir des informations ou des métadonnées sur un ensemble de données, vous devez au minimum disposer des autorisations bigquery.datasets.get. Les rôles Cloud IAM prédéfinis suivants incluent des autorisations bigquery.datasets.get :

  • bigquery.user
  • bigquery.metadataViewer
  • bigquery.dataViewer
  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

Pour en savoir plus sur les rôles et les autorisations Cloud IAM dans BigQuery, consultez la page Contrôle des accès.

Obtenir des informations sur les ensembles de données

Pour obtenir des informations sur les ensembles de données d'un projet, procédez comme suit :

Console

Cliquez sur le nom de l'ensemble de données dans le panneau Resources (Ressources). Sous Éditeur de requête, la description et les détails de l'ensemble de données devraient s'afficher. Les tables d'un ensemble de données sont imbriquées dans le panneau Resources (Ressources).

Afficher l'ensemble de données

Par défaut, les ensembles de données anonymes sont masqués dans l'interface utilisateur Web de BigQuery. Pour afficher des informations sur les ensembles de données anonymes, utilisez l'interface de ligne de commande ou l'API.

Interface utilisateur classique

Cliquez sur le nom de l'ensemble de données. La page Dataset Details (Détails de l'ensemble de données) affiche la description, les détails et les tables de l'ensemble de données.

Afficher l'ensemble de données

Par défaut, les ensembles de données anonymes sont masqués dans l'interface utilisateur Web de BigQuery. Pour afficher des informations sur les ensembles de données anonymes, utilisez l'interface de ligne de commande ou l'API.

CLI

Exécutez la commande bq show. L'indicateur --format peut être utilisé pour contrôler la sortie. Si vous souhaitez obtenir des informations sur un ensemble de données dans un projet autre que celui par défaut, ajoutez l'ID du projet à l'ensemble de données au format suivant : project_id:dataset.

Pour afficher des informations sur un ensemble de données anonyme, exécutez la commande bq ls --all pour répertorier tous les ensembles de données, puis utilisez le nom de l'ensemble de données anonyme dans la commande bq show.

bq show --format=prettyjson project_id:dataset

Où :

  • project_id est le nom de votre projet.
  • dataset est le nom de l'ensemble de données.

Exemples :

Saisissez la commande suivante pour afficher des informations sur mydataset dans votre projet par défaut :

bq show --format=prettyjson mydataset

Saisissez la commande suivante pour afficher des informations sur mydataset dans myotherproject.

bq show --format=prettyjson myotherproject:mydataset

Saisissez la commande suivante pour afficher des informations sur un ensemble de données anonyme _1234abcd56efgh78ijkl1234 dans votre projet par défaut :

bq show --format=prettyjson _1234abcd56efgh78ijkl1234

API

Appelez la méthode API datasets.get, puis indiquez tous les paramètres pertinents.

Go

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Go décrite dans le guide de démarrage rapide de BigQuery relatif à l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
meta, err := client.Dataset(datasetID).Metadata(ctx)
if err != nil {
	return err
}

fmt.Printf("Dataset ID: %s\n", datasetID)
fmt.Printf("Description: %s\n", meta.Description)
fmt.Println("Labels:")
for k, v := range meta.Labels {
	fmt.Printf("\t%s: %s", k, v)
}
fmt.Println("Tables:")
it := client.Dataset(datasetID).Tables(ctx)

cnt := 0
for {
	t, err := it.Next()
	if err == iterator.Done {
		break
	}
	cnt++
	fmt.Printf("\t%s\n", t.TableID)
}
if cnt == 0 {
	fmt.Println("\tThis dataset does not contain any tables.")
}

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Java.

DatasetId datasetId = DatasetId.of(projectId, datasetName);
Dataset dataset = bigquery.getDataset(datasetId);

Python

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Python décrite dans le guide de démarrage rapide de BigQuery relatif à l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Python.

from google.cloud import bigquery

# TODO(developer): Construct a BigQuery client object.
# client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset to fetch.
# dataset_id = 'your-project.your_dataset'

dataset = client.get_dataset(dataset_id)

full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
friendly_name = dataset.friendly_name
print(
    "Got dataset '{}' with friendly_name '{}'.".format(
        full_dataset_id, friendly_name
    )
)

# View dataset properties
print("Description: {}".format(dataset.description))
print("Labels:")
labels = dataset.labels
if labels:
    for label, value in labels.items():
        print("\t{}: {}".format(label, value))
else:
    print("\tDataset has no labels defined.")

# View tables in dataset
print("Tables:")
tables = list(client.list_tables(dataset))  # API request(s)
if tables:
    for table in tables:
        print("\t{}".format(table.table_id))
else:
    print("\tThis dataset does not contain any tables.")

Vues INFORMATION_SCHEMA (version bêta)

INFORMATION_SCHEMA est une série de vues offrant un accès aux métadonnées sur les ensembles de données, les tables et les vues.

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

Pour en savoir plus sur les propriétés des ensembles de données, consultez la page relative à la ressource d'ensemble de données dans la documentation de l'API REST.

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 à 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, procédez comme suit :

Console

  1. Ouvrez l'UI Web de BigQuery dans la console GCP.

    Accéder à la console GCP

  2. Saisissez la requête SQL standard suivante dans la zone Query editor (Éditeur de requête). INFORMATION_SCHEMA requiert la syntaxe SQL standard. Le langage SQL standard est la syntaxe par défaut dans la console GCP.

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

CLI

Exécutez la commande query, puis spécifiez la syntaxe SQL standard à l'aide de l'indicateur --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 la commande suivante :

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 étiquettes de l'ensemble de données

Pour en savoir plus sur les propriétés des ensembles de données, consultez la page relative à la ressource d'ensemble de données dans la documentation de l'API REST.

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 à 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, procédez comme suit :

Console

  1. Ouvrez l'UI Web de BigQuery dans la console GCP.

    Accéder à la console GCP

  2. Saisissez la requête SQL standard suivante dans la zone Query editor (Éditeur de requête). INFORMATION_SCHEMA requiert la syntaxe SQL standard. Le langage SQL standard est la syntaxe par défaut dans la console GCP.

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

CLI

Exécutez la commande query, puis spécifiez la syntaxe SQL standard à l'aide de l'indicateur --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 la commande suivante :

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 étiquettes 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 à 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, procédez comme suit :

Console

  1. Ouvrez l'UI Web de BigQuery dans la console GCP.

    Accéder à la console GCP

  2. Saisissez la requête SQL standard suivante dans la zone Query editor (Éditeur de requête). INFORMATION_SCHEMA requiert la syntaxe SQL standard. Le langage SQL standard est la syntaxe par défaut dans la console GCP.

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

CLI

Exécutez la commande query, puis spécifiez la syntaxe SQL standard à l'aide de l'indicateur --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 la commande suivante :

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

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.