Vue ROUTINES

La vue INFORMATION_SCHEMA.ROUTINES contient une ligne pour chaque routine d'un ensemble de données.

Autorisations requises

Pour interroger la vue INFORMATION_SCHEMA.ROUTINES, vous avez besoin des autorisations IAM (Identity and Access Management) suivantes:

  • bigquery.routines.get
  • bigquery.routines.list

Chacun des rôles IAM prédéfinis suivants inclut les autorisations dont vous avez besoin pour obtenir les métadonnées de routine :

  • roles/bigquery.admin
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer

Pour plus d'informations sur les autorisations BigQuery, consultez la page Contrôle des accès avec IAM.

Schéma

Lorsque vous interrogez la vue INFORMATION_SCHEMA.ROUTINES, les résultats de la requête contiennent une ligne pour chaque routine d'un ensemble de données.

La vue INFORMATION_SCHEMA.ROUTINES présente le schéma suivant :

Nom de la colonne Type de données Valeur
SPECIFIC_CATALOG STRING Nom du projet contenant l'ensemble de données dans lequel la routine est définie
SPECIFIC_SCHEMA STRING Nom de l'ensemble de données contenant la routine
SPECIFIC_NAME STRING Nom de la routine
ROUTINE_CATALOG STRING Nom du projet contenant l'ensemble de données dans lequel la routine est définie
ROUTINE_SCHEMA STRING Nom de l'ensemble de données contenant la routine
ROUTINE_NAME STRING Nom de la routine
ROUTINE_TYPE STRING Type de routine :
  • FUNCTION : fonction BigQuery persistante définie par l'utilisateur
  • PROCEDURE : procédure BigQuery stockée
  • TABLE FUNCTION : fonction de table BigQuery.
DATA_TYPE STRING Type de données renvoyé par la routine. NULL si la routine est une procédure stockée
ROUTINE_BODY STRING Mode de définition du corps de la routine, SQL ou EXTERNAL si la routine est une fonction JavaScript définie par l'utilisateur
ROUTINE_DEFINITION STRING Définition de la routine
EXTERNAL_LANGUAGE STRING JAVASCRIPT si la routine est une fonction JavaScript définie par l'utilisateur ou NULL si la routine a été définie avec SQL
IS_DETERMINISTIC STRING YES si la routine est identifiée comme déterministe, NO dans le cas contraire, ou NULL si elle est inconnue
SECURITY_TYPE STRING Type de sécurité de la routine, toujours NULL
CREATED TIMESTAMP Date/Heure de création de la routine
LAST_ALTERED TIMESTAMP Date/Heure de la dernière modification de la routine
DDL STRING Instruction LDD pouvant être utilisée pour créer la routine, par exemple CREATE FUNCTION ou CREATE PROCEDURE

Champ d'application et syntaxe

Les requêtes exécutées sur cette vue doivent inclure un ensemble de données ou un qualificatif de région. Pour en savoir plus, consultez la section Syntaxe. Le tableau suivant explique la portée des régions et des ressources pour cette vue :

Nom de la vue Champ d'application de la ressource Champ d'application de la région
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES Niveau Projet REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINES Niveau de l'ensemble de données Emplacement d'un ensemble de données
Remplacez les éléments suivants :

  • Facultatif : PROJECT_ID : ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
 + REGION : nom de la région de l'ensemble de données. Par exemple, region-us. + DATASET_ID : ID de votre ensemble de données. Pour en savoir plus, consultez la section Qualificatif d'ensemble de données.

Exemple

-- Returns metadata for routines in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.ROUTINES;

-- Returns metadata for routines in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.ROUTINES;

Exemple

Exemple

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`.INFORMATION_SCHEMA.ROUTINES
. Par exemple, `myproject`.INFORMATION_SCHEMA.ROUTINES.

L'exemple suivant récupère toutes les colonnes de la vue INFORMATION_SCHEMA.ROUTINES. Les métadonnées renvoyées concernent toutes les routines de mydataset dans votre projet par défaut (myproject). L'ensemble de données mydataset contient une routine nommée myroutine1.

SELECT
  *
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES;

Le résultat ressemble à ce qui suit :

+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| specific_catalog | specific_schema | specific_name | routine_catalog | routine_schema | routine_name | routine_type | data_type | routine_body | routine_definition | external_language | is_deterministic | security_type |           created           |         last_altered        |                            ddl                             |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| myproject        | mydataset       | myroutine1    | myproject       | mydataset      | myroutine1   | FUNCTION     | NULL      | SQL          | x + 3              | NULL              | NULL             | NULL          | 2019-10-03 17:29:00.235 UTC | 2019-10-03 17:29:00.235 UTC | CREATE FUNCTION myproject.mydataset.myroutine1(x FLOAT64) |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | AS (                                                      |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | x + 3                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+