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.getbigquery.routines.list
Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para obtener metadatos de rutina:
roles/bigquery.adminroles/bigquery.metadataViewerroles/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:
|
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 |
Nombre de la conexión, si la rutina tiene uno. De lo contrario,
NULL |
Para mayor estabilidad, te recomendamos que enumeres de forma explícita las columnas en tus consultas de esquema de información en lugar de usar un comodín (SELECT *). Enumerar las columnas de forma explícita evita que las consultas se interrumpan si cambia el esquema subyacente.
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 |
-
Opcional:
PROJECT_ID: Es el ID de tu proyecto de 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: Es el ID del 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, agrega el ID del proyecto al conjunto de datos en este formato:
`PROJECT_ID`.INFORMATION_SCHEMA.ROUTINES
`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 | | | | | | | | | | | | | | | | | ); | +------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+