Gestionar rutinas
En BigQuery, las rutinas son un tipo de recurso que incluye lo siguiente:
- Procedimientos almacenados.
- Funciones definidas por el usuario (UDF), incluidas las funciones remotas.
- Funciones de tabla.
En este documento se describen las tareas que son comunes a todos los tipos de rutinas de BigQuery.
Permisos
Para hacer referencia a una rutina en una consulta de SQL, debes tener el permiso bigquery.routines.get. Para conceder acceso a las rutinas, puedes asignar un rol de gestión de identidades y accesos con el permiso bigquery.routines.get al conjunto de datos o a la rutina en cuestión. Si se concede acceso a nivel de conjunto de datos, la principal tendrá acceso a todas las rutinas del conjunto de datos. Para obtener más información, consulta el artículo sobre cómo controlar el acceso a los recursos con la gestión de identidades y accesos.
De forma predeterminada, también necesitas permiso para acceder a los recursos a los que hace referencia la rutina, como tablas o vistas. En el caso de las funciones definidas por el usuario y las funciones de tabla, puede autorizar la función para que acceda a esos recursos en nombre de la persona que llama. Para obtener más información, consulta Funciones autorizadas.
Crear una rutina
Para crear una rutina, debes tener el permiso bigquery.routines.create.
SQL
En función del tipo de rutina, ejecuta una de las siguientes instrucciones DDL:
API
Llama al método routines.insert con un recurso Routine definido.
Mostrar rutinas
Para enumerar las rutinas de un conjunto de datos, debes tener los permisos bigquery.routines.get y bigquery.routines.list.
Consola
En la Google Cloud consola, abre la página de BigQuery.
En el panel de la izquierda, haz clic en Explorador:

Si no ves el panel de la izquierda, haz clic en Ampliar panel de la izquierda para abrirlo.
En el panel Explorador, despliega tu proyecto, haz clic en Conjuntos de datos y, a continuación, selecciona un conjunto de datos.
Haz clic en la pestaña Rutinas.
SQL
Consulta la vista INFORMATION_SCHEMA.ROUTINES:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
SELECT COLUMN_LIST FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
Haz los cambios siguientes:
- COLUMN_LIST: una lista de columnas separadas por comas de la
INFORMATION_SCHEMA.ROUTINESvista. - DATASET: el nombre de un conjunto de datos de tu proyecto.
- REGION: un calificador de región.
Ejemplo:
SELECT routine_name, routine_type, routine_body FROM mydataset.INFORMATION_SCHEMA.ROUTINES;
+------------------+----------------+--------------+
| routine_name | routine_type | routine_body |
+------------------+----------------+--------------+
| AddFourAndDivide | FUNCTION | SQL |
| create_customer | PROCEDURE | SQL |
| names_by_year | TABLE FUNCTION | SQL |
+------------------+----------------+--------------+
bq
Usa el comando bq ls con la marca --routines:
bq ls --routines DATASET
Haz los cambios siguientes:
- DATASET: el nombre de un conjunto de datos de tu proyecto.
Ejemplo:
bq ls --routines mydataset
Id Routine Type Language Creation Time Last Modified Time
------------------ ----------------------- ---------- ----------------- --------------------
AddFourAndDivide SCALAR_FUNCTION SQL 05 May 01:12:03 05 May 01:12:03
create_customer PROCEDURE SQL 21 Apr 19:55:51 21 Apr 19:55:51
names_by_year TABLE_VALUED_FUNCTION SQL 01 Sep 22:59:17 01 Sep 22:59:17
API
Llama al método routines.list
con el ID del conjunto de datos.
Ver el cuerpo de una rutina
Para ver el cuerpo de una rutina, debes tener el permiso bigquery.routines.get.
Consola
En la Google Cloud consola, abre la página de BigQuery.
En el panel de la izquierda, haz clic en Explorador:

En el panel Explorador, despliega tu proyecto, haz clic en Conjuntos de datos y, a continuación, selecciona un conjunto de datos.
Haz clic en la pestaña Rutinas.
Selecciona la rutina. El cuerpo de la rutina se muestra en Routine query.
SQL
Selecciona la columna routine_definition de la vista INFORMATION_SCHEMA.ROUTINES:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
SELECT routine_definition FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES WHERE routine_name = ROUTINE_NAME;
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
Haz los cambios siguientes:
- DATASET: el nombre de un conjunto de datos de tu proyecto.
- REGION: un calificador de región.
- ROUTINE_NAME: el nombre de la rutina.
Ejemplo:
SELECT routine_definition FROM mydataset.INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'AddFourAndDivide';
+--------------------+
| routine_definition |
+--------------------+
| (x + 4) / y |
+--------------------+
bq
Usa el comando bq show con la marca --routine:
bq show --routine DATASET.ROUTINE_NAME
Haz los cambios siguientes:
- DATASET: el nombre de un conjunto de datos de tu proyecto.
- ROUTINE_NAME: el nombre de la rutina.
Ejemplo:
bq show --routine mydataset.AddFourAndDivide
Id Routine Type Language Signature Definition Creation Time Last Modified Time
------------------ ----------------- ---------- ------------------------------- ------------- ----------------- --------------------
AddFourAndDivide SCALAR_FUNCTION SQL (x INT64, y INT64) -> FLOAT64 (x + 4) / y 05 May 01:12:03 05 May 01:12:03
API
Llama al método routines.get
con el ID del conjunto de datos y el nombre de la rutina. El cuerpo de la rutina se devuelve en el objeto Routine.
Eliminar una rutina
Para eliminar una rutina, debes tener el permiso bigquery.routines.delete.
Consola
En la Google Cloud consola, abre la página de BigQuery.
En el panel de la izquierda, haz clic en Explorador:

En el panel Explorador, despliega tu proyecto, haz clic en Conjuntos de datos y, a continuación, selecciona un conjunto de datos.
Haz clic en la pestaña Rutinas.
Selecciona la rutina.
En el panel de detalles, haz clic en Eliminar.
Escribe
"delete"en el cuadro de diálogo y haz clic en Eliminar para confirmar la acción.
SQL
En función del tipo de rutina, ejecuta una de las siguientes instrucciones DDL:
- Procedimiento almacenado:
DROP PROCEDURE - Función definida por el usuario:
DROP FUNCTION - Función de tabla:
DROP TABLE FUNCTION
Ejemplo:
DROP FUNCTION IF EXISTS mydataset.AddFourAndDivide
bq
Usa el comando bq rm con la marca --routine:
bq rm --routine DATASET.ROUTINE_NAME
Haz los cambios siguientes:
- DATASET: el nombre de un conjunto de datos de tu proyecto.
- ROUTINE_NAME: el nombre de la rutina.
Ejemplo:
bq rm --routine mydataset.AddFourAndDivide
API
Llama al método routines.delete
con el ID del conjunto de datos y el nombre de la rutina.