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
    }
  ]
}