Disponibilità delle funzionalità SQL precedenti
Questo documento descrive le prossime limitazioni alla disponibilità di BigQuery SQL precedente, che si basano sull'utilizzo durante un periodo di valutazione ed entrano in vigore dopo il 1° giugno 2026. Queste modifiche fanno parte della transizione di BigQuery dall'SQL precedente a GoogleSQL, il dialetto consigliato e conforme allo standard ANSI per BigQuery.
La migrazione a GoogleSQL offre i seguenti vantaggi rispetto a SQL precedente:
- Può essere più conveniente utilizzare l'ambiente di esecuzione avanzato di BigQuery per prestazioni migliori.
- Consente di utilizzare funzionalità non supportate da SQL precedente, come istruzioni DML e DDL, Common Table Expression (CTE), predicati di join e subquery complessi, viste materializzate, indici di ricerca e funzioni di AI generativa.
Come funziona la disponibilità delle funzionalità
BigQuery monitora l'utilizzo delle funzionalità SQL precedente durante un periodo di valutazione. Per le organizzazioni e i progetti che non utilizzano SQL precedente tra il 1° novembre 2025 e il 1° giugno 2026, SQL precedente non sarà più disponibile dopo la fine del periodo di valutazione. Per le organizzazioni e i progetti che utilizzano SQL precedente durante il periodo di valutazione, puoi continuare a eseguire query utilizzando l'insieme specifico di funzionalità SQL precedenti che utilizzi.
L'utilizzo delle funzionalità viene aggregato a livello di organizzazione. Se un progetto all'interno di un'organizzazione utilizza una funzionalità, questa rimane disponibile per tutti gli altri progetti dell'organizzazione. Per i progetti non associati a un'organizzazione, la disponibilità delle funzionalità viene gestita a livello di progetto.
Set di funzionalità SQL precedenti
Le funzionalità di SQL precedente sono organizzate in tre gruppi di funzionalità: funzionalità di base del linguaggio, funzionalità estese del linguaggio e raggruppamenti di funzioni. Le sezioni seguenti descrivono in dettaglio le funzionalità di ogni insieme.
Funzionalità di base della lingua
Queste funzionalità sono il fulcro di SQL precedente. L'intero insieme di funzionalità è disponibile per qualsiasi organizzazione o progetto autonomo che esegue almeno una query SQL precedente durante il periodo di valutazione.
| Categoria | Funzionalità |
|---|---|
| Sintassi delle query |
|
| Logica delle espressioni | Valori letterali:
Operatori logici:
Funzioni di confronto:
Istruzioni di controllo del flusso:
|
| Operazioni di base | Operatori aritmetici:
Funzioni di aggregazione di base:
|
| Elementi di dati | Tipi di dati di base:
Tipi di dati strutturati e parzialmente supportati:
Funzioni di trasmissione:
Forzature:sono incluse tutte le forzature automatiche del tipo di dati. |
Funzionalità linguistiche estese
Questa categoria include funzionalità SQL precedente specifiche che vanno oltre il set di base. A differenza delle funzionalità di base o dei raggruppamenti di funzioni, ogni funzionalità di questa categoria viene monitorata singolarmente. Devi utilizzare esplicitamente ogni funzionalità durante il periodo di valutazione per mantenerla disponibile.
Raggruppamenti di funzioni
Le funzioni integrate sono organizzate in categorie correlate. L'utilizzo di una singola funzione all'interno di un raggruppamento durante il periodo di valutazione rende disponibili tutte le funzioni dell'intero raggruppamento.
| Raggruppamento di funzioni | Funzioni |
|---|---|
| Funzioni finestra avanzate |
|
| Funzioni di aggregazione per le statistiche |
|
| Funzioni di aggregazione che restituiscono un campo ripetuto |
|
| Funzioni di aggregazione con operazioni sui bit |
|
| Funzioni di aggregazione con concatenazione |
|
| Funzioni di aggregazione con ordinamento |
|
| Funzioni finestra di base |
|
| Funzioni bitwise |
|
| Espressioni condizionali |
|
| Funzioni di conversione |
|
| Funzioni di ora attuale |
|
| Funzioni dell'utente corrente |
|
| Funzioni di data e ora |
|
| Funzione RAND |
|
| Funzioni che restituiscono un campo ripetuto |
|
| Funzioni di hashing |
|
| Funzioni IP |
|
| Funzioni JSON |
|
| Funzioni matematiche |
|
| Funzioni iperboliche matematiche |
|
| Parte delle funzioni TIMESTAMP |
|
| Funzioni di espressioni regolari |
|
| Funzioni di stringa |
|
| Funzioni URL |
|
| Funzioni di timestamp UNIX |
|
Esempi di disponibilità delle funzionalità
I seguenti esempi mostrano come funziona la disponibilità delle funzionalità.
Esempio: accesso alle funzionalità di base della lingua
Un progetto esegue una query SQL precedente durante il periodo di valutazione. Supponiamo
che la tabella T contenga una colonna X di tipo INTEGER.
#legacySQL
SELECT X FROM T
Questo utilizzo garantisce che tutti i progetti all'interno dell'organizzazione mantengano la possibilità di eseguire query che utilizzano qualsiasi funzionalità del set di funzionalità di base del linguaggio. Ad esempio, la seguente query continua a funzionare:
#legacySQL
SELECT X FROM T WHERE X > 10
Esempio: utilizzo dei raggruppamenti di funzioni
Un progetto utilizza una funzione di un raggruppamento di funzioni specifico. Supponiamo che la tabella T
contenga una colonna X di tipo FLOAT.
#legacySQL
SELECT SIN(X) FROM T
L'utilizzo della funzione SIN() rende disponibile l'intero raggruppamento delle funzioni matematiche. Di conseguenza, tutti i progetti all'interno dell'organizzazione possono utilizzare qualsiasi altra
funzione di questo raggruppamento, ad esempio COS().
#legacySQL
SELECT COS(X) FROM T
Al contrario, la seguente query non riesce dopo il periodo di valutazione se nessun progetto nell'organizzazione utilizza una funzione delle funzioni di aggregazione per il raggruppamento delle statistiche.
#legacySQL
SELECT STDDEV(X) FROM T
Esempio: conservazione delle funzionalità in tabelle diverse
Supponiamo che la tabella X abbia una colonna A (INTEGER) e la tabella Y abbia una colonna B
(FLOAT). Un progetto esegue la seguente query durante il periodo di valutazione:
#legacySQL
SELECT SIN(A) FROM X
L'organizzazione può eseguire la seguente query al termine del periodo di valutazione.
La query funziona perché la funzionalità delle funzioni matematiche è stata mantenuta dalla
prima query. La conservazione è indipendente dalla tabella specifica, dal nome della colonna o
dal tipo di dati utilizzato, poiché sia INTEGER che FLOAT fanno parte della funzionalità
di base del linguaggio.
#legacySQL
SELECT COS(B) FROM Y
Esempio: query complessa
Supponiamo che la tabella T contenga una colonna X di tipo STRING. Un progetto esegue la
seguente query durante il periodo di valutazione:
#legacySQL
SELECT value, AVG(FLOAT(value)) OVER (ORDER BY value) AS avg
FROM (
SELECT LENGTH(SPLIT(X, ',')) AS value
FROM T
)
Questa query utilizza funzionalità delle funzionalità di base del linguaggio e tre raggruppamenti di funzioni: funzioni finestra di base, funzioni stringa e funzioni che restituiscono valori ripetuti. Tutti i progetti all'interno dell'organizzazione mantengono queste funzionalità. Pertanto, una nuova query che utilizza una combinazione diversa di funzioni rispetto a quelli stessi set di funzionalità conservati ha esito positivo.
#legacySQL
SELECT value, COUNT(STRING(value)) OVER (ORDER BY value) as count
FROM (
SELECT CONCAT(SPLIT(X, ','), '123') AS value
FROM T
)
Domande frequenti
Una nuova organizzazione può utilizzare SQL precedente?
Al termine del periodo di valutazione, SQL precedente non è disponibile per le nuove organizzazioni o i nuovi progetti. In casi speciali, puoi richiedere un'esenzione. Se non riesci ad accedere a Moduli Google, invia un'email all'indirizzo bq-legacysql-support@google.com con il tuo ID organizzazione, i livelli di utilizzo attuali, la data di utilizzo recente, le sfide di migrazione e una cronologia stimata per la transizione a GoogleSQL.
Le query SQL precedente esistenti smettono di funzionare?
Le query esistenti continueranno a funzionare finché tutte le funzionalità SQL precedente che utilizzano sono state utilizzate da almeno un progetto della tua organizzazione durante il periodo di valutazione. Una query potrebbe non riuscire se si basa su una funzionalità che non è stata utilizzata durante questo periodo, pertanto ti consigliamo di assicurarti che vengano eseguite tutte le query critiche.
Un'organizzazione esistente che utilizza SQL precedente può creare nuovi progetti che lo utilizzano?
Sì. Tutte le funzionalità a cui ha avuto accesso qualsiasi progetto della tua organizzazione durante il periodo di valutazione rimangono disponibili per tutti i progetti, vecchi e nuovi, della tua organizzazione.
Esiste uno strumento per verificare quali funzionalità SQL precedente utilizza la mia organizzazione?
Non esiste uno strumento per controllare l'utilizzo di funzionalità specifiche. Puoi monitorare l'utilizzo di SQL precedente eseguendo query sulle viste INFORMATION_SCHEMA.JOBS come descritto in Conteggio dei job di query SQL precedenti per progetto.
Puoi anche esaminare i log delle query in Cloud Logging per verificare l'utilizzo di una sintassi specifica.
Devo eseguire la migrazione a GoogleSQL?
La migrazione non è obbligatoria, ma è consigliata. GoogleSQL è il dialetto moderno, completo e consigliato.
Cosa succede se una query SQL precedente utilizzata raramente non viene eseguita durante il periodo di valutazione?
Per assicurarti che una query continui a funzionare, eseguila una volta durante il periodo di valutazione. Se non riesci a eseguirlo in quel momento, puoi richiedere un'esenzione. Se non riesci ad accedere a Moduli Google, invia un'email all'indirizzo bq-legacysql-support@google.com con l'ID organizzazione, i livelli di utilizzo attuali, la data di utilizzo recente, le difficoltà di migrazione e una cronologia stimata per la transizione a GoogleSQL.
Passaggi successivi
- Per eseguire la migrazione delle query dall'SQL precedente a GoogleSQL, consulta la guida alla migrazione.