Introdução ao SQL no BigQuery
Este documento oferece uma vista geral das declarações e dos dialetos de SQL suportados no BigQuery.
O GoogleSQL é uma linguagem de consulta estruturada (SQL) em conformidade com a norma ANSI que inclui os seguintes tipos de declarações suportadas:
- As declarações de consulta, também conhecidas como declarações de linguagem de consulta de dados (DQL), são o método principal para analisar dados no BigQuery. Analisam uma ou mais tabelas ou expressões e devolvem as linhas de resultados calculadas. As declarações de consulta podem incluir sintaxe de barra vertical.
- As declarações de linguagem processual são extensões processuais ao GoogleSQL que lhe permitem executar várias declarações SQL num único pedido. As declarações processuais podem usar variáveis e declarações de fluxo de controlo, e podem ter efeitos secundários.
As declarações de linguagem de definição de dados (LDD) permitem-lhe criar e modificar objetos, como os seguintes:
- Conjuntos de dados
- Tabelas, incluindo o respetivo esquema e tipos de colunas
- Clones e instantâneos de tabelas
- Visualizações
- Funções
- Índices
- Consolidações de capacidade, reservas e atribuições
- Políticas de acesso ao nível da linha
As declarações da linguagem de manipulação de dados (DML) permitem-lhe atualizar, inserir e eliminar dados das suas tabelas do BigQuery.
As declarações de linguagem de controlo de dados (DCL) permitem-lhe controlar os recursos do sistema do BigQuery, como o acesso e a capacidade.
As declarações da linguagem de controlo de transações (TCL) permitem-lhe gerir transações para modificações de dados.
Carregue extratos e exporte extratos para gerir os dados que entram e saem do BigQuery.
Dialetos de SQL do BigQuery
O BigQuery suporta o dialeto GoogleSQL, mas também está disponível um dialeto SQL antigo. Se for a primeira vez que usa o BigQuery, deve usar o GoogleSQL, uma vez que suporta a mais ampla gama de funcionalidades. Por exemplo, as funcionalidades, como as declarações DDL e DML, só são suportadas através do GoogleSQL. O SQL antigo é mantido para compatibilidade com versões anteriores e recomendamos que os clientes migrate se estiverem a usar o SQL antigo.
Alterar o dialeto predefinido
A interface que usa para consultar os seus dados determina qual é o dialeto de consulta predefinido. Para mudar para um dialeto diferente:
Consola
O dialeto predefinido para a Google Cloud consola é o GoogleSQL. Para alterar o dialeto para SQL antigo:
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, clique no botão Mais > Definições da consulta.
Na secção Opções avançadas, para Dialeto SQL, clique em Antigo e, de seguida, em Guardar. Esta opção define a opção SQL antiga para esta consulta. Quando clica em add_box Consulta SQL para criar uma nova consulta, tem de selecionar novamente a opção SQL antigo.
SQL
O dialeto de SQL predefinido é o GoogleSQL.
Pode definir o dialeto de SQL incluindo o prefixo #standardSQL
ou #legacySQL
como parte da consulta.
Estes prefixos de consulta não são sensíveis a maiúsculas e minúsculas, têm de preceder a consulta e têm de estar separados da consulta por um caráter de nova linha. O exemplo
seguinte define o dialeto como SQL antigo e consulta o conjunto de dados natality:
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaraçã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, consulte o artigo Execute uma consulta interativa.
bq
O dialeto de consulta predefinido na ferramenta de linhas de comando bq
é o SQL antigo. Para
mudar para o dialeto GoogleSQL, adicione a flag --use_legacy_sql=false
ou
--nouse_legacy_sql
à sua declaração de linha de comandos.
Mude para o dialeto GoogleSQL
Para usar a sintaxe GoogleSQL num trabalho 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`'
Defina o GoogleSQL como o dialeto predefinido
Pode definir o GoogleSQL como o dialeto predefinido para a ferramenta de linha de comandos e o shell interativo editando o ficheiro de configuração da ferramenta de linha de comandos:
.bigqueryrc
.
Para mais informações sobre .bigqueryrc
, consulte o artigo
Definir valores predefinidos para flags específicas de comandos.
Para definir --use_legacy_sql=false
em .bigqueryrc
:
- Abra
.bigqueryrc
num editor de texto. Por predefinição, o ficheiro.bigqueryrc
deve estar no diretório do utilizador, por exemplo,$HOME/.bigqueryrc
. Adicione o seguinte texto ao ficheiro. Este exemplo define o GoogleSQL como a sintaxe predefinida para consultas e para o comando
mk
(usado quando cria uma vista). Se já configurou valores predefinidos para as flags de comandoquery
oumk
, não precisa de adicionar novamente[query]
ou[mk]
.[query] --use_legacy_sql=false [mk] --use_legacy_sql=false
Guarde e feche o ficheiro.
Se estiver a usar a shell interativa, tem de sair e reiniciar para que as alterações sejam aplicadas.
Para obter informações sobre os sinalizadores de linha de comandos disponíveis, consulte a referência da ferramenta de linhas de comando bq.
C#
Antes de experimentar este exemplo, siga as C#instruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API C# BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Por predefinição, a biblioteca C# usa o GoogleSQL.Mude para o dialeto SQL antigo
Para usar a sintaxe SQL antigo numa tarefa de consulta, defina o parâmetro UseLegacySql
como true
.
Go
Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Go BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Por predefinição, a biblioteca cliente Go usa o GoogleSQL.Mude para o dialeto SQL antigo
Para usar a sintaxe SQL antigo numa tarefa de consulta, defina a propriedade UseLegacySQL
na configuração da consulta como true
.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Por predefinição, a biblioteca cliente Java usa o GoogleSQL.Mude para o dialeto SQL antigo
Para usar a sintaxe SQL antigo numa tarefa de consulta, defina o parâmetro useLegacySql
como true
.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Node.js BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Por predefinição, a biblioteca de cliente Node.js usa o GoogleSQL.Mude para o dialeto SQL antigo
Para usar a sintaxe SQL antigo numa tarefa de consulta, defina o parâmetro useLegacySql
como true
.
PHP
Antes de experimentar este exemplo, siga as PHPinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API PHP BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Por predefinição, a biblioteca cliente PHP usa o GoogleSQL.Mude para o dialeto SQL antigo
Para usar a sintaxe SQL antigo numa tarefa de consulta, defina o parâmetro useLegacySql
como true
.
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Por predefinição, a biblioteca cliente Python usa o GoogleSQL.Mude para o dialeto SQL antigo
Para usar a sintaxe SQL antigo numa tarefa de consulta, defina o parâmetro use_legacy_sql
como True
.
Ruby
Antes de experimentar este exemplo, siga as Rubyinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Ruby BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Por predefinição, a biblioteca de cliente Ruby usa o GoogleSQL.Mude para o dialeto SQL antigo
Para usar a sintaxe SQL antigo numa tarefa de consulta, transmita a opção legacy_sql: true
com a sua consulta.
O que se segue?
- Para obter informações sobre como executar uma consulta SQL no BigQuery, consulte o artigo Executar tarefas de consulta interativas e em lote.
- Para mais informações sobre a otimização de consultas em geral, consulte o artigo Introdução à otimização do desempenho das consultas.
- Para saber mais sobre a sintaxe do GoogleSQL usada para consultar dados no BigQuery, consulte Sintaxe de consulta.
- Para saber como usar a sintaxe de barra vertical nas suas consultas, consulte o artigo sobre a sintaxe de barra vertical.