Introdução ao SQL no BigQuery
Neste documento, você vai ter uma visão geral das instruções e dos dialetos SQL suportados no BigQuery.
O GoogleSQL é uma Linguagem de consulta estruturada (SQL) compatível com as normas ANSI e inclui os seguintes tipos de instruções compatíveis:
- As instruções de consulta, também conhecidas como instruções de linguagem de consulta de dados (DQL), são o principal método para analisar dados no BigQuery. Eles verificam uma ou mais tabelas ou expressões e retornam as linhas de resultados computadas. As instruções de consulta podem incluir a sintaxe de pipe (pré-lançamento).
- As instruções de linguagem processual são extensões processuais para o GoogleSQL que permitem a execução de várias instruções SQL em uma solicitação. Essas instruções podem usar variáveis e instruções de fluxo de controle, bem como ter efeitos colaterais.
- Com as instruções de Linguagem de definição de dados (DDL), é possível criar e modificar objetos de banco de dados, como tabelas, visualizações, funções e políticas de acesso no nível da linha.
- As instruções da linguagem de manipulação de dados (DML) permitem atualizar, inserir e excluir dados das tabelas do BigQuery.
- As instruções da linguagem de controle de dados (DCL) permitem controlar os recursos do sistema do BigQuery, como acesso e capacidade.
- As instruções da Linguagem de controle de transação (TCL) permitem gerenciar transações de modificações de dados.
- Instruções de carregamento e declarações de exportação para gerenciar dados que entram e saem do BigQuery.
Dialetos SQL do BigQuery
O BigQuery é compatível com o dialeto GoogleSQL, mas um dialeto SQL legado também está disponível. Se você não estiver familiarizado com o BigQuery, use o GoogleSQL, já que ele é compatível com a maior variedade de funcionalidades. Por exemplo, recursos como instruções DDL e DML só são compatíveis com o GoogleSQL. O SQL legado é mantido para compatibilidade com versões anteriores. Recomendamos que os clientes migrem se estiverem usando o SQL legado.
Como mudar do dialeto padrão
A interface usada para consultar os dados determina qual dialeto de consulta é o padrão. Para trocar para outro dialeto:
Console
O dialeto padrão do console do Google Cloud é o GoogleSQL. Para alterar o dialeto para SQL legado:
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, clique no botão Mais > Configurações de consulta.
Na seção Opções avançadas, em Dialeto SQL, clique em Legado e em Salvar. Isso define a opção de SQL legado para essa consulta. Ao clicar em add_box Consulta SQL para criar uma nova consulta, será preciso selecionar a opção SQL legado novamente.
SQL
O dialeto SQL padrão é o GoogleSQL.
É possível definir o dialeto SQL incluindo o prefixo
#standardSQL
ou #legacySQL
como parte da consulta.
Esses prefixos de consulta não diferenciam maiúsculas de minúsculas, precisam vir antes da consulta e
precisam ser separados da consulta por um caractere de nova linha. No exemplo
a seguir, o dialeto é definido como SQL legado e faz a consulta do conjunto de dados de natalidade:
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
#legacySQL SELECT weight_pounds, state, year, gestation_weeks FROM [bigquery-public-data:samples.natality] ORDER BY weight_pounds DESC LIMIT 10;
Clique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
O dialeto de consulta padrão na ferramenta de linha de comando bq
é o SQL legado. Para
mudar para o dialeto GoogleSQL, adicione a sinalização --use_legacy_sql=false
ou
--nouse_legacy_sql
à instrução de linha de comando.
Mudar para o dialeto GoogleSQL
Para usar a sintaxe do GoogleSQL em um job de consulta, defina o parâmetro use_legacy_sql
como false
.
bq query \
--use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data.samples.shakespeare`'
Definir o GoogleSQL como o dialeto padrão
É possível definir o GoogleSQL como o dialeto padrão da ferramenta de linha de comando e do shell interativo editando o arquivo de configuração da ferramenta de linha de comando: .bigqueryrc
.
Para mais informações sobre .bigqueryrc
, consulte Como configurar valores padrão para sinalizações específicas de comando.
Para configurar --use_legacy_sql=false
em .bigqueryrc
:
- Abra
.bigqueryrc
em um editor de texto. Por padrão,.bigqueryrc
deve estar em seu diretório de usuário. Por exemplo:$HOME/.bigqueryrc
. Adicione o texto a seguir ao arquivo. Este exemplo define o GoogleSQL como a sintaxe padrão para consultas e para o comando
mk
, que é usado na criação de uma visualização. Caso já tenha configurado valores padrão para sinalizações de comandoquery
oumk
, não será preciso adicionar[query]
ou[mk]
novamente.[query] --use_legacy_sql=false [mk] --use_legacy_sql=false
Salve e feche o arquivo.
Se você estiver usando o shell interativo, precisará sair e reiniciar para que as mudanças sejam aplicadas.
Para mais informações sobre as sinalizações de linha de comando disponíveis, consulte a referência da ferramenta de linha de comando bq.
C#
Antes de testar esta amostra, siga as instruções de configuração do C# no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em C#.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Por padrão, a biblioteca de cliente de C# usa o GoogleSQL.Mudar para o dialeto SQL legado
Para usar a sintaxe do SQL legado em um job de consulta, defina o parâmetro
UseLegacySql
como true
.
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Go.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Por padrão, a biblioteca de cliente do Go usa o GoogleSQL.Mudar para o dialeto SQL legado
Para usar a sintaxe do SQL legado em um job de consulta, defina a propriedade UseLegacySQL
na configuração de consulta como true
.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Por padrão, a biblioteca de cliente Java usa o GoogleSQL.Mudar para o dialeto SQL legado
Para usar a sintaxe do SQL legado em um job de consulta, defina o parâmetro
useLegacySql
como true
.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Node.js.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Por padrão, a biblioteca de cliente Node.js usa o GoogleSQL.Mudar para o dialeto SQL legado
Para usar a sintaxe do SQL legado em um job de consulta, defina o parâmetro
useLegacySql
como true
.
PHP
Antes de testar esta amostra, siga as instruções de configuração do PHP no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em PHP.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Por padrão, a biblioteca de cliente de PHP usa o GoogleSQL.Mudar para o dialeto SQL legado
Para usar a sintaxe do SQL legado em um job de consulta, defina o parâmetro
useLegacySql
como true
.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Por padrão, a biblioteca de cliente Python usa o GoogleSQL.Mudar para o dialeto SQL legado
Para usar a sintaxe do SQL legado em um job de consulta, defina o parâmetro
use_legacy_sql
como True
.
Ruby
Antes de testar esta amostra, siga as instruções de configuração do Ruby no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Ruby.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Por padrão, a biblioteca de cliente do Ruby usa o GoogleSQL.Mudar para o dialeto SQL legado
Para usar a sintaxe do SQL legado em um job de consulta, transmita a opção legacy_sql: true
com a consulta.
A seguir
- Para informações sobre como executar uma consulta SQL no BigQuery, consulte Como executar jobs de consulta interativa e em lote.
- Para mais informações sobre a otimização de consulta em geral, consulte Introdução à otimização de desempenho da consulta.
- Para saber mais sobre a sintaxe do GoogleSQL usada para consultar dados no BigQuery, consulte Sintaxe de consulta.
- Para saber mais sobre como usar a sintaxe de pipe nas consultas, consulte sintaxe de pipe.