Neste tópico, você aprenderá a definir o dialeto de consulta ao consultar dados do BigQuery. É possível usar os dialetos SQL padrão ou legado.
Para saber como começar a consultar dados usando o Console do Google Cloud, consulte o Guia de início rápido sobre como usar o Console do Cloud.
Para saber como começar a consultar dados usando a ferramenta de linha de comando bq
, consulte o Guia de início rápido sobre o uso da ferramenta de linha de comando bq
.
Como mudar do dialeto padrão
A interface usada para consultar os dados determina qual dialeto de consulta é o padrão:
- No Console do Cloud e nas bibliotecas de cliente, o SQL padrão é o padrão.
- Na ferramenta de linha de comando
bq
e na API REST, o SQL legado é o padrão.
Para mudar para um dialeto diferente:
Console
O dialeto padrão do Console do Cloud é o SQL padrão. Para alterar o dialeto para SQL legado, faça o seguinte:
Se necessário, clique em Escrever nova consulta para abrir a janela do editor de consultas.
Abaixo do editor de consultas, clique em Mais > Configurações de consulta.
Clique em Opções avançadas.
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.
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, adicione a sinalização --use_legacy_sql=false
ou
--nouse_legacy_sql
à sua instrução de linha de comando.
Exemplo:
bq query \ --use_legacy_sql=false \ 'SELECT word FROM `bigquery-public-data.samples.shakespeare`'
C#
Antes de testar essa amostra, siga as instruções de configuração para 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 C# (em inglês).
Por padrão, a execução de uma consulta usa o SQL padrão.
Como usar o SQL legado
Para usar o SQL legado ao executar consultas, defina o parâmetro `UseLegacySql` como "true".
Go
Antes de testar essa amostra, siga as instruções de configuração para 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 Go (em inglês).
Por padrão, a biblioteca de cliente do Go usa o SQL padrão.
Como usar o SQL legado
Para trocar uma consulta para legado, use a propriedade UseLegacySQL
na configuração dela.
Java
Antes de testar essa amostra, siga as instruções de configuração para 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 Java (em inglês).
Por padrão, a biblioteca de cliente do Java usa o SQL padrão.
Como usar o 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 essa amostra, siga as instruções de configuração para 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 (em inglês).
Por padrão, a biblioteca de cliente do Node.js usa o SQL padrão.
Como usar o 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 para 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 (em inglês).
Por padrão, a biblioteca de cliente do PHP usa o SQL padrão.
Como usar o 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 essa amostra, siga as instruções de configuração para 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 Python (em inglês).
Por padrão, a biblioteca de cliente do Python usa o SQL padrão.
Como usar o 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 para 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 (em inglês).
Por padrão, a biblioteca de cliente do Ruby usa o SQL padrão.
Como usar um prefixo de consulta no Console do Cloud
Também é possível definir o dialeto SQL no Console do Cloud incluindo um prefixo de dialeto SQL como parte da consulta.
Os prefixos a seguir permitem que você defina o dialeto SQL:
Prefixo | Descrição |
---|---|
#legacySQL |
Executa a consulta com SQL legado |
#standardSQL |
Executa a consulta com SQL padrão |
Ao usar um prefixo de consulta no Console do Cloud, a opção dialeto SQL é desativada nas Configurações de consulta.
Se você copiar e colar a consulta a seguir no Console do Cloud, por exemplo, o BigQuery vai executar a consulta usando SQL legado e ignorar a configuração padrão. A configuração padrão do Console do Cloud é o SQL padrão.
#legacySQL
SELECT
weight_pounds, state, year, gestation_weeks
FROM
[bigquery-public-data:samples.natality]
ORDER BY weight_pounds DESC
LIMIT 10;
Os prefixos de consulta #legacySQL
e #standardSQL
:
- NÃO diferenciam maiúsculas de minúsculas;
- precisam preceder a consulta;
- precisam ser separados da consulta por um caractere de nova linha.
Algumas ferramentas de terceiros podem não ser compatíveis com esses prefixos se, por exemplo, modificarem o texto da consulta antes de enviá-lo ao BigQuery.
Como definir o SQL padrão como padrão para a ferramenta de linha de comando
É possível definir o SQL padrão como sintaxe padrão para a ferramenta de linha de comando e para o
shell interativo editando o seguinte 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.