Gérer les routines
Dans BigQuery, les routines constituent un type de ressource qui inclut les éléments suivants:
- Procédures stockées
- Des fonctions définies par l'utilisateur, y compris les fonctions distantes.
- Fonctions table
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
Dans la console Google Cloud, ouvrez la page "BigQuery".
Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.
Développez la liste Routines.
SQL
Interrogez la vue INFORMATION_SCHEMA.ROUTINES
:
Dans Google Cloud Console, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
SELECT COLUMN_LIST FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;
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 :
- COLUMN_LIST: liste de colonnes séparées par des virgules de la vue
INFORMATION_SCHEMA.ROUTINES
. - DATASET : nom d'un ensemble de données dans votre projet.
- REGION: qualificatif de région.
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
Dans la console Google Cloud, ouvrez la page "BigQuery".
Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.
Développez la liste Routines.
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
:
Dans Google Cloud Console, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
SELECT routine_definition FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES WHERE routine_name = ROUTINE_NAME;
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
Dans la console Google Cloud, ouvrez la page "BigQuery".
Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.
Développez la liste Routines.
Sélectionnez la routine.
Développez l'option
Actions, puis cliquez sur Supprimer.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:
- Procédure stockée :
DROP PROCEDURE
- Fonction définie par l'utilisateur :
DROP FUNCTION
- Fonction table :
DROP TABLE FUNCTION
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.