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

Por motivos de estabilidad, te recomendamos que incluyas explícitamente las columnas en tus consultas de esquema de información en lugar de usar un comodín (SELECT *). Si incluyes las columnas explícitamente, evitarás que las consultas fallen si cambia el esquema subyacente.

Á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 proyecto. Google Cloud 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                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+