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: uma STRING que contém o nome do gráfico no formato '[project_id.]dataset.graph'.
  • start_node: um STRING opcional 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 valor BOOL opcional 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 colunas STRUCT.

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