Vista RUTINAS

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

Permisos obligatorios

Para consultar la vista INFORMATION_SCHEMA.ROUTINES, necesitas los siguientes permisos de gestión de identidades y accesos (IAM):

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

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos 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 los permisos de BigQuery, consulta Control de acceso con gestión de identidades y accesos.

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 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 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 definida por el usuario persistente de BigQuery
  • PROCEDURE: un procedimiento almacenado de BigQuery
  • TABLE FUNCTION: una función de tabla de BigQuery.
DATA_TYPE STRING El tipo de datos que devuelve la rutina. NULL si la rutina es un procedimiento almacenado
ROUTINE_BODY STRING Cómo se define el cuerpo de la rutina, ya sea SQL o EXTERNAL si la rutina es una función definida por el usuario de JavaScript
ROUTINE_DEFINITION STRING La definición de la rutina
EXTERNAL_LANGUAGE STRING JAVASCRIPT si la rutina es una función definida por el usuario de JavaScript o NULL si la rutina se ha definido 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 Tipo de seguridad de la rutina, siempre NULL
CREATED TIMESTAMP Hora de creación de la rutina
LAST_ALTERED TIMESTAMP Hora de la última modificación de la rutina
DDL STRING La declaración de 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

Ámbito y sintaxis

Las consultas en esta vista deben incluir un conjunto de datos o un calificador de región. Para obtener más información, consulta la sección Sintaxis. En la siguiente tabla se explican los ámbitos de región y de recurso de esta vista:

Nombre de la vista Ámbito de los recursos Ámbito de la región
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES Nivel de proyecto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINES Nivel del conjunto de datos Ubicación del conjunto de datos
Sustituye lo siguiente:
  • Opcional: PROJECT_ID: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado.
  • REGION: cualquier nombre de región del conjunto de datos. Por ejemplo, `region-us`.
  • DATASET_ID: el ID de tu conjunto de datos. Para obtener más información, consulta Calificador de conjunto de datos.

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, añade el ID del proyecto al conjunto de datos con el siguiente formato:

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

En el siguiente ejemplo se obtienen todas las columnas de la vista INFORMATION_SCHEMA.ROUTINES. Los metadatos devueltos corresponden a todas las rutinas de mydataset de tu 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                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+