Gerenciar rotinas
No BigQuery, rotinas são um tipo de recurso que inclui o seguinte:
- Procedimentos armazenados.
- Funções definidas pelo usuário (UDFs), incluindo funções remotas.
- Funções de tabela.
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
No Console do Google Cloud, abra a página do BigQuery.
No painel Explorer, expanda o projeto e selecione um conjunto de dados.
Expanda a lista Rotinas.
SQL
Consulte a visualização INFORMATION_SCHEMA.ROUTINES
.
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
SELECT COLUMN_LIST FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;
Clique em
Executar.
Para mais informações sobre como executar consultas, confira Executar uma consulta interativa.
Substitua:
- COLUMN_LIST: uma lista separada por vírgulas de colunas da visualização
INFORMATION_SCHEMA.ROUTINES
. - DATASET: o nome de um conjunto de dados no projeto.
- REGION: um qualificador de região.
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
No Console do Google Cloud, abra a página do BigQuery.
No painel Explorer, expanda o projeto e selecione um conjunto de dados.
Expanda a lista Rotinas.
Selecione a rotina. O corpo da rotina é listado em Consulta de rotina.
SQL
Selecione a coluna routine_definition
da visualização INFORMATION_SCHEMA.ROUTINES
.
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
SELECT routine_definition FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES WHERE routine_name = ROUTINE_NAME;
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
No Console do Google Cloud, abra a página do BigQuery.
No painel Explorer, expanda o projeto e selecione um conjunto de dados.
Expanda a lista Rotinas.
Selecione a rotina.
Expanda a opção
Ações e clique em Excluir.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:
- Procedimento armazenado:
DROP PROCEDURE
- Função definida pelo usuário:
DROP FUNCTION
- Função da tabela:
DROP TABLE FUNCTION
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.