Répertorier des vues

Ce document explique comment répertorier des vues dans BigQuery.

Vous pouvez répertorier les vues d'ensembles de données de différentes manières :

  • En utilisant la console Google Cloud
  • En utilisant la commande bq ls de l'outil de ligne de commande bq
  • En appelant la méthode API tables.list
  • Utiliser les bibliothèques clientes

Avant de commencer

Attribuez aux utilisateurs des rôles IAM (Identity and Access Management) incluant les autorisations nécessaires pour effectuer l'ensemble des tâches du présent document.

Autorisations requises

Pour répertorier les vues d'un ensemble de données, vous devez disposer de l'autorisation IAM bigquery.tables.list.

Chacun des rôles IAM prédéfinis suivants inclut les autorisations dont vous avez besoin pour répertorier les vues d'un ensemble de données :

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

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Répertorier des vues

Le processus permettant de répertorier des vues est le même que pour les tables.

Pour répertorier les vues dans un ensemble de données :

Console

  1. Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.

  2. Faites défiler la liste pour voir les tables de l'ensemble de données. Les tables et les vues sont identifiées par des icônes différentes.

    Icône table et vue

bq

Exécutez la commande bq ls. L'option --format peut être utilisée pour contrôler le résultat. Si vous répertoriez des vues dans un projet autre que votre projet par défaut, ajoutez l'ID du projet à l'ensemble de données, en respectant le format suivant : project_id:dataset.

bq ls --format=pretty project_id:dataset

Où :

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

Lorsque vous exécutez la commande, le champ Type affiche TABLE ou VIEW. Par exemple :

+-------------------------+-------+----------------------+-------------------+
|         tableId         | Type  |        Labels        | Time Partitioning |
+-------------------------+-------+----------------------+-------------------+
| mytable                 | TABLE | department:shipping  |                   |
| myview                  | VIEW  |                      |                   |
+-------------------------+-------+----------------------+-------------------+

Exemples :

Saisissez la commande suivante pour répertorier les vues de l'ensemble de données mydataset dans votre projet par défaut.

bq ls --format=pretty mydataset

Saisissez la commande suivante pour répertorier les vues de l'ensemble de données mydataset dans myotherproject.

bq ls --format=pretty myotherproject:mydataset

API

Pour répertorier les vues à l'aide de l'API, appelez la méthode tables.list.

Go

Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du 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 pour Go.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
	"google.golang.org/api/iterator"
)

// listTables demonstrates iterating through the collection of tables in a given dataset.
func listTables(w io.Writer, projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// tableID := "mytable"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	ts := client.Dataset(datasetID).Tables(ctx)
	for {
		t, err := ts.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return err
		}
		fmt.Fprintf(w, "Table: %q\n", t.TableID)
	}
	return nil
}

Python

Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du 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 pour Python.


from google.cloud import bigquery

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

# TODO(developer): Set dataset_id to the ID of the dataset that contains
#                  the tables you are listing.
# dataset_id = 'your-project.your_dataset'

tables = client.list_tables(dataset_id)  # Make an API request.

print("Tables contained in '{}':".format(dataset_id))
for table in tables:
    print("{}.{}.{}".format(table.project, table.dataset_id, table.table_id))

Afficher la sécurité

Pour contrôler l'accès aux vues dans BigQuery, consultez la page Vues autorisées.

Étapes suivantes