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.
Visão geral
O Google Standard SQL é uma Linguagem de consulta estruturada (SQL) em conformidade com o ANSI, que 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 linguagem processual são extensões procedurais para o BigQuery SQL que permitem executar várias instruções SQL em apenas 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.
- Outras instruções oferecem outras funcionalidades, como exportação de dados.
Dialetos SQL do BigQuery
O BigQuery é compatível com o dialeto SQL padrão do Google, mas um dialeto SQL legado também está disponível. Se você está começando a usar o BigQuery, use o SQL padrão do Google, que é compatível com o conjunto mais amplo de funcionalidades. Por exemplo, recursos como instruções DDL e DML são compatíveis somente com o SQL padrão do Google. 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 Cloud é o SQL padrão do Google. Para alterar o dialeto para o SQL legado:
Se necessário, clique em Escrever nova consulta para abrir a janela do editor de consultas.
Clique no botão Mais > Configurações de consulta.
Na seção Configurações extras, clique em Legado para Dialeto SQL. Isso define a opção de SQL legado para essa consulta. Ao clicar em Escrever nova consulta para criar uma nova consulta, será preciso selecionar a opção "SQL legado" novamente.
SQL
O dialeto SQL padrão é o SQL padrão do Google.
É 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.
Mudar para o dialeto SQL legado
Para usar a sintaxe do SQL legado em um job de consulta, adicione #legacySQL
à consulta.
#legacySQL
SELECT
weight_pounds, state, year, gestation_weeks
FROM
[bigquery-public-data:samples.natality]
ORDER BY weight_pounds DESC
LIMIT 10;
bq
O dialeto de consulta padrão na ferramenta de linha de comando bq
é o SQL legado. Para
alternar para o dialeto SQL padrão do Google, adicione a sinalização --use_legacy_sql=false
ou
--nouse_legacy_sql
à instrução de linha de comando.
Mudar para o dialeto SQL padrão do Google
Para usar a sintaxe SQL padrão do Google 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 SQL padrão do Google como o dialeto padrão
É possível definir o SQL padrão do Google 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 SQL padrão como a sintaxe padrão para consultas e para o comando
mk
(usado ao criar 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#.
Por padrão, a biblioteca C# usa o SQL padrão do Google.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.
Por padrão, a biblioteca de cliente do Go usa o SQL padrão do Google.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.
Por padrão, a biblioteca de cliente do Java usa o SQL padrão do Google.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 Node.js.
Por padrão, a biblioteca de cliente do Node.js usa o SQL padrão.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 PHP.
Por padrão, a biblioteca de cliente do PHP usa o SQL padrão do Google.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.
Por padrão, a biblioteca de cliente do Python usa o SQL padrão do Google.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 Ruby.
Por padrão, a biblioteca de cliente do Ruby usa o SQL padrão do Google.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 SQL padrão do Google usada para consultar dados no BigQuery, consulte Sintaxe de consulta.