Referência da ferramenta de linha de comando bq

Este documento descreve a sintaxe, comandos, sinalizações e argumentos da bq, a ferramenta de linha de comando do BigQuery. Ela é destinada a usuários que já estão familiarizados com o BigQuery, mas que querem saber como usar um determinado comando da ferramenta de linha de comando bq. Para informações gerais sobre como usar a ferramenta de linha de comando bq, consulte Como usar a ferramenta de linha de comando bq.

Sinopse

A ferramenta de linha de comando bq usa o seguinte formato:

bq COMMAND [FLAGS] [ARGUMENTS]

Algumas sinalizações podem ser usadas com vários comandos da ferramenta de linha de comando bq: essas sinalizações são descritas na seção Sinalizações globais.

Outras sinalizações são específicas de comandos; só podem ser usadas com um comando específico da ferramenta de linha de comando bq. As sinalizações específicas de comando são descritas nas seções de comando.

Sinalizações booleanas

Algumas sinalizações da ferramenta de linha de comando bq são booleanas; defina o valor da sinalização como true ou false. A ferramenta de linha de comando bq aceita os seguintes formatos para definir sinalizações booleanas.

Valor Formato Exemplo
true --FLAGNAME=true --debug=true
true --FLAGNAME --debug
false --FLAGNAME=false --debug=false
false --noFLAGNAME --nodebug

Este documento usa o formato --FLAGNAME=VALUE para sinalizações booleanas.

Todas as sinalizações booleanas são opcionais. Se uma sinalização booleana não estiver presente, o BigQuery usará o valor padrão da sinalização.

Como especificar valores para sinalizações

Quando você especifica um valor para uma sinalização, o sinal de igual = é opcional. No exemplo abaixo, as seguintes consultas são equivalentes:

bq ls --format prettyjson myDataset
bq ls --format=prettyjson myDataset

Neste documento, usamos o sinal de igual para maior clareza.

Ajuda on-line

A documentação está disponível na ferramenta de linha de comando bq da seguinte maneira:

Descrição Formato do comando de ajuda Exemplo
Lista de todos os comandos com exemplos bq help bq help
Descrição das sinalizações globais bq --help bq --help
Descrição de um comando específico bq help COMMAND bq help mk

Especificação de recursos

O formato para especificar um recurso depende do contexto. Em alguns casos, o separador entre o projeto e o conjunto de dados é dois pontos (:) e, em alguns casos, um ponto (.). A tabela a seguir descreve como especificar uma tabela do BigQuery em contextos diferentes.

Context Formato Exemplo
Ferramenta de linha de comando bq PROJECT:DATASET.TABLE myProject:myDataset.myTable
Consulta SQL padrão PROJECT.DATASET.TABLE myProject.myDataset.myTable
Consulta do SQL legado PROJECT:DATASET.TABLE myProject:myDataset.myTable

Se você não especificar um projeto, o BigQuery usará o projeto atual. Por exemplo, se o projeto atual for myProject, o BigQuery interpretará myDataset.myTable como myProject:myDataset.myTable (ou myProject.myDataset.myTable).

