Skip to main content
O motor BigQuery permite ler dados de uma tabela no Google BigQuery e gravar dados nela, incluindo em conjuntos de dados públicos. A leitura usa a API REST do BigQuery (tabledata.list), portanto, apenas tabelas nativas podem ser lidas (visões, visões materializadas e tabelas externas não podem). A gravação usa inserções por streaming (tabledata.insertAll), o que exige que o faturamento esteja habilitado para o projeto. As gravações não são atômicas: um INSERT grande é enviado em lotes (no máximo 500 linhas por solicitação e também dividido para permanecer abaixo do limite de 10 MB para o tamanho das solicitações do BigQuery), uma única solicitação pode ser parcialmente bem-sucedida (o BigQuery pode confirmar algumas linhas de uma solicitação e rejeitar outras com insertErrors) e um lote posterior pode ser rejeitado após lotes anteriores terem sido aceitos — em ambos os casos, as linhas já confirmadas permanecem no BigQuery enquanto a consulta relata um erro. Cada linha contém um insertId estável (derivado do ID da consulta e da posição ordinal da linha), para que o BigQuery deduplique, na medida do possível, as linhas reenviadas; como o insertId depende da posição ordinal, executar novamente o mesmo INSERT deduplica apenas quando as linhas são apresentadas na mesma ordem (por exemplo, em modo de thread única, com max_threads = 1 e max_insert_threads = 1). Consulte as limitações da função de tabela bigquery para obter detalhes.

Criar uma tabela

A lista de colunas é opcional: quando omitida, a estrutura é inferida a partir do esquema da tabela do BigQuery. Quando especificadas, as colunas podem ser um subconjunto das colunas do BigQuery, e cada coluna deve ser declarada com o tipo exato para o qual o esquema do BigQuery é mapeado (consulte o mapeamento de tipos de dados). Uma tabela cuja definição omite um campo REQUIRED do BigQuery sem uma expressão de valor padrão pode ser lida, mas não receber gravações: as inserções por streaming do BigQuery rejeitam linhas que omitem esse campo; portanto, esse INSERT é rejeitado antecipadamente. Quando o campo REQUIRED omitido declara uma defaultValueExpression, o BigQuery preenche o valor padrão, e a tabela continua aceitando gravações. Um RECORD NULLABLE é mapeado para Nullable(Tuple(...)) para que registros NULL possam ser gravados e lidos sem perda. Ao declarar colunas explicitamente, um campo RECORD pode ser declarado como um Tuple(...) simples, ao custo de converter um NULL do registro inteiro em uma tupla padrão; a única diferença aceita em relação ao tipo inferido é remover o Nullable que envolve o Tuple de um RECORD, e somente nesse mesmo registro — a anulabilidade não pode ser transferida para outro registro, interno ou externo. Parâmetros do motor
  • project — O projeto do Google Cloud proprietário do conjunto de dados.
  • dataset — O nome do conjunto de dados.
  • table — O nome da tabela.
  • access_token — Um token de acesso OAuth 2.0 (argumento posicional opcional).
Os parâmetros também podem ser informados como uma coleção nomeada, com substituições key = value. Consulte a função de tabela bigquery para ver a lista completa de chaves e a descrição dos métodos de autenticação. Exatamente um método de autenticação deve ser fornecido; para uma tabela permanente, uma service_account_key ou um refresh_token é preferível a um access_token, pois os tokens de acesso expiram em uma hora.

Exemplo de uso

Última modificação em 26 de setembro de 2026