Disponibilité des fonctionnalités de l'ancien SQL
Ce document décrit les restrictions à venir concernant la disponibilité de l'ancien SQL BigQuery, qui sont basées sur l'utilisation pendant une période d'évaluation et qui prendront effet après le 1er juin 2026. Ces modifications font partie de la transition de BigQuery de l'ancien SQL vers GoogleSQL, le dialecte recommandé et conforme à la norme ANSI pour BigQuery.
Migrer vers GoogleSQL offre les avantages suivants par rapport à l'ancien SQL :
- Il peut être plus économique d'utiliser le runtime avancé BigQuery pour de meilleures performances.
- Il vous permet d'utiliser des fonctionnalités non compatibles avec l'ancien SQL, telles que les instructions DML et DDL, les expressions de table communes (CTE), les sous-requêtes complexes et les prédicats de jointure, les vues matérialisées, les index de recherche et les fonctions d'IA générative.
Disponibilité des fonctionnalités
BigQuery surveille l'utilisation des fonctionnalités de l'ancien SQL pendant une période d'évaluation. Pour les organisations et les projets qui n'utilisent pas l'ancien SQL entre le 1er novembre 2025 et le 1er juin 2026, l'ancien SQL ne sera plus disponible une fois la période d'évaluation terminée. Pour les organisations et les projets qui utilisent l'ancien SQL pendant la période d'évaluation, vous pouvez continuer à exécuter des requêtes à l'aide de l'ensemble spécifique de fonctionnalités de l'ancien SQL que vous utilisez.
L'utilisation des fonctionnalités est agrégée au niveau de l'organisation. Si un projet d'une organisation utilise une fonctionnalité, celle-ci reste disponible pour tous les autres projets de l'organisation. Pour les projets non associés à une organisation, la disponibilité des fonctionnalités est gérée au niveau du projet.
Ensembles de fonctionnalités de l'ancien SQL
Les fonctionnalités de l'ancien SQL sont organisées en trois ensembles de fonctionnalités : les fonctionnalités de langage de base, les fonctionnalités de langage étendues et les regroupements de fonctions. Les sections suivantes décrivent en détail les fonctionnalités de chaque ensemble.
Fonctionnalités linguistiques de base
Ces fonctionnalités sont au cœur de l'ancien SQL. L'ensemble de ces fonctionnalités est disponible pour toute organisation ou tout projet autonome qui exécute au moins une ancienne requête SQL pendant la période d'évaluation.
| Catégorie | Fonctionnalités |
|---|---|
| Syntaxe des requêtes |
|
| Logique des expressions | Littéraux
Opérateurs logiques :
Fonctions de comparaison :
Instructions de flux de contrôle :
|
| Opérations de base | Opérateurs arithmétiques :
Fonctions d'agrégation de base :
|
| Éléments de données | Types de données de base :
Types de données structurées et partiellement acceptés :
Fonctions de cast
Coercions : toutes les coercions automatiques de types de données sont incluses. |
Fonctionnalités linguistiques étendues
Cette catégorie inclut des fonctionnalités spécifiques de l'ancien SQL qui vont au-delà de l'ensemble de base. Contrairement aux capacités de base ou aux regroupements de fonctions, chaque fonctionnalité de cette catégorie est suivie individuellement. Vous devez utiliser explicitement chaque fonctionnalité pendant la période d'évaluation pour qu'elle reste disponible.
Regroupements de fonctions
Les fonctions intégrées sont organisées en catégories associées. Si vous utilisez une seule fonction dans un regroupement pendant la période d'évaluation, toutes les fonctions de ce regroupement seront disponibles.
| Regroupement des fonctions | Fonctions |
|---|---|
| Fonctions de fenêtrage avancées |
|
| Fonctions d'agrégation pour les statistiques |
|
| Fonctions d'agrégation renvoyant un champ répété |
|
| Fonctions d'agrégation avec opérations sur les bits |
|
| Fonctions d'agrégation avec concaténation |
|
| Fonctions d'agrégation avec tri |
|
| Fonctions de fenêtrage de base |
|
| Fonctions bit à bit |
|
| Expressions conditionnelles |
|
| Fonctions de conversion |
|
| Fonctions d'heure actuelle |
|
| Fonctions de l'utilisateur actuel |
|
| Fonctions de date et heure |
|
| Fonction RAND |
|
| Fonctions renvoyant un champ répété |
|
| Fonctions de hachage |
|
| Fonctions d'adresse IP |
|
| Fonctions JSON |
|
| Fonctions mathématiques |
|
| Fonctions hyperboliques mathématiques |
|
| Composantes des fonctions TIMESTAMP |
|
| Fonctions d'expression régulière |
|
| Fonctions de chaîne |
|
| Fonctions d'URL |
|
| Fonctions de code temporel UNIX |
|
Exemples de disponibilité des fonctionnalités
Les exemples suivants montrent comment fonctionne la disponibilité des fonctionnalités.
Exemple : Accéder aux fonctionnalités linguistiques de base
Un projet exécute une requête en ancien SQL pendant la période d'évaluation. Supposons que la table T contienne une colonne X de type INTEGER.
#legacySQL
SELECT X FROM T
Cette utilisation garantit que tous les projets de l'organisation conservent la possibilité d'exécuter des requêtes qui utilisent n'importe quelle fonctionnalité de l'ensemble des fonctionnalités linguistiques de base. Par exemple, la requête suivante continue de fonctionner :
#legacySQL
SELECT X FROM T WHERE X > 10
Exemple : Utiliser des groupes de fonctions
Un projet utilise une fonction d'un groupe de fonctions spécifique. Supposons que la table T contienne une colonne X de type FLOAT.
#legacySQL
SELECT SIN(X) FROM T
L'utilisation de la fonction SIN() rend l'ensemble du regroupement de fonctions mathématiques disponible. Par conséquent, tous les projets de l'organisation peuvent utiliser n'importe quelle autre fonction de ce regroupement, comme COS().
#legacySQL
SELECT COS(X) FROM T
À l'inverse, la requête suivante échoue après la période d'évaluation si aucun projet de l'organisation n'utilise de fonction des fonctions d'agrégation pour le regroupement des statistiques.
#legacySQL
SELECT STDDEV(X) FROM T
Exemple : Rétention des fonctionnalités dans différentes tables
Supposons que la table X comporte une colonne A (INTEGER) et que la table Y comporte une colonne B (FLOAT). Un projet exécute la requête suivante pendant la période d'évaluation :
#legacySQL
SELECT SIN(A) FROM X
L'organisation peut exécuter la requête suivante une fois la période d'évaluation terminée.
La requête fonctionne, car la fonctionnalité des fonctions mathématiques a été conservée par la première requête. La conservation est indépendante de la table, du nom de colonne ou du type de données spécifiques utilisés, car INTEGER et FLOAT font partie de la fonctionnalité de langage de base.
#legacySQL
SELECT COS(B) FROM Y
Exemple : Requête complexe
Supposons que la table T contienne une colonne X de type STRING. Un projet exécute la requête suivante pendant la période d'évaluation :
#legacySQL
SELECT value, AVG(FLOAT(value)) OVER (ORDER BY value) AS avg
FROM (
SELECT LENGTH(SPLIT(X, ',')) AS value
FROM T
)
Cette requête utilise des fonctionnalités des capacités linguistiques de base et trois groupes de fonctions : les fonctions de fenêtrage de base, les fonctions de chaîne et les fonctions renvoyant des valeurs répétées. Tous les projets de l'organisation conservent ces fonctionnalités. Par conséquent, une nouvelle requête qui utilise une combinaison de fonctions différente de celles des mêmes ensembles de caractéristiques conservés réussit.
#legacySQL
SELECT value, COUNT(STRING(value)) OVER (ORDER BY value) as count
FROM (
SELECT CONCAT(SPLIT(X, ','), '123') AS value
FROM T
)
Questions fréquentes
Une nouvelle organisation peut-elle utiliser l'ancien SQL ?
À l'issue de la période d'évaluation, l'ancien SQL ne sera plus disponible pour les nouvelles organisations ni les nouveaux projets. Dans certains cas, vous pouvez demander une exemption. Si vous ne parvenez pas à accéder à Google Forms, envoyez plutôt un e-mail à l'adresse bq-legacysql-support@google.com en indiquant votre ID d'organisation, vos niveaux d'utilisation actuels, la date de votre dernière utilisation, les difficultés de migration et une estimation du calendrier de transition vers GoogleSQL.
Les requêtes en ancien SQL existantes cesseront-elles de fonctionner ?
Les requêtes existantes continueront de fonctionner tant que toutes les fonctionnalités de l'ancien SQL qu'elles utilisent ont été utilisées par au moins un projet de votre organisation au cours de la période d'évaluation. Il est possible qu'une requête échoue si elle repose sur une fonctionnalité qui n'a pas été utilisée pendant cette période. Nous vous recommandons donc de vous assurer que toutes les requêtes critiques sont exécutées.
Une organisation existante qui utilise l'ancien SQL peut-elle créer des projets qui l'utilisent également ?
Oui. Toutes les fonctionnalités auxquelles un projet de votre organisation a accédé pendant la période d'évaluation restent disponibles pour tous les projets, anciens et nouveaux, de votre organisation.
Existe-t-il un outil permettant de vérifier les fonctionnalités de l'ancien SQL utilisées par mon organisation ?
Il n'existe pas d'outil permettant d'auditer l'utilisation de fonctionnalités spécifiques. Vous pouvez suivre l'utilisation de l'ancien SQL en interrogeant les vues INFORMATION_SCHEMA.JOBS, comme décrit dans Nombre de tâches de requête en ancien SQL par projet.
Vous pouvez également consulter vos journaux de requêtes dans Cloud Logging pour vérifier l'utilisation d'une syntaxe spécifique.
Dois-je migrer vers GoogleSQL ?
La migration n'est pas obligatoire, mais elle est recommandée. GoogleSQL est le dialecte moderne, complet et recommandé.
Que se passe-t-il si une requête ancien SQL rarement utilisée ne s'exécute pas pendant la période d'évaluation ?
Pour vous assurer qu'une requête continue de fonctionner, exécutez-la une fois pendant la période d'évaluation. Si vous ne pouvez pas l'exécuter à ce moment-là, vous pouvez demander une exemption. Si vous ne parvenez pas à accéder à Google Forms, envoyez un e-mail à l'adresse bq-legacysql-support@google.com en indiquant votre ID d'organisation, vos niveaux d'utilisation actuels, la date de votre dernière utilisation, les difficultés de migration et une estimation du calendrier de transition vers GoogleSQL.
Étapes suivantes
- Pour migrer vos requêtes de l'ancien SQL vers GoogleSQL, consultez le guide de migration.