Vista ROUTINES

La vista INFORMATION_SCHEMA.ROUTINES contiene una fila para cada rutina en un conjunto de datos.

Permisos necesarios

Para consultar la vista INFORMATION_SCHEMA.ROUTINES, necesitas los siguientes permisos de Identity and Access Management (IAM):

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

Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para obtener metadatos de rutina:

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

Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.

Esquema

Cuando consultas la vista INFORMATION_SCHEMA.ROUTINES, los resultados de la consulta contienen una fila por cada rutina de un conjunto de datos.

La vista INFORMATION_SCHEMA.ROUTINES tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
SPECIFIC_CATALOG STRING El nombre del proyecto que contiene el conjunto de datos en el que se define la rutina
SPECIFIC_SCHEMA STRING El nombre del conjunto de datos que contiene la rutina
SPECIFIC_NAME STRING El nombre de la rutina
ROUTINE_CATALOG STRING El nombre del proyecto que contiene el conjunto de datos en el que se define la rutina
ROUTINE_SCHEMA STRING El nombre del conjunto de datos que contiene la rutina
ROUTINE_NAME STRING El nombre de la rutina
ROUTINE_TYPE STRING El tipo de rutina:
  • FUNCTION: una función persistente de BigQuery definida por el usuario
  • PROCEDURE: un procedimiento de BigQuery almacenado
  • TABLE FUNCTION: una función de tabla de BigQuery.
DATA_TYPE STRING El tipo de datos que muestra la rutina. NULL si la rutina es un procedimiento almacenado
ROUTINE_BODY STRING La manera en la que se define el cuerpo de la rutina, ya sea SQL o EXTERNAL si la rutina es una función de JavaScript definida por el usuario
ROUTINE_DEFINITION STRING La definición de la rutina
EXTERNAL_LANGUAGE STRING JAVASCRIPT si la rutina es una función de JavaScript definida por el usuario o NULL si la rutina se definió con SQL
IS_DETERMINISTIC STRING YES si se sabe que la rutina es determinista, NO si no lo es o NULL si se desconoce
SECURITY_TYPE STRING El tipo de seguridad de la rutina, siempre NULL
CREATED TIMESTAMP La hora de creación de la rutina
LAST_ALTERED TIMESTAMP La hora en la que se modificó la rutina por última vez
DDL STRING La declaración DDL que se puede usar para crear la rutina, como CREATE FUNCTION o CREATE PROCEDURE
CONNECTION STRING El nombre de la conexión, si la rutina tiene uno. De lo contrario, NULL

Permiso y sintaxis

Las consultas realizadas a esta vista deben incluir un conjunto de datos o un calificador de región. Para obtener más información, consulta Sintaxis. En la siguiente tabla, se explican los permisos de la región y los recursos para esta vista:

Nombre de la vista Permiso del recurso Permiso de la región
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES Nivel de proyecto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINES Nivel de conjunto de datos Ubicación del conjunto de datos
Reemplaza lo siguiente:

  • Opcional: PROJECT_ID: el ID del proyecto de Google Cloud. Si no se especifica, se usa el proyecto predeterminado.

    Ejemplo

    -- 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;
    

    Ejemplo

    Ejemplo

    Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en este formato:

    `PROJECT_ID`.INFORMATION_SCHEMA.ROUTINES
    . Por ejemplo, `myproject`.INFORMATION_SCHEMA.ROUTINES.

    En el ejemplo que se muestra a continuación, se recuperan todas las columnas de la vista INFORMATION_SCHEMA.ROUTINES. Los metadatos que se muestran corresponden a todas las rutinas de mydataset en el proyecto predeterminado: myproject. El conjunto de datos mydataset contiene una rutina llamada myroutine1.

    SELECT
      *
    FROM
      mydataset.INFORMATION_SCHEMA.ROUTINES;

    El resultado es similar al siguiente:

    +------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
    | 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                                                     |
    |                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
    +------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+