Alguns identificadores de recurso precisam ser citados com acentos graves (`). Se o identificador de recurso começar com uma letra ou um caractere de sublinhado e contiver apenas caracteres que sejam letras, números e sublinhados, não será necessário citá-lo. No entanto, se o identificador de recurso contiver outros tipos de caracteres ou palavras-chave reservadas, você precisará cercar o identificador (ou a parte do identificador com os caracteres especiais ou palavras-chave reservadas) com acentos graves. Para mais informações, consulte Identificadores.

Sinalizações globais

Use as sinalizações a seguir com qualquer comando bq, quando aplicável:

--api=ENDPOINT
Especifica o endpoint da API a ser chamada. O valor padrão é https://www.googleapis.com.
--api_version=VERSION
Especifica a versão da API a ser usada. O padrão é v2.
--apilog=FILE

Registra todas as solicitações e respostas de API no arquivo especificado por FILE. Os valores possíveis são:

  • o caminho para um arquivo - registra para o arquivo especificado
  • stdout: grava na saída padrão
  • stderr: registra para erro padrão
  • false: as solicitações e as respostas da API não são registradas (padrão)
--bigqueryrc=PATH

Especifica o caminho para o arquivo de configuração da ferramenta de linha de comando bq. Se você não especificar a sinalização --bigqueryrc, o comando usará a variável de ambiente BIGQUERYRC. Se a variável de ambiente não estiver configurada, $HOME/.bigqueryrc será usado. Se esse arquivo não existir, será usado ~/.bigqueryrc. Para mais informações, consulte Como configurar valores padrão para sinalizações de linha de comando.

--ca_certificates_file=PATH

Especifica a localização do arquivo do Certificate Authority Service (CA, na sigla em inglês).

--dataset_id=DATASET_ID

Especifica o conjunto de dados padrão a ser usado com o comando. Essa sinalização é ignorada quando não aplicável. É possível especificar o argumento DATASET_ID usando o formato PROJECT:DATASET ou DATASET. Se a parte PROJECT estiver ausente, o projeto padrão será usado. É possível substituir a configuração padrão do projeto especificando a sinalização --project_id.

--debug_mode={true|false}

Se definido como true, mostra rastreamentos em exceções do Python. O valor padrão é false.

--disable_ssl_validation={true|false}

Se definido como true, ativa a validação do certificado HTTPS. O valor padrão é false.

--discovery_file=PATH

Especifica o arquivo JSON que será lido para descoberta.

--enable_gdrive={true|false}

Se definido como false, solicita um novo token OAuth sem escopo do Drive. O valor padrão é true; solicita um novo token OAuth com escopo do Drive.

--fingerprint_job_id={true|false}

Para usar um ID do job derivado de uma impressão digital da configuração do job, defina como true. Isso evita que o mesmo job seja executado várias vezes acidentalmente. O valor padrão é false.

--format=FORMAT

Especifica o formato da saída do comando. Use um dos seguintes valores:

  • pretty: saída de tabela formatada
  • sparse: saída de tabela mais simples
  • prettyjson: formato JSON fácil de ler
  • json: JSON compactado ao máximo
  • csv: formato csv com cabeçalho

pretty, sparse e prettyjson foram desenvolvidos para ser legíveis por humanos. json e csv devem ser usados por outro programa. Se none for especificado, o comando não produzirá saída. Se a sinalização --format não estiver presente, um formato de saída apropriado será escolhido com base no comando.

--headless={true|false}

Para executar a sessão bq sem interação do usuário, defina como true. Por exemplo, debug_mode não forçará a entrada no depurador, e a frequência da impressão informativa será reduzida. O valor padrão é false.

--httplib2_debuglevel=DEBUG_LEVEL

Especifica se as informações de depuração HTTP serão exibidas. Se DEBUG_LEVEL for maior que 0, o comando registrará solicitações e respostas do servidor HTTP para stderr, além de mensagens de erro. Se DEBUG_LEVEL não for > 0, ou se a sinalização --httplib2_debuglevel não for usada, apenas mensagens de erro serão fornecidas.

Exemplo:

--httplib2_debuglevel=1

--job_id=JOB_ID

Especifica um identificador de job para um novo job. Essa sinalização aplica-se apenas aos comandos que criam jobs: cp, extract, load e query. Se você não usar a sinalização --job_id, os comandos gerarão um identificador de job exclusivo. Para mais informações, consulte Como executar jobs de maneira programática.

--job_property=KEY:VALUE

Um par de chave-valor a ser incluído no campo de propriedades da configuração do job. Repita essa sinalização para especificar outras propriedades.

--location=LOCATION

Uma string correspondente ao local da sua região ou multirregião. A sinalização de local é obrigatória nos comandos bq cancel e bq show quando você usa a sinalização --jobs para mostrar informações sobre jobs. Nos comandos a seguir, ela é opcional:

Todos os outros comandos ignoram a sinalização --location.

--max_rows_per_request=MAX_ROWS

Um número inteiro que especifica o número máximo de linhas a serem retornadas por leitura.

--project_id=PROJECT

Especifica o projeto a ser usado para comandos.

--proxy_address=PROXY

O nome ou endereço IP do host proxy a ser usado para conexão com o Google Cloud.

--proxy_password=PASSWORD

Especifica a senha a ser usada ao autenticar com o host proxy.

--proxy_port=PORT

Especifica o número da porta a ser usado para se conectar ao host proxy.

--proxy_username=USERNAME

Especifica o nome de usuário a ser usado na autenticação com o host de proxy.

--quiet={true|false} ou -q={true|false}

Para suprimir atualizações de status enquanto os jobs estão em execução, defina como true. O valor padrão é false.

--synchronous_mode={true|false} ou -sync={true|false}

Para criar o job e retornar imediatamente, com um status de conclusão bem-sucedido como código de erro, defina como false. Se definido como true, o comando aguardará a conclusão do job antes de retornar e retornará o status de conclusão do job como o código do erro. O valor padrão é true.

--trace=token:TOKEN

Especifica um token de rastreamento a ser incluído nas solicitações da API.

Sinalizações globais obsoletas

As sinalizações globais a seguir para configurar a autorização da ferramenta de linha de comando bq estão obsoletas. Para configurar a autorização da ferramenta de linha de comando bq, consulte Como autorizar ferramentas do SDK do Cloud.

--application_default_credential_file

Para mais informações, consulte Autenticação como uma conta de serviço. O valor padrão é ''.

--credential_file

O nome de arquivo usado para armazenar o token OAuth. O valor padrão é $HOME/.bigquery.v2.token.

--service_account

Especifica um endereço de e-mail da conta de serviço a ser usado para autorização. Exemplo:

        1234567890@developer.gserviceaccount.com
        
.

--service_account_credential_file

O arquivo usado como armazenamento de credenciais para contas de serviço. Será necessário definir essa sinalização se você estiver usando uma conta de serviço.

--service_account_private_key_file

O arquivo que contém a chave privada da conta de serviço. Essa sinalização será obrigatória se --service_account for especificada. O valor padrão é ''.

--service_account_private_key_password

A senha da chave privada. A senha precisa corresponder à que você definiu na chave ao criá-la. O valor padrão é notasecret.

--use_gce_service_account={true|false}

Para usar as credenciais da conta de serviço em vez de credenciais armazenadas ao executar uma instância do Compute Engine, defina como true. O valor padrão é false; são usadas as credenciais armazenadas. Para mais informações, consulte: Como criar e ativar contas de serviço para instâncias.

A sinalização global a seguir para especificar sinalizações da ferramenta de linha de comando bq de um arquivo está obsoleta. Para especificar sinalizações de um arquivo, use a sinalização --bigqueryrc.

--flagfile=PATH

Quando essa sinalização é especificada, as definições de sinalização do arquivo fornecido são inseridas na ferramenta de linha de comando bq. O valor padrão é ''.

Para mais informações, consulte Como configurar valores padrão para sinalizações de linha de comando.

Comandos

As seções a seguir descrevem os comandos da ferramenta de linha de comando bq, além das sinalizações e argumentos específicos dos comandos.

bq add-iam-policy-binding

Use o comando bq add-iam-policy-binding para recuperar a política de gerenciamento de identidade e acesso (IAM, na sigla em inglês) de uma tabela ou visualização e adicionar uma vinculação à política em uma etapa.

Esse comando é uma alternativa ao processo de três etapas a seguir:

  1. Como usar o comando bq get-iam-policy para recuperar o arquivo de política (no formato JSON).
  2. Como editar o arquivo de política.
  3. Como usar o comando bq set-iam-policy para atualizar a política com uma nova vinculação.

Sinopse

bq add-iam-policy-binding [FLAGS] --member=MEMBER_TYPE:MEMBER --role=ROLE
  [--table] RESOURCE

Exemplo

bq add-iam-policy-binding --member=user:myAccount@gmail.com \
  --role=roles/bigquery.dataViewer myDataset.myTable

Sinalizações e argumentos

O comando bq add-iam-policy-binding usa as seguintes sinalizações e argumentos:

--member=MEMBER_TYPE:MEMBER

Obrigatório. Use a sinalização --member para especificar a parte do membro da vinculação da política do IAM. A sinalização --member é obrigatória com a sinalização --role. Uma combinação de sinalizações --member e --role é igual a uma vinculação.

O valor MEMBER_TYPE especifica o tipo de membro na vinculação da política do IAM. Use um dos seguintes valores:

  • user
  • serviceAccount
  • group
  • domain

O valor MEMBER especifica o endereço de e-mail ou o domínio do membro na vinculação política do IAM.

--role=ROLE

Obrigatório. Especifica a parte do papel da vinculação de política do IAM. A sinalização --role é obrigatória com a sinalização --member. Uma combinação de sinalizações --member e --role é igual a uma vinculação.

--table={true|false}

Para retornar um erro se o argumento RESOURCE não for um identificador de tabela ou visualização, defina a sinalização --table como true. O valor padrão é false. Essa sinalização é compatível com a consistência de outros comandos.

RESOURCE

A tabela ou a visualização com a política que você quer adicionar.

Para mais informações, consulte a referência da política do IAM.

bq cancel

Use o comando bq cancel para cancelar jobs do BigQuery.

Sinopse

bq [--synchronous_mode=false] cancel JOB_ID

Exemplos

bq cancel bqjob_12345
bq --synchronous_mode=false cancel bqjob_12345

Sinalizações e argumentos

O comando bq cancel usa as seguintes sinalizações e argumentos:

--synchronous_mode=false
Se você não quiser aguardar a conclusão do comando bq cancel, defina a sinalização global --synchronous_mode como false. O padrão é true.
JOB_ID
O job que você quer cancelar.

Para mais informações sobre como usar o comando bq cancel, consulte Como gerenciar jobs.

bq cp

Use o comando bq cp para fazer uma cópia de uma tabela.

Sinopse

bq cp [FLAGS] SOURCE_TABLE DESTINATION_TABLE

Exemplo

bq cp myDataset.myTable myDataset.myTableCopy

Sinalizações e argumentos

O comando bq cp usa as seguintes sinalizações e argumentos:

--append_table={true|false} ou -a={true|false}
Para anexar uma tabela a uma tabela atual, defina como true. O valor padrão é false.
--destination_kms_key=KEY

Especifica um ID de recurso de chave do Cloud KMS para criptografar os dados da tabela de destino.

Exemplo:

--destination_kms_key=projects/myProject/locations/global/keyRings/myKeyRing/cryptoKeys/myKey

--force={true|false} ou -f={true|false}

Para substituir a tabela de destino, se houver, sem prompt, defina como true. O valor padrão é false; se a tabela de destino existir, o comando solicitará uma confirmação antes da substituição.

--no_clobber={true|false} ou -n={true|false}

Para proibir a substituição da tabela de destino, se ela existir, defina como true. O valor padrão é false; se a tabela de destino existir, ela será substituída.

SOURCE_TABLE

A tabela que você quer copiar.

DESTINATION_TABLE

A tabela para onde você quer copiar.

Para mais informações sobre como usar o comando bq cp, consulte Como gerenciar tabelas.

bq extract

Use o comando bq extract para exportar dados da tabela ao Cloud Storage.

Sinopse

bq extract [FLAGS] RESOURCE DESTINATION

Exemplos

bq extract --compression=GZIP --destination_format=CSV --field_delimiter=tab \
    --print_header=false myDataset.myTable gs://my-bucket/myFile.csv.gzip
bq extract --destination_format=CSV --field_delimiter='|' myDataset.myTable \
  gs://myBucket/myFile.csv

Sinalizações e argumentos

O comando bq extract usa as seguintes sinalizações e argumentos:

--compression=COMPRESSION_TYPE

Especifica o tipo de compactação a ser usado para arquivos exportados. Os valores possíveis são:

  • GZIP
  • DEFLATE
  • SNAPPY
  • NONE

O valor padrão é NONE.

Para ver informações sobre quais formatos são compatíveis com cada tipo de compactação, consulte Exportar formatos e tipos de compactação.

--destination_format=FORMAT

Especifica o formato dos dados exportados. Os valores possíveis são:

O valor padrão é CSV.

--field_delimiter=DELIMITER

Nas exportações CSV, especifica o caractere que marca o limite entre as colunas no arquivo de saída. O separador pode ser qualquer caractere ISO-8859-1 de um byte. É possível usar \t ou tab para especificar delimitadores de tabulação.

--print_header={true|false}

Para suprimir linhas de cabeçalho de impressão para formatos que tenham cabeçalhos, defina como false. O padrão é true; linhas de cabeçalho estão incluídas.

RESOURCE

A tabela da qual você está exportando.

DESTINATION

O local de armazenamento que recebe os dados exportados.

Para mais informações sobre como usar o comando bq extract, consulte Como exportar dados da tabela.

bq get-iam-policy

Use o comando bq get-iam-policy para recuperar a política do IAM de um recurso e imprima-a no stdout. O recurso pode ser uma tabela ou uma visualização. A política está no formato JSON.

Sinopse

bq get-iam-policy [FLAGS] RESOURCE

Exemplo

bq get-iam-policy myDataset.myTable

Sinalizações e argumentos

O comando bq get-iam-policy usa as seguintes sinalizações e argumentos:

--table={true|false} ou --t={true|false}
Para retornar um erro se RESOURCE não for um identificador de tabela ou visualização, defina a sinalização --table como true. O valor padrão é false. Essa sinalização é compatível com a consistência de outros comandos.
RESOURCE
A tabela ou visualização da política que você quer receber.

Para mais informações sobre o comando bq get-iam-policy, consulte Introdução aos controles de acesso à tabela.

bq head

Use o comando bq head para exibir as linhas e colunas especificadas de uma tabela. Por padrão, ele exibe todas as colunas das primeiras 100 linhas.

Sinopse

bq head [FLAGS] [TABLE]

Exemplo

bq head --max_rows=10 --start_row=50 --selected_fields=field1,field3 \
  myDataset.myTable

Sinalizações e argumentos

O comando bq head usa as seguintes sinalizações e argumentos:

--job=JOB or -j=JOB
Para ler os resultados de um job de consulta, especifique essa sinalização com um ID de job válido.
--max_rows=MAX or -n=MAX
Um número inteiro que indica o número máximo de linhas a serem impressas ao mostrar dados da tabela. O valor padrão é 100.
--selected_fields=COLUMN_NAMES or -c=COLUMN_NAMES
Uma lista separada por vírgulas que indica um subconjunto de campos (incluindo campos aninhados e repetidos) para retornar ao mostrar dados da tabela. Se essa sinalização não for especificada, todas as colunas serão retornadas.
--start_row=START_ROW or -s=START_ROW
Um número inteiro que especifica a quantidade de linhas a serem ignoradas antes de mostrar os dados da tabela. O valor padrão é 0; os dados da tabela começam na primeira linha.
--table={true|false} ou -t={true|false}
Para retornar um erro se o argumento do comando não for uma tabela ou visualização, defina como true. O valor padrão é false. Essa sinalização é compatível com a consistência de outros comandos.
TABLE
A tabela cujos dados você quer recuperar.

Para mais informações sobre como usar o comando bq head, consulte Como gerenciar dados de tabela.

bq help

Use o comando bq help para exibir a documentação da ferramenta de linha de comando bq na ferramenta.

Sinopse

bq help [COMMAND]

Sinalizações e argumentos

O comando bq help usa as seguintes sinalizações e argumentos:

COMMAND
Especifica um comando específico da ferramenta de linha de comando bq para receber ajuda on-line.

bq insert

Use o comando bq insert para inserir linhas de dados formatados em JSON delimitados por nova linha em uma tabela de um arquivo usando o buffer de streaming. Os tipos de dados são convertidos para corresponder aos tipos de coluna da tabela de destino. Esse comando é usado apenas para testes. Use o método de API insertAll para fazer streaming de dados para o BigQuery.

Sinopse

bq insert [FLAGS] TABLE FILE

Exemplos

bq insert --ignore_unknown_values --template_suffix=_insert myDataset.myTable /tmp/myData.json
echo '{"a":1, "b":2}' | bq insert myDataset.myTable

Sinalizações e argumentos

O comando bq insert usa as seguintes sinalizações e argumentos:

--ignore_unknown_values={true|false} ou -i={true|false}
Quando definido como true, o BigQuery ignora todos os pares de chave-valor que não correspondem ao esquema da tabela e insere a linha com os dados que correspondem ao esquema. Quando definido como false, as linhas com dados que não correspondem ao esquema da tabela não são inseridas. O padrão é false.
--skip_invalid_rows={true|false} ou -s={true|false}
Quando definido como true, o BigQuery tenta inserir qualquer linha válida, mesmo que haja linhas inválidas. Quando definido como false, o comando falhará se houver linhas inválidas. O padrão é false.
--template_suffix=SUFFIX or -x=SUFFIX
Quando especificada, trata a tabela de destino TABLE como um modelo base e insere as linhas em uma tabela de instâncias denominada {destination}{templateSuffix}. O BigQuery cria a tabela de instâncias usando o esquema do modelo base.
TABLE
A tabela em que você quer inserir dados.
FILE
O arquivo que contém os dados que você quer inserir.

Para mais informações, consulte Como fazer streaming de dados para o BigQuery.

bq load

Use o comando bq load para carregar dados em uma tabela.

Sinopse

bq load [FLAGS] DESTINATION_TABLE SOURCE_DATA [SCHEMA]

Exemplo

bq load myDataset.newTable gs://mybucket/info.csv ./info_schema.json

Sinalizações e argumentos

O comando bq load usa as seguintes sinalizações e argumentos:

--allow_jagged_row={true|false}
Para permitir a falta de colunas opcionais à direita nos dados CSV, defina como true.
--allow_quoted_newlines={true|false}
Para permitir novas linhas entre aspas em dados CSV, defina como true.
--autodetect={true|false}
Para ativar a detecção automática de esquema em dados CSV e JSON, defina como true. O padrão é false. Se --autodetect for false e nenhum esquema for especificado usando a sinalização --schema e a tabela de destino existir, o esquema da tabela de destino será usado.
--clustering_fields=COLUMNS
Uma lista separada por vírgulas de até quatro nomes de colunas que especifica os campos a serem usados para o clustering de tabelas.
--destination_kms_key=KEY
Especifica um ID de recurso de chave do Cloud KMS para criptografar os dados da tabela de destino.
--encoding=ENCODING_TYPE or -E=ENCODING_TYPE
A codificação de caracteres usada nos dados. Use um dos seguintes valores:
  • ISO-8859-1 (também conhecido como Latin-1)
  • UTF-8
--field_delimiter=DELIMITER or -F=DELIMITER
Especifica o caractere que marca o limite entre colunas nos dados. O delimitador pode ser qualquer caractere ISO-8859-1 de um byte. É possível usar \t ou tab para especificar os delimitadores de guia.
--ignore_unknown_values={true|false}
Quando definido como true, ignora e não carrega linhas de arquivos CSV e JSON com valores de colunas extras que não correspondem ao esquema da tabela. Da mesma forma, para arquivos Avro, Parquet e ORC, os campos no esquema de arquivo que não existem no esquema da tabela são ignorados e não são carregados.
--json_extension=JSON_TYPE

Especifica o tipo de arquivo JSON que será carregado. Aplicável apenas a arquivos JSON. Os valores possíveis são:

  • GEOJSON: arquivo GeoJSON delimitado por nova linha.

Para usar essa sinalização, a sinalização --source_format precisa ser definida como NEWLINE_DELIMITED_JSON.

Para mais informações, consulte Como carregar arquivos GeoJSON delimitados por nova linha.

--max_bad_records=MAX

Um número inteiro que especifica o número máximo de registros inválidos permitidos antes de uma falha em todo o job. O valor padrão é 0. No máximo, cinco erros de qualquer tipo são retornados, seja qual for o valor de --max_bad_records. Essa sinalização aplica-se ao carregamento apenas de dados CSV, JSON e Planilhas.

--null_marker=STRING

Uma string personalizada opcional que representa um valor NULL nos dados CSV.

--projection_fields=PROPERTY_NAMES

Se você definir --source_format como DATASTORE_BACKUP, essa sinalização indicará quais propriedades da entidade serão carregadas de uma exportação do Datastore. Especifique os nomes das propriedades em uma lista separada por vírgulas. Nomes de propriedades diferenciam maiúsculas e minúsculas e precisam fazer referência às propriedades de nível superior. Também é possível usar essa sinalização com exportações do Firestore.

--quote=CHARACTER

Especifica um caractere de aspas ao redor dos campos. O argumento CHARACTER pode ser qualquer caractere de um byte. O valor padrão é aspas duplas ("). Para especificar que não há caracteres de aspas, use uma string vazia "".

--replace={true|false}

Para apagar todos os dados e esquemas atuais quando novos dados forem carregados, defina como true. Todas as chaves do Cloud KMS também são removidas, a menos que você especifique a sinalização --destination_kms_key. O valor padrão é false.

--schema={SCHEMA_FILE|SCHEMA}

Especifica o caminho para um arquivo de esquema JSON local ou uma lista separada por vírgulas de definições de coluna no formato FIELD:DATA_TYPE, FIELD:DATA_TYPE e assim por diante. Se você usar um arquivo de esquema, não atribua uma extensão a ele.

Exemplo:

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

Se nenhum esquema for especificado e --autodetect for false, e a tabela de destino existir, o esquema da tabela de destino será usado.

--schema_update_option=OPTION

Ao anexar dados a uma tabela (em um job de carregamento ou consulta) ou ao substituir uma partição de tabela, especifica como atualizar o esquema da tabela de destino. Use um dos seguintes valores:

  • ALLOW_FIELD_ADDITION: permite que novos campos sejam adicionados.
  • ALLOW_FIELD_RELAXATION: permite o relaxamento de campos REQUIRED para NULLABLE.

Repita essa sinalização para especificar várias opções de atualização de esquema.

--skip_leading_rows=NUMBER_OF_ROWS

Um número inteiro que especifica a quantidade de linhas a ignorar no início do arquivo de origem. O padrão é 0.

--source_format=FORMAT

O formato dos dados de origem. Use um dos seguintes valores:

  • CSV
  • NEWLINE_DELIMITED_JSON
  • AVRO
  • DATASTORE_BACKUP
  • PARQUET
  • ORC
--time_partitioning_expiration=SECONDS

Um número inteiro que especifica (em segundos) quando uma partição baseada em tempo precisa ser excluída. O prazo de validade é a soma da data UTC da partição com o valor do número inteiro. Um número negativo indica que não há validade.

--time_partitioning_field=COLUMN_NAME

Especifica o campo que determina como criar uma partição baseada em tempo. Se o particionamento baseado em tempo estiver ativado sem esse valor, a tabela será particionada com base no tempo de carregamento.

--time_partitioning_type=INTERVAL

Ativa o particionamento baseado em tempo na tabela e define o tipo de partição. Use um dos seguintes valores:

  • DAY
  • HOUR
  • MONTH
  • YEAR

O tipo de partição padrão para particionamento baseado em tempo é DAY.

--use_avro_logical_types={true|false}

Se a sinalização --source_format estiver definida como AVRO, defina-a como true para converter os tipos lógicos nos tipos correspondentes (como TIMESTAMP), em vez de apenas usar. seus tipos brutos (como INTEGER).

--decimal_target_types=DECIMAL_TYPE

Determina como converter um tipo lógico Decimal. Equivalente a JobConfigurationLoad.decimalTargetTypes. Repita essa sinalização para especificar vários tipos de destino.

--parquet_enum_as_string={true|false}

Se a sinalização --source_format estiver definida como PARQUET e você quiser que o BigQuery infira tipos lógicos ENUM do Parquet como valores STRING, defina essa sinalização como true. O padrão é false.

--parquet_enable_list_inference={true|false}

Se a sinalização --source_format estiver definida como PARQUET, essa sinalização indicará se é necessário usar a inferência de esquema para os tipos lógicos LIST do Parquet.

DESTINATION_TABLE

A tabela em que você quer carregar dados.

SOURCE_DATA

O URI do Cloud Storage do arquivo que contém os dados que você quer carregar.

SCHEMA

O esquema da tabela de destino.

Para mais informações sobre como carregar dados do Cloud Storage usando o comando load, consulte:

Para mais informações sobre como carregar dados de uma fonte local usando o comando load, consulte:

bq ls

Use o comando bq ls para listar objetos em uma coleção.

Sinopse

bq ls [FLAGS] [RESOURCE]

Exemplo

bq ls myDataset

Sinalizações e argumentos

O comando bq ls usa as seguintes sinalizações e argumentos:

--all={true|false} ou -a={true|false}
Para mostrar todos os resultados, defina como true. Mostra jobs de todos os usuários ou de todos os conjuntos de dados, incluindo os ocultos. Essa sinalização não é necessária ao listar configurações ou execuções de transferência. O valor padrão é false.
--capacity_commitment={true|false}
Para listar compromissos de capacidade, defina como true. O valor padrão é false.
--datasets={true|false} ou -d={true|false}
Para listar conjuntos de dados, defina como true. O valor padrão é false.
--filter="FILTER"

Lista conjuntos de dados que correspondem ao argumento FILTER, que consiste em um ou mais triplos separados por espaço no formato labels.KEY:VALUE. Se mais de um triplo for fornecido, o comando retornará apenas os conjuntos de dados correspondentes a todos dos três (ou seja, o comando usa o operador lógico AND, não OR). Se você quiser especificar mais de três vezes, coloque o seguinte valor FILTER com aspas.

  • Para filtrar com base nos rótulos do conjunto de dados, use as chaves e os valores aplicados aos conjuntos de dados.

    Exemplo:

    --filter "labels.department:marketing labels.team:sales"
    

  • Para filtrar com base nas configurações de transferência, use dataSourceIds como chave e uma das seguintes origens de dados como o valor:

Exemplo:

   --filter labels.dataSourceIds:dcm_dt
   

  • Para filtrar com base em execuções de transferência, use states como a chave e um dos seguintes estados de transferência como o valor:

    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED

      Exemplo:

      --filter labels.states:FAILED
      

--jobs={true|false} ou -j={true|false}
Para listar jobs, defina como true. O valor padrão é false. Por padrão, o limite é de 100.000 resultados.
--max_creation_time=MAX_CREATION_TIME_MS
Um número inteiro que representa um carimbo de data/hora em milissegundos. Quando especificada com --jobs, essa sinalização lista apenas os jobs criados antes do carimbo de data/hora.
--max_results=MAX_RESULTS or -n=MAX_RESULTS
Um número inteiro indicando a quantidade máxima de resultados. O valor padrão é 50
.
--min_creation_time=MIN_CREATION_TIME_MS
Um número inteiro que representa um carimbo de data/hora em milissegundos. Quando especificada com --jobs, essa sinalização lista apenas os jobs criados após o carimbo de data/hora.
--message_type=messageTypes:MESSAGE_TYPE

Para listar mensagens de registro de execução de transferência de um tipo específico, use messageTypes:MESSAGE_TYPE. Os valores possíveis são:

  • INFO
  • WARNING
  • ERROR
--models={true|false} ou -m={true|false}

Para listar modelos do BigQuery ML, defina como true. O valor padrão é false.

--page_token=TOKEN ou -k=TOKEN

Lista itens a partir do token de página especificado.

--projects={true|false} ou -p={true|false}

Para mostrar todos os projetos, defina como true. O valor padrão é false.

--reservation={true|false}

Para listar todas as reservas de um determinado projeto e local, defina como true. O valor padrão é false. Use com as sinalizações --project_id e --location.

Exemplo:

bq ls --reservation=true --project_id=myProject --location=us

--reservation_assignment={true|false}

Para listar todas as atribuições de reserva de um determinado projeto e local, defina como true. O valor padrão é false. Use com as sinalizações --project_id e --location.

--run_attempt=RUN_ATTEMPT

Use com a sinalização --transfer_run. Para listar todas as tentativas de execução da execução de transferência especificada, defina como RUN_ATTEMPT_UNSPECIFIED. Para listar apenas a última tentativa de execução, defina como LATEST. O padrão é LATEST.

--transfer_config={true|false}

Para listar configurações de transferência no projeto e no local especificados, defina como true. Use com as sinalizações --transfer_location e --project_id. O valor padrão é false.

--transfer_location=LOCATION

Lista as configurações de transferência no local especificado. O local da transferência é definido quando ela é criada.

--transfer_log={true|false}

Use com a sinalização --transfer_run. Para listar mensagens de registro de transferência da execução de transferência especificada, defina como true. O valor padrão é false.

--transfer_run={true|false}

Lista as execuções de transferência para a configuração de transferência especificada.

Exemplo:

bq ls --transfer_run=true projects/myProject/locations/us/transferConfigs/12345

RESOURCE

A coleção cujos objetos você quer listar. O recurso pode ser um conjunto de dados, projeto, reserva ou configuração de transferência.

Para mais informações sobre como usar o comando bq ls, consulte:

bq mk

Use o comando bq mk para criar um recurso do BigQuery.

Sinopse

bq mk TYPE_FLAG [OTHER FLAGS] [ARGS]

Sinalizações e argumentos

O comando bq mk usa uma sinalização de tipo que especifica o tipo de recurso a ser criado e outras sinalizações que dependem do tipo de recurso.

TYPE_FLAG: defina uma das seguintes sinalizações como true. Sua seleção especifica o tipo de recurso que será criado.

O comando bq mk é compatível com a seguinte sinalização para todos os tipos de recursos:

--force={true|false} ou -f={true|false}
Para ignorar erros se um recurso com o mesmo nome já existir, defina como true. Se o recurso já existir, o código de saída será 0, mas definir essa sinalização como true não fará com que o comando bq mk substitua o recurso. O valor padrão é false.

O comando bq mk aceita sinalizações adicionais, dependendo do tipo de recurso que você está criando, conforme descrito nas seções a seguir.

bq mk --capacity_commitment

Adquire um compromisso de capacidade. As sinalizações a seguir são compatíveis:

--location=LOCATION
Especifica a localização do projeto.
--plan=PLAN_TYPE
Especifica o tipo de plano. Uma das seguintes opções:
  • FLEX
  • MONTHLY
  • ANNUAL
--project_id=PROJECT_ID
Especifica o projeto que administra os slots.
--slots=NUMBER_OF_SLOTS
Especifica o número de slots para compra.

Para mais informações, consulte Como trabalhar com compromissos.

bq mk --dataset

Cria um conjunto de dados. As sinalizações a seguir são compatíveis:

--default_kms_key=KEY
Especifica o ID de recurso de chave padrão do Cloud KMS para criptografar os dados da tabela em um conjunto de dados, caso nenhuma chave explícita seja fornecida durante a criação ou consulta da tabela.
--default_partition_expiration=SECONDS
Um número inteiro que especifica o prazo de validade padrão, em segundos, para todas as partições em tabelas particionadas recém-criadas em um conjunto de dados. O prazo de validade é definido como a data UTC da partição acrescida do valor de número inteiro. Se essa propriedade for definida, o valor dela modificará a validade da tabela padrão no nível do conjunto de dados, se houver. Se você fornecer a sinalização --time_partitioning_expiration ao criar ou atualizar uma tabela particionada, a validade da partição no nível da tabela terá prioridade sobre a validade da partição padrão no nível do conjunto de dados.
--default_table_expiration=SECONDS
Um número inteiro que especifica o ciclo de vida padrão, em segundos, para tabelas recém-criadas em um conjunto de dados. O prazo de validade é definido como a hora UTC atual mais esse valor.
--description=DESCRIPTION
Especifica a descrição do conjunto de dados.
--label=KEY:VALUE
Especifica um rótulo para o conjunto de dados. Repita essa sinalização para especificar vários rótulos.
--location=LOCATION ou --data_location=LOCATION
Especifica a localização do conjunto de dados. Prefira a sinalização --location. A sinalização --data_location é legada.

Para mais informações, consulte Como criar conjuntos de dados.

bq mk --materialized_view

Cria uma visualização materializada. As sinalizações a seguir são compatíveis:

--enable_refresh={true|false}
Para desativar a atualização automática de uma visualização materializada, defina como false. O padrão ao criar uma visualização materializada é true.
--refresh_interval_ms=MILLISECONDS
Especifica o número de milissegundos para o intervalo de atualização de uma visualização materializada. Se essa sinalização não for especificada, o intervalo de atualização padrão para uma visualização materializada com atualização ativada será de 1.800.000 milissegundos, ou seja, 30 minutos.

Para mais informações, consulte Como criar e usar visualizações materializadas.

bq mk --reservation

Cria uma reserva com slots dedicados. As sinalizações a seguir são compatíveis:

--ignore_idle_slots={true|false}
Para restringir os jobs em execução nesta reserva a fim de usar somente slots alocados para a reserva, defina como true. O valor padrão é false; jobs nesta reserva podem usar slots inativos de outras reservas ou slots que não são alocados para nenhuma reserva. Para mais informações, consulte Slots inativos.
--location=LOCATION
Especifica a localização do projeto.
--project_id=PROJECT_ID
Especifica o projeto que é proprietário da reserva.
--slots=NUMBER_OF_SLOTS
Especifica o número de slots a serem alocados para esta reserva.

Para mais informações, consulte Como trabalhar com reservas.

bq mk --reservation_assignment

Atribui um projeto, uma pasta ou uma organização a uma reserva. As sinalizações a seguir são compatíveis:

--assignee_id=ASSIGNEE_ID
Especifica o ID da pasta, organização ou projeto.
--assignee_type=ASSIGNEE_TYPE
Especifica o tipo de entidade a ser atribuído à reserva. Uma das seguintes opções:
  • FOLDER
  • ORGANIZATION
  • PROJECT
--job_type=JOB_TYPE
Especifica o tipo de job a ser atribuído à reserva. Uma das seguintes opções:
  • QUERY
  • PIPELINE
  • ML_EXTERNAL
--location=LOCATION
Especifica a localização do projeto.
--project_id=PROJECT_ID
Especifica o projeto que é proprietário da reserva.
--reservation_id=RESERVATION_ID
Especifica o ID da reserva.

Para saber mais, consulte Como trabalhar com atribuições.

bq mk --table

Cria uma tabela. As sinalizações a seguir são compatíveis:

--clustering_fields=COLUMNS
Uma lista separada por vírgulas de até quatro nomes de colunas que especifica os campos a serem usados para o clustering de tabelas. Se especificada com particionamento, a tabela será particionada e, em seguida, cada partição será agrupada usando as colunas fornecidas.
--description=DESCRIPTION
Especifica a descrição da tabela.
--destination_kms_key=KEY
Especifica um ID de recurso de chave do Cloud KMS para criptografar os dados da tabela de destino.
--expiration=SECONDS
Especifica a vida útil da tabela. Se SECONDS for 0, a tabela não expirará. Se você não especificar a sinalização --expiration, o BigQuery criará a tabela com o ciclo de vida da tabela padrão do conjunto de dados.
--external_table_definition={PATH_TO_FILE|DEFINITION}

Especifica uma definição de tabela para criar uma tabela externa. O valor pode ser um caminho para um arquivo que contém uma definição de tabela JSON ou uma definição de tabela in-line. O formato de uma definição de tabela in-line é SCHEMA@FORMAT=URI. O formato do valor SCHEMA é uma lista separada por vírgulas de definições de coluna no formato FIELD:DATA_TYPE, FIELD:DATA_TYPE e assim por diante. Se você usa um arquivo de definição de tabela, não atribua uma extensão a ele.

Exemplo:

--external_table_definition=/tmp/tabledef
--external_table_definition=Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

--label=KEY:VALUE

Especifica um rótulo para a tabela. Repita essa sinalização para especificar vários rótulos.

--range_partitioning=COLUMN_NAME,START,END,INTERVAL

Especifica opções para uma partição de intervalo de números inteiros, da seguinte maneira:

  • column_name é a coluna usada para criar as partições por intervalo de números inteiros;
  • start é o início do particionamento por intervalo, inclusivo;
  • end é o fim do particionamento por intervalo, exclusivo;
  • interval é a largura de cada intervalo dentro da partição.

Exemplo:

--range_partitioning=customer_id,0,10000,100

--require_partition_filter={true|false}

Para exigir um filtro de partição para consultas na tabela fornecida, defina como true. Essa sinalização só se aplica a tabelas particionadas. O valor padrão é false.

--schema={SCHEMA_FILE|SCHEMA}

Especifica o caminho para um arquivo de esquema JSON local ou uma lista separada por vírgulas de definições de coluna no formato FIELD:DATA_TYPE, FIELD:DATA_TYPE e assim por diante. Se você usar um arquivo de esquema, não atribua uma extensão a ele.

Exemplo:

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

--time_partitioning_expiration=SECONDS

Um número inteiro que especifica (em segundos) quando uma partição baseada em tempo precisa ser excluída. O prazo de validade é a soma da data UTC da partição com o valor do número inteiro. Um número negativo indica que não há validade.

--time_partitioning_field=COLUMN_NAME

Especifica o campo usado para determinar como criar uma partição baseada em tempo. Se o particionamento baseado em tempo estiver ativado sem esse valor, a tabela será particionada com base no tempo de carregamento.

--time_partitioning_type=INTERVAL

Ativa o particionamento baseado em tempo na tabela e define o tipo de partição. Use um dos seguintes valores:

  • DAY
  • HOUR
  • MONTH
  • YEAR
--use_avro_logical_types={true|false}

Se external_table_definition for definido como AVRO, essa sinalização especificará se os tipos lógicos serão convertidos nos tipos correspondentes (como TIMESTAMP), em vez de apenas usar os tipos brutos (como INTEGER).

--parquet_enable_list_inference={true|false}

Se external_table_definition estiver definido como PARQUET, essa sinalização especificará se é necessário usar a inferência de esquema para os tipos lógicos LIST do Parquet.

--parquet_enum_as_string={true|false}

Se external_table_definition estiver definido como PARQUET, essa sinalização especificará se os tipos lógicos ENUM do Parquet serão inferidos como valores STRING.

Para mais informações, consulte Como criar e usar tabelas.

bq mk --transfer_config

Cria uma configuração de transferência. As sinalizações a seguir são compatíveis:

--data_source=DATA_SOURCE
Especifica a fonte de dados. Obrigatório ao criar uma configuração de transferência. Use um dos seguintes valores:
--display_name=DISPLAY_NAME
Especifica o nome de exibição da configuração de transferência.
--params={"PARAMETER":"VALUE"} ou -p={"PARAMETER":"VALUE"}
Especifica os parâmetros da configuração de transferência no formato JSON. Os parâmetros variam de acordo com a fonte de dados. Para mais informações, consulte Introdução ao serviço de transferência de dados do BigQuery.
--refresh_window_days=DAYS
Um número inteiro que especifica a janela de atualização para uma configuração de transferência em dias. O valor padrão é 0.
--target_dataset=DATASET
Especifica o conjunto de dados de destino na configuração da transferência.

Para informações sobre como usar o comando bq mk com o serviço de transferência de dados do BigQuery, consulte:

bq mk --transfer_run

Cria uma transferência de dados no horário ou intervalo de tempo especificado usando a configuração de transferência de dados especificada.

Sinopse
bq mk --transfer_run [--run_time=RUN_TIME | --start_time=START_TIME --end_time=END_TIME] CONFIG

As sinalizações a seguir são compatíveis:

--run_time=RUN_TIME
Um carimbo de data/hora que especifica o horário para programar a execução da transferência de dados.
--start_time=START_TIME
Um carimbo de data/hora que especifica o horário de início para um intervalo de execuções de transferência.
--end_time=END_TIME
Um carimbo de data/hora que especifica o horário de término para um intervalo de execuções de transferência.

O formato dos carimbos de data/hora é RFC3339 UTC "Zulu".

O argumento CONFIG especifica uma configuração de transferência de dados preexistente.

Exemplos
bq mk --transfer_run \
      --run_time=2021-01-20T17:00:00.00Z \
      projects/p/locations/l/transferConfigs/c
bq mk --transfer_run \
      --start_time=2020-12-19T16:39:57-08:00 \
      --end_time=2020-12-19T20:39:57-08:00 \
      projects/p/locations/l/transferConfigs/c

bq mk --view

Cria uma visualização. As sinalizações a seguir são compatíveis:

--description=DESCRIPTION
Especifica a descrição da visualização.
--expiration=SECONDS
Especifica a vida útil da visualização. Se SECONDS for 0, a visualização não expirará. Se você não especificar a sinalização --expiration, o BigQuery criará a visualização com o ciclo de vida padrão da tabela do conjunto de dados.
--label=KEY:VALUE
Especifica um rótulo para a visualização. Repita essa sinalização para especificar vários rótulos.
--use_legacy_sql={true|false}
Defina como false para usar uma consulta SQL padrão para criar uma visualização. O valor padrão é true (usa SQL legado).
--view_udf_resource=FILE
O URI do Cloud Storage ou o caminho para um arquivo de código local que é carregado e avaliado imediatamente como um recurso de função definido pelo usuário usado pela consulta SQL de uma visualização. Repita a sinalização para especificar vários arquivos.

Para mais informações, consulte Como criar visualizações.

bq mkdef

Use o comando bq mkdef para criar uma definição de tabela no formato JSON para dados armazenados no Cloud Storage ou no Drive.

Sinopse

bq mkdef [FLAGS] URI [ > FILE ]

Sinalizações e argumentos

O comando bq mkdef usa as seguintes sinalizações e argumentos:

--autodetect={true|false}
Especifica se quer usar a detecção automática de esquema para dados CSV e JSON. O padrão é false.
--ignore_unknown_values={true|false} ou -i={true|false}
Especifica se é necessário ignorar quaisquer valores em uma linha que não estejam presentes no esquema. O padrão é false.
--parquet_enable_list_inference={true|false}
Se source_format estiver definido como PARQUET, essa sinalização especificará se é necessário usar a inferência de esquema para os tipos lógicos LIST do Parquet. O padrão é false.
--parquet_enum_as_string={true|false}
Se source_format estiver definido como PARQUET, essa sinalização especificará se os tipos lógicos ENUM do Parquet serão inferidos como valores STRING. O padrão é false.
--source_format=FORMAT

Especifica formato dos dados de origem. Use um dos seguintes valores:

  • AVRO
  • CSV
  • DATASTORE_BACKUP
  • GOOGLE_SHEETS
  • NEWLINE_DELIMITED_JSON
  • ORC
  • PARQUET

O valor padrão é CSV.

--use_avro_logical_types={true|false}

Se a sinalização --source_format estiver definida como AVRO, ela especificará se é necessário converter os tipos lógicos nos tipos correspondentes (como TIMESTAMP) em vez de apenas usar os tipos brutos (como INTEGER). O padrão é false.

Para mais informações sobre como usar o comando bq mkdef, consulte Como criar um arquivo de definição de tabela para uma fonte de dados externa.

bq partition

Use o comando bq partition para converter um grupo de tabelas com sufixos de unidade de tempo, como tabelas que terminam em YYYYMMDD para particionamento de data, em tabelas particionadas.

Sinopse

bq partition [FLAGS] SOURCE_TABLE_BASE_NAME PARTITION_TABLE

Sinalizações e argumentos

O comando bq partition usa as seguintes sinalizações e argumentos:

--no_clobber={true|false} ou -n={true|false}
Para proibir a substituição de uma partição atual, defina como true. O valor padrão é false; se a partição existir, ela será substituída.
--time_partitioning_expiration=SECONDS
Um número inteiro que especifica (em segundos) quando uma partição baseada em tempo precisa ser excluída. O prazo de validade é a soma da data UTC da partição com o valor do número inteiro. Um número negativo indica que não há validade.
--time_partitioning_type=INTERVAL

Especifica o tipo de partição. A tabela a seguir fornece os valores possíveis para a sinalização INTERVAL e o formato de sufixo de unidade de tempo esperado para cada um:

INTERVAL Sufixo
HOUR YYYYMMDDHH
DAY YYYYMMDD
MONTH YYYYMM
YEAR YYYY
SOURCE_TABLE_BASE_NAME

O nome base do grupo de tabelas com sufixos de unidade de tempo.

PARTITION_TABLE

O nome da tabela particionada de destino.

Para mais informações sobre como usar o comando bq partition, consulte Como converter tabelas fragmentadas por data em tabelas particionadas por tempo de processamento.

bq query

Use o comando bq query para criar um job de consulta que execute a consulta SQL especificada.

Sinopse

bq query [FLAGS] 'QUERY'

Sinalizações e argumentos

O comando bq query usa as seguintes sinalizações e argumentos:

--allow_large_results={true|false}
Para ativar tamanhos de tabela de destino grandes para consultas SQL legadas, defina como true. O valor padrão é false.
--append_table={true|false}
Para anexar dados a uma tabela de destino, defina como true. O valor padrão é false.
--batch={true|false}
Para executar a consulta no modo em lote, defina como true. O valor padrão é false.
--clustering_fields=COLUMNS
Uma lista separada por vírgulas de até quatro nomes de colunas que especifica os campos a serem usados para armazenar em cluster a tabela de destino em uma consulta. Se especificada com particionamento, a tabela será particionada e, em seguida, cada partição será agrupada usando as colunas fornecidas.
--destination_kms_key=KEY
Especifica um ID de recurso de chave do Cloud KMS para criptografar os dados da tabela de destino.
--destination_schema={PATH_TO_FILE|SCHEMA}
O caminho para um arquivo de esquema JSON local ou uma lista separadas por vírgulas de definições de coluna no formato FIELD:DATA_TYPE, FIELD:DATA_TYPE e assim por diante.
--destination_table=TABLE

Quando especificada, os resultados da consulta são salvos em TABLE. Especifique TABLE no seguinte formato: PROJECT:DATASET.TABLE Se PROJECT não for especificado, o projeto atual será considerado. Se a sinalização --destination_table não for especificada, os resultados da consulta serão salvos em uma tabela temporária.

Exemplos:

--destination_table myProject:myDataset.myTable
--destination_table myDataset.myTable

--dry_run={true|false}

Quando especificada, a consulta é validada, mas não executada.

--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}

Especifica o nome da tabela e a definição da tabela para uma consulta de tabela externa. A definição da tabela pode ser um caminho para um arquivo de esquema JSON local ou uma definição de tabela in-line. O formato para fornecer a definição de tabela in-line é SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI. O formato do valor SCHEMA é uma lista separada por vírgulas de definições de coluna no formato FIELD:DATA_TYPE, FIELD:DATA_TYPE e assim por diante. Se você usa um arquivo de definição de tabela, não atribua uma extensão a ele.

Exemplo:

--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

Repita essa sinalização para consultar várias tabelas.

--flatten_results={true|false}

Para proibir o nivelamento de campos aninhados e repetidos nos resultados de consultas SQL legadas, defina como false. O valor padrão é true.

--label=KEY:VALUE

Especifica um rótulo para o job de consulta. Repita essa sinalização para especificar vários rótulos.

--max_rows=MAX_ROWS ou -n=MAX_ROWS

Um número inteiro que especifica o número de linhas a retornar nos resultados da consulta. O valor padrão é 100.

--maximum_bytes_billed=MAX_BYTES

Um número inteiro que limita os bytes faturados pela consulta. Se a consulta ultrapassar o limite, ela falhará (sem gerar cobranças). Se essa sinalização não for especificada, os bytes faturados serão definidos como o padrão do projeto.

--min_completion_ratio=RATIO

[Experimental] Um número entre 0 e 1 que especifica a fração mínima de dados que precisa ser verificada antes que uma consulta seja retornada. Se a sinalização não for especificada, o valor de servidor padrão 1.0 será usado.

--parameter={PATH_TO_FILE|PARAMETER}

Um arquivo JSON contendo uma lista de parâmetros de consulta ou um parâmetro de consulta no formulário NAME:TYPE:VALUE. Um nome vazio gera um parâmetro de posição. Se TYPE for omitido, o tipo STRING será usado. NULL especifica um valor nulo. Repita essa sinalização para especificar vários parâmetros.

Exemplo:

--parameter=/tmp/queryParams
--parameter=Name::Oscar
--parameter=Count:INTEGER:42

--range_partitioning=COLUMN_NAME,START,END,INTERVAL

Use com a sinalização --destination_table. Especifica opções para particionamento por intervalo de números inteiros na tabela de destino. O valor é uma lista separada por vírgulas no formato column_name,start,end,interval, em que:

  • column_name é a coluna usada para criar as partições por intervalo de números inteiros;
  • start é o início do particionamento por intervalo, inclusivo;
  • end é o fim do particionamento por intervalo, exclusivo;
  • interval é a largura de cada intervalo dentro da partição.

Exemplo:

--range_partitioning=customer_id,0,10000,100

--replace={true|false}

Para substituir a tabela de destino pelos resultados da consulta, defina como true. Todos os dados e esquemas atuais são apagados. Todas as chaves do Cloud KMS também são removidas, a menos que você especifique a sinalização --destination_kms_key. O valor padrão é false.

--require_cache={true|false}

Se especificada, executa a consulta apenas se os resultados puderem ser recuperados do cache.

--require_partition_filter={true|false}

Se especificada, requer um filtro de partição para consultas na tabela fornecida. Essa sinalização só pode ser usada com uma tabela particionada.

--rpc={true|false}

Para usar a API de consulta no estilo RPC, em vez do método jobs.insert da API REST, defina como true. O valor padrão é false.

--schedule="SCHEDULE"

Transforma a consulta em uma programada recorrente. É necessário definir uma frequência de execução da consulta.

Exemplos:

--schedule="every 24 hours"
--schedule="every 3 hours"

Para ver uma descrição da sintaxe, consulte Como formatar a programação.

--schema_update_option=OPTION

Ao anexar dados a uma tabela (em um job de carregamento ou consulta) ou ao substituir uma partição de tabela, especifica como atualizar o esquema da tabela de destino. Use um dos seguintes valores:

  • ALLOW_FIELD_ADDITION: permite que novos campos sejam adicionados.
  • ALLOW_FIELD_RELAXATION: permite o relaxamento de campos REQUIRED para NULLABLE.

Repita essa sinalização para especificar várias opções de atualização de esquema.

--start_row=ROW_NUMBER ou -s=ROW_NUMBER

Um número inteiro que especifica a primeira linha a retornar no resultado da consulta. O valor padrão é 0.

--target_dataset=DATASET

Quando especificada com --schedule, atualiza o conjunto de dados de destino para uma consulta programada. A consulta deve ser DDL ou DML.

--time_partitioning_expiration=SECONDS

Use com a sinalização --destination_table. Trata-se de um número inteiro que especifica (em segundos) quando uma partição baseada em tempo será excluída. O prazo de validade é a soma da data UTC da partição com o valor do número inteiro. Caso ele seja negativo, isso indica que não há validade.

--time_partitioning_field=COLUMN_NAME

Use com a sinalização --destination_table. Especifica a coluna para o particionamento baseado em tempo. Se ele for ativado sem esse valor, a tabela será particionada com base no tempo de ingestão.

--time_partitioning_type=INTERVAL

Use com a sinalização --destination_table. Especifica o tipo de partição da tabela de destino. Use um dos seguintes valores:

  • DAY
  • HOUR
  • MONTH
  • YEAR
--udf_resource=FILE

Essa sinalização aplica-se somente a consultas SQL legadas. Especifica o URI do Cloud Storage ou o caminho para um arquivo local que contém um recurso de função definido pelo usuário a ser usado por uma consulta SQL legada. Repita a sinalização para especificar vários arquivos.

--use_cache={true|false}

Para não permitir o armazenamento dos resultados da consulta em cache, defina como false. O valor padrão é true.

--use_legacy_sql={true|false}

Para executar uma consulta SQL padrão, defina como false. O valor padrão é true. O comando usa o SQL legado.

QUERY

A consulta que você quer executar.

Para mais informações sobre como usar o comando bq query, consulte Como executar consultas interativas e em lote.

bq remove-iam-policy-binding

Use o comando bq remove-iam-policy-binding para recuperar a política do IAM de um recurso e remover uma vinculação da política em uma única etapa. O recurso pode ser uma tabela ou uma visualização.

Esse comando é uma alternativa ao processo de três etapas a seguir:

  1. Como usar o comando bq get-iam-policy para recuperar o arquivo de política (no formato JSON).
  2. Como editar o arquivo de política.
  3. Como usar o comando bq set-iam-policy para atualizar a política sem a vinculação

Sinopse

bq remove-iam-policy-binding FLAGS --member=MEMBER_TYPE:MEMBER --role=ROLE RESOURCE

Sinalizações e argumentos

O comando bq remove-iam-policy-binding usa as seguintes sinalizações e argumentos:

--member=MEMBER_TYPE:MEMBER

Obrigatório. Use a sinalização --member para especificar a parte do membro da vinculação da política do IAM. A sinalização --member é obrigatória com a sinalização --role. Uma combinação de sinalizações --member e --role é igual a uma vinculação.

O valor MEMBER_TYPE especifica o tipo de membro na vinculação da política do IAM. Use um dos seguintes valores:

  • user
  • serviceAccount
  • group
  • domain

O valor MEMBER especifica o endereço de e-mail ou o domínio do membro na vinculação política do IAM.

--role=ROLE

Obrigatório. Especifica a parte do papel da vinculação de política do IAM. A sinalização --role é obrigatória com a sinalização --member. Uma combinação de sinalizações --member e --role é igual a uma vinculação.

--table={true|false} ou -t={true|false}

Opcional. Para remover uma vinculação da política do IAM de uma tabela ou visualização, defina como true. O valor padrão é false.

RESOURCE é a tabela ou a visualização com a vinculação de política que você quer remover.

Para mais informações, consulte a referência da política do IAM.

bq rm

Use o comando bq rm para excluir um recurso do BigQuery.

Sinopse

bq rm [FLAGS] RESOURCE

Sinalizações e argumentos

O comando bq rm usa as seguintes sinalizações e argumentos:

--capacity_commitment={false|true}
Para excluir um compromisso de capacidade, defina como true. O valor padrão é false.
--dataset={true|false} ou -d={true|false}
Para excluir um conjunto de dados, defina como true. O valor padrão é false.
--force={true|false} ou -f={true|false}
Para excluir um recurso sem prompt, defina como true. O valor padrão é false.
--model={true|false} ou -m={true|false}
Para excluir um modelo do BigQuery ML, defina como true. O padrão é false.
--recursive={true|false} ou -r{true|false}
Para excluir um conjunto de dados e quaisquer tabelas, dados da tabela ou modelos contidos nele, defina como true. O valor padrão é false.
--reservation={true|false}
Para excluir uma reserva, defina como true. O valor padrão é false.
--reservation_assignment={true|false}
Para excluir uma atribuição de reserva, defina como true. O valor padrão é false.
--table={true|false} ou -t={true|false}
Para excluir uma tabela, defina como true. O valor padrão é false.
--transfer_config={true|false}
Para excluir uma configuração de transferência, defina como true. O valor padrão é false.
RESOURCE
O recurso que você quer remover.

Para mais informações sobre como usar o comando bq rm, consulte:

bq set-iam-policy

Use o comando bq set-iam-policy para especificar ou atualizar a política do IAM de um recurso. O recurso pode ser uma tabela ou uma visualização. Depois de definir a política, a nova política é impressa em stdout. A política está no formato JSON.

O campo etag na política atualizada precisa corresponder ao valor etag da política atual. Caso contrário, a atualização falhará. Esse recurso evita atualizações simultâneas.

É possível conseguir a política atual e o valor etag de um recurso usando o comando bq get-iam-policy.

Sinopse

bq set-iam-policy [FLAGS] RESOURCE FILE_NAME

Sinalizações e argumentos

O comando bq set-iam-policy usa as seguintes sinalizações e argumentos.

--table={true|false} ou -t={true|false}
Opcional. Para definir a política do IAM de uma tabela ou visualização, defina como true. O valor padrão é false.

RESOURCE é a tabela ou a visualização com a política que você quer atualizar.

FILE_NAME é o nome de um arquivo que contém a política no formato JSON.

Para mais informações sobre o comando bq set-iam-policy, com exemplos, consulte Introdução aos controles de acesso à tabela.

bq show

Use o comando bq show para exibir informações sobre um recurso.

Sinopse

bq show [FLAGS] [RESOURCE]

Sinalizações e argumentos

O comando bq show usa as seguintes sinalizações e argumentos:

--assignee_id=ASSIGNEE
Quando usado com a sinalização --reservation_assignment, especifica o ID de uma pasta, organização ou projeto. Use a sinalização --assignee_type para especificar o tipo de cessionário a ser exibido.
--assignee_type=TYPE
Quando usado com a sinalização --reservation_assignment, especifica o tipo de entidade a ser exibido. Use um dos seguintes valores:
  • FOLDER
  • ORGANIZATION
  • PROJECT
--reservation={true|false}
Para mostrar informações sobre uma reserva, defina como true. O valor padrão é false.
--dataset={true|false} ou -d={true|false}
Para mostrar informações sobre um conjunto de dados, defina como true. O valor padrão é false.
--encryption_service_account={true|false}
Para mostrar a conta de serviço de criptografia de um projeto, se existir, ou criar uma se não existir, defina como true. O valor padrão é false. Use com a sinalização --project_id.
--job={true|false} ou -j={true|false}
Para mostrar informações sobre um job, defina como true. O valor padrão é false.
--job_type=JOB_TYPE
Quando usado com a sinalização --reservation_assignment, especifica o tipo de job das atribuições de reserva que você quer mostrar. Use um dos seguintes valores:
  • QUERY
  • PIPELINE
  • ML_EXTERNAL
--model={true|false} ou -m={true|false}
Para mostrar informações sobre um modelo de ML do BigQuery, defina como true. O valor padrão é false.
--reservation={true|false}
Para mostrar informações sobre uma reserva, defina como true. O valor padrão é false.
--reservation_assignment={true|false}
Quando definido como true, o comando exibe atribuições de reserva para uma pasta, organização ou projeto especificado. O comando exibe as atribuições explícitas do recurso de destino, se houver. Caso contrário, exibirá atribuições herdadas dos recursos pai. Por exemplo, um projeto pode herdar atribuições da pasta pai. Ao usar essa sinalização, as sinalizações --job_type, --assignee_type e --assignee_id são aplicáveis. O valor padrão é false.
--schema={true|false}
Para exibir apenas o esquema da tabela, defina como true. O valor padrão é false.
--transfer_config={true|false}
Para exibir informações sobre uma configuração de transferência, defina como true. O valor padrão é false.
--transfer_run={true|false}
Para exibir informações sobre uma execução de transferência, defina como true. O valor padrão é false.
--view={true|false}
Para exibir informações sobre uma visualização, defina como true. O valor padrão é false.
RESOURCE
O recurso cujas informações você quer mostrar.

Para mais informações sobre como usar o comando bq show, consulte:

bq update

Use o comando bq update para alterar um recurso.

Sinopse

bq update [FLAGS] [RESOURCE]

Sinalizações e argumentos

O comando bq update usa as seguintes sinalizações e argumentos:

--capacity_commitment={true|false}
Para atualizar um compromisso de capacidade, defina como true. O valor padrão é false. Use essa sinalização com as sinalizações --merge, --plan, --renewal_plan, --split e --slots.
--clear_label=KEY:VALUE
Remove um rótulo do recurso. Use o formato KEY:VALUE para especificar o rótulo a ser removido. Repita essa sinalização para remover vários rótulos.
--clustering_fields=COLUMNS
Atualiza a especificação de clustering de uma tabela. O valor COLUMNS é uma lista separada por vírgulas de nomes de colunas para usar no cluster. Para remover o clustering, defina COLUMNS como "" (a string vazia). Para mais informações, consulte Como modificar a especificação de clustering.
--dataset={true|false} ou -d={true|false}
Para atualizar um conjunto de dados, defina como true. O valor padrão é false.
--default_kms_key=KEY
Especifica o ID de recurso de chave padrão do Cloud KMS para criptografar dados da tabela em um conjunto de dados. A chave padrão será usada se nenhuma chave explícita for fornecida para uma criação de tabela ou uma consulta.
--default_partition_expiration=SECONDS

Um número inteiro que especifica o prazo de validade padrão, em segundos, para todas as partições em tabelas particionadas recém-criadas em um conjunto de dados. Essa sinalização não tem valor mínimo.

O prazo de validade é definido como a data UTC da partição acrescida do valor de número inteiro. Se essa propriedade for definida, ela substituirá a validade da tabela padrão no nível do conjunto de dados, se houver. Se você fornecer a sinalização --time_partitioning_expiration ao criar ou atualizar uma tabela particionada, a validade da partição no nível da tabela terá prioridade sobre a validade da partição padrão no nível do conjunto de dados. Especifique 0 para remover uma validade atual.

--default_table_expiration=SECONDS

Um número inteiro que atualiza a duração padrão, em segundos, para tabelas recém-criadas em um conjunto de dados. O prazo de validade é definido como a hora UTC atual mais esse valor. Especifique 0 para remover a validade atual.

--description=DESCRIPTION

Atualiza a descrição de um conjunto de dados, tabela, modelo ou visualização.

--destination_reservation_id=RESERVATION_ID

Quando usado com a sinalização --reservation_assignment, move uma atribuição de reserva atual para a reserva especificada. O valor é o ID da reserva de destino. Para mais informações, consulte Mover uma atribuição para uma reserva diferente.

--display_name=DISPLAY_NAME

Atualiza o nome de exibição para uma configuração de transferência.

--etag=ETAG

Atua como um filtro. Atualiza o recurso somente se ele tiver uma ETag que corresponda à string especificada no argumento ETAG.

--expiration=SECONDS

Para atualizar a validade da tabela, do modelo ou da visualização, inclua esta sinalização. Substitua SECONDS pelo número de segundos entre a hora de atualização e o prazo de validade. Para remover a expiração de uma tabela, modelo ou visualização, defina o argumento SECONDS como 0.

--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}

Atualiza uma tabela externa com a definição de tabela especificada. A definição da tabela pode ser um caminho para um arquivo de definição de tabela JSON local ou in-line no formato SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI. O valor SCHEMA é uma lista separada por vírgulas de definições de coluna no formato FIELD:DATA_TYPE, FIELD:DATA_TYPE e assim por diante. Se você usa um arquivo de definição de tabela, não atribua uma extensão a ele.

Exemplo:

--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

--ignore_idle_slots={true|false}

Use com a sinalização --reservation. Para restringir os jobs em execução na reserva especificada para usar somente os slots alocados para aquela reserva, defina como true. O valor padrão é false. Os jobs na reserva especificada podem usar slots inativos de outras reservas ou aqueles que não são alocados para nenhuma reserva. Para mais informações, consulte Slots inativos.

--merge={true|false}

Use com a sinalização --capacity_commitment. Defina como true para mesclar dois compromissos de capacidade. O valor padrão é false. Para mais informações, consulte Mesclar dois compromissos.

--model={true|false} ou -m={true|false}

Para atualizar os metadados de um modelo de ML do BigQuery, defina como true. O valor padrão é false.

--params={"PARAMETER":"VALUE"} or -p={"PARAMETER":"VALUE"}

Atualiza parâmetros para uma configuração de transferência. Os parâmetros variam de acordo com a fonte de dados. Para mais informações, consulte Introdução ao serviço de transferência de dados do BigQuery.

--plan=PLAN

Quando usado com a sinalização --capacity_commitment, converte um compromisso de capacidade em um plano de compromisso de maior duração. Opções:

  • FLEX
  • MONTHLY
  • ANNUAL
--refresh_window_days=DAYS

Um número inteiro que especifica uma janela atualizada (em dias) para uma configuração de transferência.

--renewal_plan=PLAN

Quando usado com a sinalização --capacity_commitment, especifica o plano de renovação de um compromisso de capacidade atual. Opções:

  • FLEX
  • MONTHLY
  • ANNUAL
--reservation={true|false}

Especifica se é necessário atualizar uma reserva. O valor padrão é false.

--reservation_assignment={true|false}

Especifica se é necessário atualizar uma atribuição de reserva. O valor padrão é false.

--schema={SCHEMA_FILE|SCHEMA}

Especifica o caminho para um arquivo de esquema JSON local ou uma lista separada por vírgulas de definições de coluna no formato FIELD:DATA_TYPE, FIELD:DATA_TYPE e assim por diante. Se você usar um arquivo de esquema, não atribua uma extensão a ele.

Exemplo:

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

--set_label=KEY:VALUE

Especifica um rótulo a ser atualizado. Para atualizar vários rótulos, repita essa sinalização.

--slots=NUMBER_OF_SLOTS

Quando usado com as sinalizações --capacity_commitment e --split, especifica o número de slots a serem divididos de um compromisso de capacidade atual em um novo compromisso. Quando usado com a sinalização --reservation, atualiza o número de slots em uma reserva.

--source=FILE

O caminho para o arquivo JSON local que contém um payload usado para atualizar um recurso. Por exemplo, é possível usar essa sinalização para especificar um arquivo JSON que contenha um recurso de conjunto de dados com uma propriedade de access atualizada. O arquivo é usado para substituir os controles de acesso do conjunto de dados.

--split={true|false}

Quando usado com a sinalização --capacity_commitment, especifica se será necessário dividir um compromisso de capacidade. O valor padrão é false. Para mais informações, consulte Dividir um compromisso.

--table={true|false} ou -t={true|false}

Especifica se é necessário atualizar uma tabela. O valor padrão é false.

--target_dataset=DATASET

Quando especificada, atualiza o conjunto de dados de destino para uma configuração de transferência.

--time_partitioning_expiration=SECONDS

Um número inteiro que atualiza (em segundos) quando uma partição baseada em tempo precisa ser excluída. O prazo de validade é a soma da data UTC da partição com o valor do número inteiro. Um número negativo indica que não há validade.

--time_partitioning_field=COLUMN_NAME

Atualiza o campo usado para determinar como criar uma partição baseada em tempo. Se o particionamento baseado em tempo estiver ativado sem esse valor, a tabela será particionada com base no tempo de carregamento.

--time_partitioning_type=INTERVAL

Especifica o tipo de particionamento. Use um dos seguintes valores:

  • DAY
  • HOUR
  • MONTH
  • YEAR

Não é possível alterar o tipo de particionamento de uma tabela existente.

--transfer_config={true|false}

Especifica se é necessário atualizar uma configuração de transferência. O valor padrão é false.

--update_credentials={true|false}

Especifica se é necessário atualizar as credenciais de configuração de transferência. O valor padrão é false.

--use_legacy_sql={true|false}

Defina como false para atualizar a consulta SQL de uma exibição de SQL legado para SQL padrão. O valor padrão é true. A consulta usa SQL legado.

--view=QUERY

Quando especificada, atualiza a consulta SQL para uma exibição.

--view_udf_resource=FILE

Atualiza o URI do Cloud Storage ou o caminho para um arquivo de código local, carregado e avaliado imediatamente, como recurso de uma função definida pelo usuário na consulta SQL de uma visualização. Repita a sinalização para especificar vários arquivos.

RESOURCE

O recurso que você quer atualizar.

Para mais informações sobre como usar o comando bq update, consulte:

bq version

Use o comando bq version para exibir o número da versão da ferramenta de linha de comando bq.

Sinopse

bq version

bq wait

Use o comando bq wait para aguardar um número especificado de segundos para que um job seja concluído. Se um job não for especificado, o comando aguardará a conclusão do job atual.

Sinopse

bq wait [FLAGS] [JOB] [SECONDS]

Exemplos

bq wait
bq wait --wait_for_status=RUNNING 12345 100

Sinalizações e argumentos

O comando bq wait usa as seguintes sinalizações e argumentos:

--fail_on_error={true|false}
Para retornar o sucesso se o job foi concluído durante o tempo de espera, mesmo se o job falhar, defina como false. O valor padrão é true; após o tempo de espera, o comando será encerrado com um erro se o job ainda estiver em execução ou se o job foi concluído, mas tiver falhado.
--wait_for_status=STATUS

Quando especificada, aguarda um determinado status do job antes de sair. Use um dos seguintes valores:

  • PENDING
  • RUNNING
  • DONE

O valor padrão é DONE.

JOB

Especifica o job que será aguardado. Use o comando bq ls --jobs myProject para encontrar um identificador de job.

SECONDS

Especifica o número máximo de segundos para aguardar até que o job seja concluído. Se você digitar 0, o comando pesquisará a conclusão do job e retornará imediatamente. Se você não especificar um valor inteiro, o comando aguardará até que o job seja concluído.