Faça a gestão das rotinas
No BigQuery, as rotinas são um tipo de recurso que inclui o seguinte:
- Procedimentos armazenados.
- Funções definidas pelo utilizador (UDFs), incluindo funções remotas.
- Funções de tabela.
Este documento descreve as tarefas comuns a todos os tipos de rotinas no BigQuery.
Autorizações
Para fazer referência a uma rotina numa consulta SQL, tem de ter a autorização bigquery.routines.get
. Para conceder acesso a rotinas, pode conceder uma função do IAM com a autorização bigquery.routines.get
no conjunto de dados ou na rotina individual. A concessão de acesso ao nível do conjunto de dados dá ao principal acesso a todas as rotinas no conjunto de dados. Para mais informações, consulte o artigo
Controle o acesso aos recursos com a IAM.
Por predefinição, também precisa de autorização para aceder a quaisquer recursos aos quais a rotina faça referência, como tabelas ou vistas. Para FDUs e funções de tabela, pode autorizar a função a aceder a esses recursos em nome do autor da chamada. Para mais informações, consulte o artigo Funções autorizadas.
Crie uma rotina
Para criar uma rotina, tem de ter a autorização bigquery.routines.create
.
SQL
Consoante o tipo de rotina, execute uma das seguintes declarações DDL:
API
Chame o método routines.insert
com um recurso Routine
definido.
Listar rotinas
Para listar as rotinas num conjunto de dados, tem de ter as autorizações bigquery.routines.get
e bigquery.routines.list
.
Consola
Na Trusted Cloud consola, abra a página do BigQuery.
No painel Explorador, expanda o projeto e selecione um conjunto de dados.
Expanda a lista Rotinas.
SQL
Consulte a vista INFORMATION_SCHEMA.ROUTINES
:
Na Trusted Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
SELECT COLUMN_LIST FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;
Clique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
Substitua o seguinte:
- COLUMN_LIST: uma lista de colunas separadas por vírgulas da vista
INFORMATION_SCHEMA.ROUTINES
. - DATASET: o nome de um conjunto de dados no seu 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 flag --routines
:
bq ls --routines DATASET
Substitua o seguinte:
- DATASET: o nome de um conjunto de dados no seu 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.
Veja o corpo de uma rotina
Para ver o corpo de uma rotina, tem de ter a autorização bigquery.routines.get
.
Consola
Na Trusted Cloud consola, abra a página do BigQuery.
No painel Explorador, expanda o projeto e selecione um conjunto de dados.
Expanda a lista Rotinas.
Selecione a rotina. O corpo da rotina é apresentado em Consulta de rotina.
SQL
Selecione a coluna routine_definition
da
INFORMATION_SCHEMA.ROUTINES
vista:
Na Trusted Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaraçã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, consulte o artigo Execute uma consulta interativa.
Substitua o seguinte:
- DATASET: o nome de um conjunto de dados no seu 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 flag --routine
:
bq show --routine DATASET.ROUTINE_NAME
Substitua o seguinte:
- DATASET: o nome de um conjunto de dados no seu 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 é devolvido no objeto Routine
.
Elimine uma rotina
Para eliminar uma rotina, tem de ter a autorização bigquery.routines.delete
.
Consola
Na Trusted Cloud consola, abra a página do BigQuery.
No painel Explorador, 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 Eliminar.Escreva
"delete"
na caixa de diálogo e, de seguida, clique em Eliminar para confirmar.
SQL
Consoante o tipo de rotina, execute uma das seguintes declarações DDL:
- Procedimento armazenado:
DROP PROCEDURE
- Função definida pelo utilizador:
DROP FUNCTION
- Função de tabela:
DROP TABLE FUNCTION
Exemplo:
DROP FUNCTION IF EXISTS mydataset.AddFourAndDivide
bq
Use o comando bq rm
com a flag --routine
:
bq rm --routine DATASET.ROUTINE_NAME
Substitua o seguinte:
- DATASET: o nome de um conjunto de dados no seu 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.