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 alteração de um índice da Pesquisa ou 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 BigLake 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 BigLake, é 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/.../'.
Para que uma atualização seletiva funcione corretamente, os parâmetros de caminho do Cloud Storage precisam incluir um caminho específico ou um caractere curinga. Para mais informações, consulte Compatibilidade de caracteres curinga com URIs do Cloud Storage.
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 BigLake:
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 [, start_node [, flatten_results] ] , output_schema);
Descrição
Preenche a variável output_schema fornecida com o esquema da
tabela retornada chamando a
TVF GRAPH_EXPAND
em graph_name.
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
medida, a saída vai incluir "is_measure":true para esse campo.
graph_name: umaSTRINGque contém o nome do gráfico no formato'[project_id.]dataset.graph'.start_node: umSTRINGopcional que especifica o nome do nó inicial para a travessia. Esse argumento é obrigatório se o gráfico tiver várias tabelas de nós raiz.flatten_results: um valorBOOLopcional que indica como estruturar o esquema de saída:TRUE: nivela todas as propriedades de nós e arestas em colunas de nível superior do formato<element>_<property>.TRUEé o valor padrão.FALSE: retorna as propriedades do nó raiz como colunas de nível superior sem prefixo e tabelas vizinhas unidas como colunasSTRUCT.
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
}
]
}