Gerenciar rotinas

No BigQuery, rotinas são um tipo de recurso que inclui o seguinte:

Neste documento, descrevemos tarefas comuns a todos os tipos de rotina no BigQuery.

Permissões

Para executar uma rotina, é preciso ter a permissão bigquery.routines.get no conjunto de dados que contém a rotina.

Por padrão, você também precisa de permissão para acessar todos os recursos aos quais a rotina faz referência, como tabelas ou visualizações. Para UDFs e funções de tabela, é possível autorizar que a função acesse esses recursos em nome do autor da chamada. Para mais informações, consulte Funções autorizadas.

Criar uma rotina

Para criar uma rotina, é necessário ter a permissão bigquery.routines.create.

SQL

Dependendo do tipo de rotina, execute uma das seguintes instruções DDL:

API

Chame o método routines.insert com um recurso Routine definido.

Listar rotinas

Para listar as rotinas em um conjunto de dados, é preciso ter as permissões bigquery.routines.get e bigquery.routines.list.

Console

  1. No Console do Google Cloud, abra a página do BigQuery.

    Ir para o BigQuery

  2. No painel Explorer, expanda o projeto e selecione um conjunto de dados.

  3. Expanda a lista Rotinas.

SQL

Consulte a visualização INFORMATION_SCHEMA.ROUTINES.

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No editor de consultas, digite a seguinte instrução:

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

  3. Clique em Executar.

Para mais informações sobre como executar consultas, confira Executar uma consulta interativa.

Substitua:

Exemplo:

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

Use o comando bq ls com a sinalização --routines:

bq ls --routines DATASET

Substitua:

  • DATASET: o nome de um conjunto de dados no projeto.

Exemplo:

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

Chame o método routines.list com o ID do conjunto de dados.

Ver o corpo de uma rotina

Para ver o corpo de uma rotina, é necessário ter a permissão bigquery.routines.get.

Console

  1. No Console do Google Cloud, abra a página do BigQuery.

    Ir para o BigQuery

  2. No painel Explorer, expanda o projeto e selecione um conjunto de dados.

  3. Expanda a lista Rotinas.

  4. Selecione a rotina. O corpo da rotina é listado em Consulta de rotina.

SQL

Selecione a coluna routine_definition da visualização INFORMATION_SCHEMA.ROUTINES.

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No editor de consultas, digite a seguinte instrução:

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

  3. Clique em Executar.

Para mais informações sobre como executar consultas, confira Executar uma consulta interativa.

Substitua:

  • DATASET: o nome de um conjunto de dados no projeto.
  • REGION: um qualificador de região.
  • ROUTINE_NAME: o nome da rotina.

Exemplo:

SELECT
  routine_definition
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES
WHERE
  routine_name = 'AddFourAndDivide';
+--------------------+
| routine_definition |
+--------------------+
| (x + 4) / y        |
+--------------------+

bq

Use o comando bq show com a sinalização --routine:

bq show --routine DATASET.ROUTINE_NAME

Substitua:

  • DATASET: o nome de um conjunto de dados no projeto.
  • ROUTINE_NAME: o nome da rotina.

Exemplo:

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

Chame o método routines.get com o ID do conjunto de dados e o nome da rotina. O corpo da rotina é retornado no objeto Routine.

Excluir uma rotina

Para excluir uma rotina, é necessário ter a permissão bigquery.routines.delete.

Console

  1. No Console do Google Cloud, abra a página do BigQuery.

    Ir para o BigQuery

  2. No painel Explorer, expanda o projeto e selecione um conjunto de dados.

  3. Expanda a lista Rotinas.

  4. Selecione a rotina.

  5. Expanda a opção Ações e clique em Excluir.

  6. Digite "delete" na caixa de diálogo e clique em Excluir para confirmar.

SQL

Dependendo do tipo de rotina, execute uma das seguintes instruções DDL:

Exemplo:

DROP FUNCTION IF EXISTS mydataset.AddFourAndDivide

bq

Use o comando bq rm com a sinalização --routine:

bq rm --routine DATASET.ROUTINE_NAME

Substitua:

  • DATASET: o nome de um conjunto de dados no projeto.
  • ROUTINE_NAME: o nome da rotina.

Exemplo:

bq rm --routine mydataset.AddFourAndDivide

API

Chame o método routines.delete com o ID do conjunto de dados e o nome da rotina.