Referência de procedimentos do sistema
O BigQuery é compatível com os procedimentos do sistema a seguir, que podem ser usados de maneira semelhante aos procedimentos armazenados criados pelo usuário.
BQ.ABORT_SESSION
Sintaxe
CALL BQ.ABORT_SESSION([session_id]);
Descrição
Encerra a sessão atual.
Também é possível especificar o ID da sessão. Isso permite encerrar uma sessão se o procedimento do sistema não for chamado dessa sessão.
Para mais informações, consulte Como encerrar sessões.
BQ.JOBS.CANCEL
Sintaxe
CALL BQ.JOBS.CANCEL(job);
Descrição
Cancela um job em execução.
Especifique o job como uma string no formato '[project_id.]job_id'. Se você executar
este procedimento do sistema a partir de um projeto diferente do job, inclua
o ID do projeto. Execute o procedimento no mesmo local que o
job.
Veja mais informações em Como cancelar um job.
BQ.CANCEL_INDEX_ALTERATION
Sintaxe
CALL BQ.CANCEL_INDEX_ALTERATION(table_name, index_name);
Descrição
Cancela uma recriação de um índice de vetor iniciada pelo usuário.
Especifique o nome da tabela como uma string com o formato
'[project_id.]dataset.table' e o nome do índice como uma string.
Se você executar este procedimento do sistema a partir de um
projeto diferente do job, inclua o ID do projeto.
Execute esse procedimento no mesmo local que a tabela indexada. Para definir o local da consulta, consulte Especificar locais.
Exemplo
CALL BQ.CANCEL_INDEX_ALTERATION('my_project.my_dataset.indexed_table', 'my_index');
BQ.REFRESH_EXTERNAL_METADATA_CACHE
Sintaxe
CALL BQ.REFRESH_EXTERNAL_METADATA_CACHE(table_name [, [subdirectory_uri, …]]);
Descrição
Atualiza o cache de metadados de uma tabela do Google Cloud Lakehouse ou de uma tabela de objetos.
Este procedimento falhará se você executá-lo em uma tabela que tenha o modo de armazenamento em cache
de metadados definido como AUTOMATIC.
Para executar esse procedimento do sistema, você precisa das permissões bigquery.tables.update e
bigquery.tables.updateData.
Especifique o nome da tabela como uma string com o formato '[project_id.]dataset.table'. Se você executar este procedimento do sistema a partir de um
projeto diferente do job, inclua o ID do projeto.
Para tabelas do Lakehouse, é possível especificar um ou mais
subdiretórios do diretório de dados da tabela no
Cloud Storage no formato 'gs://table_data_directory/subdirectory/.../'.
Isso permite atualizar apenas os metadados da tabela desses subdiretórios e, assim, evitar o processamento desnecessário de metadados.
Exemplos
Para atualizar todos os metadados de uma tabela:
CALL BQ.REFRESH_EXTERNAL_METADATA_CACHE('myproject.test_db.test_table')
Para atualizar seletivamente os metadados de uma tabela do Lakehouse:
CALL BQ.REFRESH_EXTERNAL_METADATA_CACHE('myproject.test_db.test_table', ['gs://source/uri/sub/path/d1/*', 'gs://source/uri/sub/path/d2/*'])
Limitação
- A atualização do cache de metadados não é compatível com tabelas referenciadas por conjuntos de dados vinculados a conjuntos de dados externos.
- A atualização do cache de metadados não deve ser usada em uma transação de várias instruções.
BQ.REFRESH_MATERIALIZED_VIEW
Sintaxe
CALL BQ.REFRESH_MATERIALIZED_VIEW(view_name);
Descrição
Atualiza uma visualização materializada.
Especifique o nome da visualização materializada como uma string com o formato
'[project_id.]dataset.table'. Se você executar este procedimento do sistema em um
projeto diferente da visualização materializada, inclua o ID do
projeto.
Veja mais informações em Atualização manual.
BQ.SHOW_GRAPH_EXPAND_SCHEMA
Sintaxe
CALL BQ.SHOW_GRAPH_EXPAND_SCHEMA(graph_name, output_schema);
Descrição
Preenche a variável output_schema fornecida com o esquema da tabela retornada ao chamar a TVF GRAPH_EXPAND em graph_name.
Especifique o nome do gráfico como uma string com o formato '[project_id.]dataset.graph'. Cada coluna retornada pela TVF GRAPH_EXPAND representa uma propriedade no gráfico. A saída inclui o nome, o tipo e o modo de cada coluna. Se a propriedade tiver uma descrição ou sinônimos definidos, eles vão aparecer em um campo description para a coluna. Se a propriedade definir uma métrica, a saída vai incluir "is_measure":true para esse campo.
Exemplos
DECLARE schema STRING; CALL BQ.SHOW_GRAPH_EXPAND_SCHEMA('my_project.my_dataset.my_graph', schema); SELECT schema;
A saída será assim:
{
"fields":[
{
"name":"Department_dept_name",
"type":"STRING",
"mode":"NULLABLE",
"description":
"{\"description\":\"The name of the academic department\",
\"synonyms\":[\"division\"]}"
},
{
"name":"Department_budget",
"type":"FLOAT",
"mode":"NULLABLE"
},
{
"name":"Department_total_budget",
"type":"FLOAT",
"mode":"NULLABLE",
"is_measure":true
}
]
}