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 d'API datasets.get
  • Interrogation des vues INFORMATION_SCHEMA (bêta)

Autorisations requises

Pour obtenir des informations sur les métadonnées d'un ensemble de données, vous devez disposer du rôle READER au niveau de l'ensemble de données, ou bien détenir au niveau du projet un rôle IAM qui comprend les autorisations bigquery.datasets.get. Tous les rôles IAM prédéfinis au niveau du projet incluent les autorisations bigquery.datasets.get, à l'exception de bigquery.jobUser.

Pour en savoir plus sur les autorisations et les rôles IAM dans BigQuery, consultez la page Contrôle des accès. Pour en savoir plus sur les rôles au niveau de l'ensemble de données, consultez la section Rôles primitifs pour les ensembles de données.

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 :

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.

Ligne de commande

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 votre projet 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 d'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 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 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 de tester cet exemple, suivez la procédure de configuration de Python 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 Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_id = 'my_dataset'

dataset_ref = client.dataset(dataset_id)
dataset = client.get_dataset(dataset_ref)  # API request

# View dataset properties
print('Dataset ID: {}'.format(dataset_id))
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_ref))  # API request(s)
if tables:
    for table in tables:
        print('\t{}'.format(table.table_id))
else:
    print('\tThis dataset does not contain any tables.')

INFORMATION_SCHEMA (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

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]:[DATASET].INFORMATION_SCHEMA.[VIEW]`, par exemple `myproject:mydataset.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 à l'UI Web de BigQuery

  2. Saisissez la requête en 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 la console GCP.

    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'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 :

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

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]:[DATASET].INFORMATION_SCHEMA.[VIEW]`, par exemple `myproject:mydataset.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 à l'UI Web de BigQuery

  2. Saisissez la requête en 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 la console GCP.

    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'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 :

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 au nom de l'ensemble de données, en respectant le format suivant : `[PROJECT_ID]:[DATASET].INFORMATION_SCHEMA.[VIEW]`, par exemple `myproject:mydataset.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 à l'UI Web de BigQuery

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

    Accéder à l'UI Web de BigQuery

  3. Saisissez la requête en 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 la console GCP.

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

Ligne de commande

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 :

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.