Gestionar rutinas

En BigQuery, las rutinas son un tipo de recurso que incluye lo siguiente:

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

  1. En la Google Cloud consola, abre la página de BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.

  3. Despliega la lista Rutinas.

SQL

Consulta la vista INFORMATION_SCHEMA.ROUTINES:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    SELECT
      COLUMN_LIST
    FROM
       { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

Haz los cambios siguientes:

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

  1. En la Google Cloud consola, abre la página de BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.

  3. Despliega la lista Rutinas.

  4. 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:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

    SELECT
      routine_definition
    FROM
      { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES
    WHERE
      routine_name = ROUTINE_NAME;

  3. 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

  1. En la Google Cloud consola, abre la página de BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.

  3. Despliega la lista Rutinas.

  4. Selecciona la rutina.

  5. Abre la opción Acciones y haz clic en Eliminar.

  6. 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:

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.