Disponibilidade de recursos do SQL legado
Este documento descreve as restrições futuras à disponibilidade do SQL legado do BigQuery, que são baseadas no uso durante um período de avaliação e entram em vigor após 1º de junho de 2026. Essas mudanças fazem parte da transição do BigQuery do SQL legado para o GoogleSQL, o dialeto recomendado e compatível com ANSI para o BigQuery.
A migração para o GoogleSQL oferece estes benefícios em relação ao SQL legado:
- Ele pode ser mais econômico, usando o tempo de execução avançado do BigQuery para melhorar a performance.
- Ele permite usar recursos não compatíveis com o SQL legado, como instruções DML e DDL, expressões de tabela comuns (CTEs), subconsultas complexas e predicados de junção, visualizações materializadas, índices de pesquisa e funções de IA generativa.
Como funciona a disponibilidade de recursos
O BigQuery monitora o uso de recursos do SQL legado durante um período de avaliação. Para organizações e projetos que não usam o SQL legado entre 1º de novembro de 2025 e 1º de junho de 2026, o SQL legado fica indisponível após o fim do período de avaliação. Para organizações e projetos que usam o SQL legado durante o período de avaliação, é possível continuar executando consultas usando o conjunto específico de recursos do SQL legado que você usa.
O uso de recursos é agregado no nível da organização. Se um projeto em uma organização usar um recurso, ele vai continuar disponível para todos os outros projetos na organização. Para projetos não associados a uma organização, a disponibilidade de recursos é gerenciada no nível do projeto.
Conjuntos de recursos do SQL legado
Os recursos do SQL legado são organizados em três conjuntos de recursos: recursos básicos de linguagem, recursos avançados de linguagem e agrupamentos de funções. As seções a seguir detalham os recursos de cada conjunto.
Recursos básicos de linguagem
Esses recursos são a base do SQL legado. Todo esse conjunto de recursos está disponível para qualquer organização ou projeto independente que execute pelo menos uma consulta SQL legada durante o período de avaliação.
| Categoria | Recursos |
|---|---|
| Sintaxe das consultas |
|
| Lógica de expressão | Literais:
Operadores lógicos:
Funções de comparação:
Instruções de fluxo de controle:
|
| Operações básicas | Operadores aritméticos:
Funções de agregação básicas:
|
| Elementos de dados | Tipos de dados básicos:
Tipos de dados estruturados e parcialmente compatíveis:
Funções de conversão:
Coerções:todas as coerções automáticas de tipo de dados estão incluídas. |
Recursos de idioma avançados
Essa categoria inclui recursos específicos do SQL legado que vão além do conjunto básico. Ao contrário dos recursos básicos ou agrupamentos de funções, cada recurso nessa categoria é rastreado individualmente. É necessário usar explicitamente cada recurso durante o período de avaliação para que ele continue disponível.
Agrupamentos de funções
As funções integradas são organizadas em categorias relacionadas. Usar qualquer função em um agrupamento durante o período de avaliação disponibiliza todas as funções desse agrupamento.
| Agrupamento de funções | Funções |
|---|---|
| Funções de janela avançadas |
|
| Funções de agregação para estatísticas |
|
| Funções de agregação que retornam campos repetidos |
|
| Funções de agregação com operações de bits |
|
| Funções de agregação com concatenação |
|
| Funções de agregação com classificação |
|
| Funções de janela básicas |
|
| Funções bit a bit |
|
| Expressões condicionais |
|
| Funções de conversão |
|
| Funções de hora atuais |
|
| Funções do usuário atual |
|
| Funções de data e hora |
|
| Função RAND |
|
| Funções que retornam campos repetidos |
|
| Funções de hash |
|
| Funções IP |
|
| Funções JSON |
|
| Funções matemáticas |
|
| Funções hiperbólicas matemáticas |
|
| Parte das funções TIMESTAMP |
|
| Funções de expressão regular |
|
| Funções de string |
|
| Funções de URL |
|
| Funções de carimbo de data/hora do UNIX |
|
Exemplos de disponibilidade de recursos
Os exemplos a seguir demonstram como a disponibilidade de recursos funciona.
Exemplo: como acessar recursos básicos de linguagem
Um projeto executa uma consulta SQL legado durante o período de avaliação. Considere que a tabela T contém uma coluna X do tipo INTEGER.
#legacySQL
SELECT X FROM T
Esse uso garante que todos os projetos na organização mantenham a capacidade de executar consultas que usam qualquer recurso do conjunto de recursos básicos de linguagem. Por exemplo, a consulta a seguir continua funcionando:
#legacySQL
SELECT X FROM T WHERE X > 10
Exemplo: usar agrupamentos de funções
Um projeto usa uma função de um agrupamento específico. Considere que a tabela T
contém uma coluna X do tipo FLOAT.
#legacySQL
SELECT SIN(X) FROM T
O uso da função SIN() disponibiliza todo o agrupamento de funções matemáticas. Consequentemente, todos os projetos na organização podem usar qualquer outra
função desse agrupamento, como COS().
#legacySQL
SELECT COS(X) FROM T
Por outro lado, a consulta a seguir falha após o período de avaliação se nenhum projeto na organização usar uma função das funções de agregação para agrupamento de estatísticas.
#legacySQL
SELECT STDDEV(X) FROM T
Exemplo: retenção de recursos em diferentes tabelas
Suponha que a tabela X tenha uma coluna A (INTEGER) e a tabela Y tenha a coluna B (FLOAT). Um projeto executa a seguinte consulta durante o período de avaliação:
#legacySQL
SELECT SIN(A) FROM X
A organização pode executar a seguinte consulta após o fim do período de avaliação.
A consulta funciona porque o recurso de funções matemáticas foi mantido pela primeira consulta. A retenção é independente da tabela específica, do nome da coluna ou do tipo de dados usado, já que INTEGER e FLOAT fazem parte da capacidade básica da linguagem.
#legacySQL
SELECT COS(B) FROM Y
Exemplo: consulta complexa
Considere que a tabela T contenha uma coluna X do tipo STRING. Um projeto executa a seguinte consulta durante o período de avaliação:
#legacySQL
SELECT value, AVG(FLOAT(value)) OVER (ORDER BY value) AS avg
FROM (
SELECT LENGTH(SPLIT(X, ',')) AS value
FROM T
)
Essa consulta usa recursos das funcionalidades básicas de linguagem e três agrupamentos de funções: funções de janela básicas, funções de string e funções que retornam valores repetidos. Todos os projetos na organização mantêm esses recursos. Portanto, uma nova consulta que usa uma combinação diferente de funções dos mesmos conjuntos de recursos retidos é bem-sucedida.
#legacySQL
SELECT value, COUNT(STRING(value)) OVER (ORDER BY value) as count
FROM (
SELECT CONCAT(SPLIT(X, ','), '123') AS value
FROM T
)
Perguntas frequentes
Uma nova organização pode usar o SQL legado?
Após o período de avaliação, o SQL legado não estará disponível para novas organizações ou projetos. Em casos especiais, é possível pedir uma isenção. Se não for possível acessar o Google Forms, envie um e-mail para bq-legacysql-support@google.com com seu ID organizacional, níveis de uso atuais, data de uso recente, desafios de migração e um cronograma estimado para a transição para o GoogleSQL.
As consultas SQL legadas vão parar de funcionar?
As consultas atuais vão continuar funcionando enquanto todos os recursos do SQL legado usados por elas forem usados por pelo menos um projeto na sua organização durante o período de avaliação. Uma consulta pode falhar se depender de um recurso que não foi usado durante esse período. Por isso, recomendamos que você execute todas as consultas críticas.
Uma organização que usa o SQL legado pode criar novos projetos que também o utilizem?
Sim. Todos os recursos acessados por qualquer projeto na sua organização durante o período de avaliação continuam disponíveis para todos os projetos, antigos e novos, na sua organização.
Existe uma ferramenta para verificar quais recursos do SQL legado minha organização usa?
Não há uma ferramenta para auditar o uso de recursos específicos. Para acompanhar o uso do SQL legado, consulte as visualizações INFORMATION_SCHEMA.JOBS, conforme descrito em Contagem de jobs consulta SQL legado por projeto.
Também é possível revisar os registros de consultas no Cloud Logging para verificar o uso de sintaxes específicas.
Preciso migrar para o GoogleSQL?
A migração não é obrigatória, mas é recomendada. O GoogleSQL é o dialeto moderno, completo e recomendado.
E se uma consulta SQL legada raramente usada não for executada durante o período de avaliação?
Para garantir que uma consulta continue funcionando, execute-a uma vez durante o período de avaliação. Se não for possível executar o teste nessa data, solicite uma exceção. Se não for possível acessar o Google Forms, envie um e-mail para bq-legacysql-support@google.com com seu ID organizacional, níveis de uso atuais, data de uso recente, desafios de migração e um cronograma estimado para a transição para o GoogleSQL.
A seguir
- Para migrar suas consultas do SQL legado para o GoogleSQL, consulte o guia de migração.