Gérer les vues

Ce document explique comment gérer les vues dans Google BigQuery. La gestion des vues BigQuery repose sur les actions suivantes :

Copier une vue

Actuellement, la copie de vues n'est accessible qu'à l'aide de la console GCP.

L'interface utilisateur Web classique, la CLI, l'API REST et les bibliothèques clientes ne permettent pas de copier une vue. À la place, vous devez recréer la vue dans l'ensemble de données cible. Pour vous aider à recréer la vue, vous pouvez copier la requête SQL correspondante à l'aide de la CLI ou de l'interface utilisateur Web classique.

Pour copier une vue, procédez comme suit :

Console

  1. Dans le volet de navigation de l'interface utilisateur, sélectionnez la vue.

  2. À droite de la fenêtre, cliquez sur Copy View (Copier la vue).

  3. Dans la boîte de dialogue Copy view (Copier la vue) :

    • Dans la section Source, vérifiez que les champs Project name (Nom du projet), Dataset name (Nom de l'ensemble de données) et Table name (Nom de la table) sont corrects.
    • Dans la section Destination :

      • Dans Project name (Nom du projet), choisissez le projet dans lequel vous souhaitez copier la vue.
      • Dans Dataset name (Nom de l'ensemble de données), choisissez l'ensemble de données qui contiendra la vue copiée.
      • Dans Table name (Nom de la table), saisissez le nom de la vue. Vous pouvez renommer la vue en saisissant un nouveau nom dans le champ de saisie. Si vous décidez d'entrer un nouveau nom, celui-ci doit respecter les règles de dénomination des vues.

      Boîte de dialogue Copier la vue

    • Cliquez sur Copy (Copier).

UI classique

L'interface utilisateur Web classique ne permet pas de copier une vue. À la place, vous devez recréer la vue dans l'ensemble de données cible. Pour vous aider à recréer la vue, vous pouvez copier la requête SQL utilisée pour la définir.

Pour copier la requête SQL qui définit une vue, procédez comme suit :

  1. Dans le volet de navigation de l'interface utilisateur, sélectionnez la vue.

  2. Dans le panneau Détails de la vue, cliquez sur Détails.

  3. Copiez le texte dans la zone Requête.

CLI

L'outil de ligne de commande bq ne permet pas de copier une vue. À la place, vous devez recréer la vue dans l'ensemble de données cible. Pour vous aider à recréer la vue, vous pouvez copier la requête SQL utilisée pour la définir.

Pour copier la requête SQL qui définit une vue, exécutez la commande bq show. L'indicateur --format peut être utilisé pour contrôler le résultat. Si vous obtenez des informations sur une vue d'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]. Pour écrire les propriétés de la vue dans un fichier, ajoutez > [PATH_TO_FILE] à la commande.

bq show --format=prettyjson [PROJECT_ID]:[DATASET].[VIEW] > [PATH_TO_FILE]

Où :

  • [PROJECT_ID] est l'ID de votre projet.
  • [DATASET] est le nom de l'ensemble de données.
  • [VIEW] est le nom de la vue.
  • [PATH_TO_FILE] est le chemin d'accès au fichier de sortie sur votre machine locale.

Exemples :

Saisissez la commande suivante pour afficher des informations sur myview dans mydataset. mydataset se trouve dans le projet par défaut.

bq show --format=prettyjson mydataset.myview

Saisissez la commande suivante pour afficher des informations sur myview dans mydataset. mydataset se trouve dans myotherproject, pas dans le projet par défaut. Les propriétés de la vue sont écrites dans un fichier local : /tmp/myview.json.

bq show --format=prettyjson myotherproject:mydataset.myview > /tmp/myview.json

API

L'API REST ne permet pas de copier une vue. À la place, vous devez recréer la vue dans l'ensemble de données cible. Pour en savoir plus sur la création d'une vue à l'aide de l'API REST, consultez la section Créer une vue.

Renommer une vue

Actuellement, vous ne pouvez renommer une vue que si vous la copiez à l'aide de la console GCP. Pour découvrir comment renommer une vue au moment de la copie, reportez-vous à la section Copier une vue.

L'interface utilisateur Web classique, la CLI, l'API et les bibliothèques clientes ne permettent pas de renommer une vue. À la place, vous devez recréer la vue avec le nouveau nom.

Supprimer des vues

Vous pouvez supprimer une vue à l'aide des méthodes suivantes :

  • Utilisation de la console GCP ou de l'UI Web classique de BigQuery
  • Utilisation de la commande bq rm de l'outil de ligne de commande
  • Appel de la méthode d'API tables.delete

Actuellement, quelle que soit la méthode utilisée, vous ne pouvez supprimer qu'une vue à la fois.

Pour supprimer automatiquement des vues après une période donnée, définissez le délai d'expiration par défaut au niveau de l'ensemble de données ou spécifiez le délai d'expiration des vues au moment de leur création.

Autorisations requises

Pour supprimer une vue, vous devez disposer des mêmes autorisations que pour supprimer une table. Vous devez bénéficier d'un accès OWNER au niveau de l'ensemble de données, ou vous devez détenir un rôle IAM (au niveau du projet) qui comprend les autorisations bigquery.tables.delete. Les rôles IAM prédéfinis au niveau du projet incluent les autorisations bigquery.tables.delete :

Les utilisateurs auxquels est attribué un rôle prédéfini au niveau du projet peuvent supprimer des vues dans n'importe quel ensemble de données du projet. Ceux disposant d'autorisations OWNER au niveau de l'ensemble de données ne peuvent supprimer des vues que dans cet ensemble de données.

En outre, comme le rôle bigquery.user dispose des autorisations bigquery.datasets.create, un utilisateur ayant le rôle bigquery.user peut supprimer des vues dans tout ensemble de données qu'il crée. Lorsqu'un utilisateur détenant le rôle bigquery.user crée un ensemble de données, il bénéficie d'un accès OWNER à celui-ci. L'accès OWNER à un ensemble de données confère à l'utilisateur un contrôle total sur celui-ci, et sur toutes les tables et les vues qu'il contient.

Pour en savoir plus sur les rôles et les autorisations 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.

Supprimer une vue

Pour supprimer une vue :

UI classique

  1. Sélectionnez votre vue dans le panneau Ressources. Cliquez sur Supprimer la vue dans la partie droite de la fenêtre.

  2. Saisissez le nom de la vue dans la boîte de dialogue, puis cliquez sur Supprimer pour confirmer.

UI classique

  1. Cliquez sur la flèche vers le bas flèche vers le bas située à côté du nom de la vue dans la barre de navigation, puis cliquez sur Supprimer la vue.

  2. Lorsque vous y êtes invité, cliquez sur OK pour confirmer.

Ligne de commande

Pour supprimer une vue, exécutez la commande bq rm avec l'indicateur --table (ou le raccourci -t). Lorsque vous supprimez une vue à l'aide de la CLI, vous devez confirmer l'action. L'indicateur --force (ou le raccourci -f) vous permet d'ignorer cette étape.

Si la vue se trouve dans un ensemble de données d'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].

bq rm -f -t [PROJECT_ID]:[DATASET].[VIEW]

Où :

  • [PROJECT_ID] est l'ID de votre projet.
  • [DATASET] est le nom de l'ensemble de données contenant la table.
  • [VIEW] est le nom de la vue que vous supprimez.

Exemples :

Saisissez la commande suivante pour supprimer myview de mydataset. mydataset se trouve dans le projet par défaut.

bq rm -t mydataset.myview

Saisissez la commande suivante pour supprimer myview de mydataset. mydataset se trouve dans myotherproject, pas dans le projet par défaut.

bq rm -t myotherproject:mydataset.myview

Saisissez la commande suivante pour supprimer myview de mydataset. mydataset se trouve dans le projet par défaut. La commande se sert du raccourci -f pour contourner la confirmation.

bq rm -f -t mydataset.myview

API

Appelez la méthode API tables.delete, puis spécifiez la vue à supprimer à l'aide du paramètre tableId.

C#

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour C# 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 C#.

using Google.Cloud.BigQuery.V2;
using System;

public class BigQueryDeleteTable
{
    public void DeleteTable(
        string projectId = "your-project-id",
        string datasetId = "your_dataset_id",
        string tableId = "your_table_id"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        client.DeleteTable(datasetId, tableId);
        Console.WriteLine($"Table {tableId} deleted.");
    }
}

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 : Utiliser les 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")
table := client.Dataset(datasetID).Table(tableID)
if err := table.Delete(ctx); err != nil {
	return err
}

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.

TableId tableId = TableId.of(projectId, datasetName, tableName);
boolean deleted = bigquery.delete(tableId);
if (deleted) {
  // the table was deleted
} else {
  // the table was not found
}

Node.js

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Node.js 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 Node.js.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');

async function deleteTable() {
  // Deletes "my_table" from "my_dataset".

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = "my_dataset";
  // const tableId = "my_table";

  // Create a client
  const bigqueryClient = new BigQuery();

  // Delete the table
  await bigqueryClient
    .dataset(datasetId)
    .table(tableId)
    .delete();

  console.log(`Table ${tableId} deleted.`);
}
deleteTable();

PHP

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour PHP 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 PHP.

use Google\Cloud\BigQuery\BigQueryClient;

/** Uncomment and populate these variables in your code */
// $projectId = 'The Google project ID';
// $datasetId = 'The BigQuery dataset ID';
// $tableId = 'The BigQuery table ID';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$dataset = $bigQuery->dataset($datasetId);
$table = $dataset->table($tableId);
$table->delete();
printf('Deleted table %s.%s' . PHP_EOL, $datasetId, $tableId);

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 : Utiliser les 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 table_id to the ID of the table to fetch.
# table_id = 'your-project.your_dataset.your_table'

# If the table does not exist, delete_table raises
# google.api_core.exceptions.NotFound unless not_found_ok is True
client.delete_table(table_id, not_found_ok=True)
print("Deleted table '{}'.".format(table_id))

Ruby

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Ruby 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 Ruby.

require "google/cloud/bigquery"

def delete_table dataset_id = "my_dataset_id", table_id = "my_table_id"
  bigquery = Google::Cloud::Bigquery.new
  dataset  = bigquery.dataset dataset_id
  table    = dataset.table table_id

  table.delete

  puts "Table #{table_id} deleted."
end

Étapes suivantes

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

Envoyer des commentaires concernant…

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