Gérer les routines

Dans BigQuery, les routines constituent un type de ressource qui inclut les éléments suivants:

Ce document décrit les tâches communes à tous les types de routines de BigQuery.

Autorisations

Pour exécuter une routine, vous devez disposer de l'autorisation bigquery.routines.get sur l'ensemble de données contenant la routine.

Par défaut, vous avez également besoin d'une autorisation pour accéder aux ressources auxquelles la routine fait référence, telles que les tables ou les vues. Dans les fonctions définies par l'utilisateur et les fonctions table, vous pouvez autoriser la fonction à accéder à ces ressources pour le compte de l'appelant. Pour en savoir plus, consultez la section Fonctions autorisées.

Créer une routine

Pour créer une routine, vous devez disposer de l'autorisation bigquery.routines.create.

SQL

Selon le type de routine, exécutez l'une des instructions LDD suivantes:

API

Appelez la méthode routines.insert avec une ressource Routine définie.

Répertorier des routines

Pour répertorier les routines d'un ensemble de données, vous devez disposer des autorisations bigquery.routines.get et bigquery.routines.list.

Console

  1. Dans la console Google Cloud, ouvrez la page "BigQuery".

    Accéder à BigQuery

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

  3. Développez la liste Routines.

SQL

Interrogez la vue INFORMATION_SCHEMA.ROUTINES :

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans l'éditeur de requête, saisissez l'instruction suivante :

    SELECT
      COLUMN_LIST
    FROM
       { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;

  3. Cliquez sur Exécuter.

Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.

Remplacez les éléments suivants :

Exemple :

SELECT
  routine_name, routine_type, routine_body
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES;
+------------------+----------------+--------------+
|   routine_name   |  routine_type  | routine_body |
+------------------+----------------+--------------+
| AddFourAndDivide | FUNCTION       | SQL          |
| create_customer  | PROCEDURE      | SQL          |
| names_by_year    | TABLE FUNCTION | SQL          |
+------------------+----------------+--------------+

bq

Exécutez la commande bq ls avec l'option --routines :

bq ls --routines DATASET

Remplacez les éléments suivants :

  • DATASET : nom d'un ensemble de données dans votre projet.

Exemple :

bq ls --routines mydataset
         Id              Routine Type        Language    Creation Time    Last Modified Time
------------------ ----------------------- ---------- ----------------- --------------------
 AddFourAndDivide   SCALAR_FUNCTION         SQL        05 May 01:12:03   05 May 01:12:03
 create_customer    PROCEDURE               SQL        21 Apr 19:55:51   21 Apr 19:55:51
 names_by_year      TABLE_VALUED_FUNCTION   SQL        01 Sep 22:59:17   01 Sep 22:59:17

API

Appelez la méthode routines.list avec l'ID de l'ensemble de données.

Afficher le corps d'une routine

Pour afficher le corps d'une routine, vous devez disposer de l'autorisation bigquery.routines.get.

Console

  1. Dans la console Google Cloud, ouvrez la page "BigQuery".

    Accéder à BigQuery

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

  3. Développez la liste Routines.

  4. Sélectionnez la routine. Le corps de la routine est répertorié sous Requête de routine.

SQL

Sélectionnez la colonne routine_definition de la vue INFORMATION_SCHEMA.ROUTINES :

  1. Dans Google Cloud Console, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans l'éditeur de requête, saisissez l'instruction suivante :

    SELECT
      routine_definition
    FROM
      { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES
    WHERE
      routine_name = ROUTINE_NAME;

  3. Cliquez sur Exécuter.

Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.

Remplacez les éléments suivants :

  • DATASET : nom d'un ensemble de données dans votre projet.
  • REGION: qualificatif de région.
  • ROUTINE_NAME : Nom de la routine.

Exemple :

SELECT
  routine_definition
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES
WHERE
  routine_name = 'AddFourAndDivide';
+--------------------+
| routine_definition |
+--------------------+
| (x + 4) / y        |
+--------------------+

bq

Exécutez la commande bq show avec l'option --routine :

bq show --routine DATASET.ROUTINE_NAME

Remplacez les éléments suivants :

  • DATASET : nom d'un ensemble de données dans votre projet.
  • ROUTINE_NAME : Nom de la routine.

Exemple :

bq show --routine mydataset.AddFourAndDivide
         Id           Routine Type     Language             Signature             Definition     Creation Time    Last Modified Time
 ------------------ ----------------- ---------- ------------------------------- ------------- ----------------- --------------------
  AddFourAndDivide   SCALAR_FUNCTION   SQL        (x INT64, y INT64) -> FLOAT64   (x + 4) / y   05 May 01:12:03   05 May 01:12:03

API

Appelez la méthode routines.get avec l'ID de l'ensemble de données et le nom de la routine. Le corps de la routine est renvoyé dans l'objet Routine.

Supprimer une routine

Pour supprimer une routine, vous devez disposer de l'autorisation bigquery.routines.delete.

Console

  1. Dans la console Google Cloud, ouvrez la page "BigQuery".

    Accéder à BigQuery

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

  3. Développez la liste Routines.

  4. Sélectionnez la routine.

  5. Développez l'option Actions, puis cliquez sur Supprimer.

  6. Saisissez "delete" dans la boîte de dialogue, puis cliquez sur Supprimer pour confirmer.

SQL

Selon le type de routine, exécutez l'une des instructions LDD suivantes:

Exemple :

DROP FUNCTION IF EXISTS mydataset.AddFourAndDivide

bq

Exécutez la commande bq rm avec l'option --routine :

bq rm --routine DATASET.ROUTINE_NAME

Remplacez les éléments suivants :

  • DATASET : nom d'un ensemble de données dans votre projet.
  • ROUTINE_NAME : Nom de la routine.

Exemple :

bq rm --routine mydataset.AddFourAndDivide

API

Appelez la méthode routines.delete avec l'ID de l'ensemble de données et le nom de la routine.