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
.bigqueryrcnum editor de texto. Por predefinição, o ficheiro.bigqueryrcdeve 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 comandoqueryoumk, não precisa de adicionar novamente[query]ou[mk].[query] --use_legacy_sql=false [mk] --use_legacy_sql=falseGuarde 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.