Verfügbarkeit von Legacy-SQL-Funktionen
In diesem Dokument werden die bevorstehenden Einschränkungen für die Verfügbarkeit von BigQuery-Legacy-SQL beschrieben, die auf der Nutzung während eines Testzeitraums basieren und nach dem 1. Juni 2026 in Kraft treten. Diese Änderungen sind Teil der Umstellung von BigQuery von Legacy-SQL auf GoogleSQL, den empfohlenen, ANSI-kompatiblen Dialekt für BigQuery.
Die Migration zu GoogleSQL bietet gegenüber Legacy-SQL folgende Vorteile:
- Die erweiterte BigQuery-Laufzeit kann kostengünstiger sein und eine bessere Leistung bieten.
- Damit können Sie Funktionen verwenden, die von Legacy-SQL nicht unterstützt werden, z. B. DML- und DDL-Anweisungen, Common Table Expressions (CTEs), komplexe Unterabfragen und Join-Prädikate, materialisierte Ansichten, Suchindexe und Funktionen für generative KI.
Verfügbarkeit von Funktionen
BigQuery überwacht die Verwendung von Legacy-SQL-Funktionen während eines Testzeitraums. Für Organisationen und Projekte, in denen zwischen dem 1. November 2025 und dem 1. Juni 2026 kein altes SQL verwendet wird, ist altes SQL nach Ablauf des Testzeitraums nicht mehr verfügbar. Organisationen und Projekte, die während des Testzeitraums Legacy-SQL verwenden, können weiterhin Abfragen mit den spezifischen Legacy-SQL-Funktionen ausführen, die sie nutzen.
Die Funktionsnutzung wird auf Organisationsebene zusammengefasst. Wenn in einem Projekt innerhalb einer Organisation eine Funktion verwendet wird, bleibt diese Funktion für alle anderen Projekte in der Organisation verfügbar. Bei Projekten, die keiner Organisation zugeordnet sind, wird die Verfügbarkeit von Funktionen auf Projektebene verwaltet.
Legacy-SQL-Funktionsgruppen
Legacy-SQL-Funktionen sind in drei Funktionsgruppen unterteilt: grundlegende Sprachfunktionen, erweiterte Sprachfunktionen und Funktionsgruppierungen. In den folgenden Abschnitten werden die Funktionen der einzelnen Sets beschrieben.
Grundlegende Sprachfunktionen
Diese Funktionen sind das Herzstück von Legacy-SQL. Diese Funktionen sind für jede Organisation oder jedes eigenständige Projekt verfügbar, in dem im Testzeitraum mindestens eine Legacy-SQL-Abfrage ausgeführt wird.
| Kategorie | Features |
|---|---|
| Abfragesyntax |
|
| Ausdruckslogik | Literale
Logische Operatoren
Vergleichsfunktionen
Anweisungen zum Kontrollfluss
|
| Grundlegende Vorgänge | Arithmetische Operatoren
Einfache Aggregatfunktionen
|
| Datenelemente | Einfache Datentypen
Strukturierte und teilweise unterstützte Datentypen
Umwandlungsfunktionen
Koersionen:Alle automatischen Datentypkoersionen sind enthalten. |
Erweiterte Sprachfunktionen
Diese Kategorie umfasst spezifische Legacy-SQL-Funktionen, die über den grundlegenden Satz hinausgehen. Im Gegensatz zu grundlegenden Funktionen oder Funktionsgruppen wird jede Funktion in dieser Kategorie einzeln erfasst. Sie müssen jede Funktion während des Testzeitraums explizit verwenden, damit sie weiterhin verfügbar ist.
Funktionsgruppierungen
Integrierte Funktionen sind in zugehörige Kategorien unterteilt. Wenn Sie während des Testzeitraums eine beliebige Funktion innerhalb einer Gruppierung verwenden, sind alle Funktionen in dieser gesamten Gruppierung verfügbar.
| Funktionsgruppierung | Funktionen |
|---|---|
| Erweiterte Fensterfunktionen |
|
| Aggregatfunktionen für Statistiken |
|
| Aggregatfunktionen, die ein wiederholtes Feld zurückgeben |
|
| Aggregatfunktionen mit Bit-Operationen |
|
| Aggregatfunktionen mit Verkettung |
|
| Aggregatfunktionen mit Sortierung |
|
| Einfache Fensterfunktionen |
|
| Bitweise Funktionen |
|
| Bedingte Ausdrücke |
|
| Umrechnungsfunktionen |
|
| Funktionen für die aktuelle Zeit |
|
| Funktionen für den aktuellen Nutzer |
|
| Funktionen für Datum und Uhrzeit |
|
| Funktion RAND |
|
| Funktionen, die ein wiederkehrendes Feld zurückgeben |
|
| Hash-Funktionen |
|
| IP-Funktionen |
|
| JSON-Funktionen |
|
| Mathematische Funktionen |
|
| Mathematische hyperbolische Funktionen |
|
| Teil von TIMESTAMP-Funktionen |
|
| Funktionen für reguläre Ausdrücke |
|
| Stringfunktionen |
|
| URL-Funktionen |
|
| UNIX-Zeitstempelfunktionen |
|
Beispiele für die Verfügbarkeit von Funktionen
Die folgenden Beispiele zeigen, wie die Verfügbarkeit von Funktionen funktioniert.
Beispiel: Auf grundlegende Sprachfunktionen zugreifen
In einem Projekt wird während des Testzeitraums eine Legacy-SQL-Abfrage ausgeführt. Angenommen, die Tabelle T enthält eine Spalte X vom Typ INTEGER.
#legacySQL
SELECT X FROM T
Durch diese Nutzung wird sichergestellt, dass in allen Projekten innerhalb der Organisation weiterhin Abfragen ausgeführt werden können, die eine beliebige Funktion aus dem Satz der grundlegenden Sprachfunktionen verwenden. Die folgende Abfrage funktioniert beispielsweise weiterhin:
#legacySQL
SELECT X FROM T WHERE X > 10
Beispiel: Funktionsgruppierungen verwenden
Ein Projekt verwendet eine Funktion aus einer bestimmten Funktionsgruppe. Angenommen, die Tabelle T enthält eine Spalte X vom Typ FLOAT.
#legacySQL
SELECT SIN(X) FROM T
Durch die Verwendung der Funktion SIN() ist die gesamte Gruppierung mathematischer Funktionen verfügbar. Folglich können alle Projekte in der Organisation jede andere Funktion aus dieser Gruppierung verwenden, z. B. COS().
#legacySQL
SELECT COS(X) FROM T
Die folgende Abfrage schlägt nach dem Testzeitraum fehl, wenn in keinem Projekt in der Organisation eine Funktion aus den Aggregatfunktionen für die statistische Gruppierung verwendet wird.
#legacySQL
SELECT STDDEV(X) FROM T
Beispiel: Beibehalten von Funktionen in verschiedenen Tabellen
Angenommen, die Tabelle X hat die Spalte A (INTEGER) und die Tabelle Y hat die Spalte B (FLOAT). In einem Projekt wird während des Bewertungszeitraums die folgende Abfrage ausgeführt:
#legacySQL
SELECT SIN(A) FROM X
Die Organisation kann die folgende Abfrage nach Ablauf des Testzeitraums ausführen.
Die Abfrage funktioniert, weil die Funktion für mathematische Funktionen von der ersten Abfrage beibehalten wurde. Die Aufbewahrungsdauer ist unabhängig von der verwendeten Tabelle, dem Spaltennamen oder dem Datentyp, da sowohl INTEGER als auch FLOAT Teil der grundlegenden Sprachfunktion sind.
#legacySQL
SELECT COS(B) FROM Y
Beispiel: Komplexe Abfrage
Angenommen, die Tabelle T enthält eine Spalte X vom Typ STRING. In einem Projekt wird während des Bewertungszeitraums die folgende Abfrage ausgeführt:
#legacySQL
SELECT value, AVG(FLOAT(value)) OVER (ORDER BY value) AS avg
FROM (
SELECT LENGTH(SPLIT(X, ',')) AS value
FROM T
)
In dieser Abfrage werden Funktionen aus den grundlegenden Sprachfunktionen und drei Funktionsgruppen verwendet: grundlegende Fensterfunktionen, Stringfunktionen und Funktionen, die wiederholte Werte zurückgeben. Alle Projekte in der Organisation behalten diese Funktionen. Daher ist eine neue Abfrage, die eine andere Kombination von Funktionen aus denselben beibehaltenen Funktionsgruppen verwendet, erfolgreich.
#legacySQL
SELECT value, COUNT(STRING(value)) OVER (ORDER BY value) as count
FROM (
SELECT CONCAT(SPLIT(X, ','), '123') AS value
FROM T
)
Häufig gestellte Fragen
Kann eine neue Organisation Legacy-SQL verwenden?
Nach dem Testzeitraum ist Legacy-SQL für neue Organisationen oder Projekte nicht mehr verfügbar. In besonderen Fällen können Sie eine Ausnahme beantragen. Wenn Sie nicht auf Google Forms zugreifen können, senden Sie stattdessen eine E-Mail an bq-legacysql-support@google.com mit Ihrer Organisations-ID, Ihrem aktuellen Nutzungsniveau, dem Datum der letzten Nutzung, den Herausforderungen bei der Migration und einem geschätzten Zeitplan für die Umstellung auf GoogleSQL.
Funktionieren bestehende Legacy-SQL-Abfragen nicht mehr?
Vorhandene Abfragen funktionieren weiterhin, solange alle Legacy-SQL-Funktionen, die darin verwendet werden, während des Testzeitraums von mindestens einem Projekt in Ihrer Organisation verwendet wurden. Eine Abfrage kann fehlschlagen, wenn sie auf einer Funktion basiert, die in diesem Zeitraum nicht verwendet wurde. Wir empfehlen Ihnen daher, alle wichtigen Abfragen auszuführen.
Kann eine bestehende Organisation, die Legacy-SQL verwendet, neue Projekte erstellen, in denen auch Legacy-SQL verwendet wird?
Ja. Alle Funktionen, auf die während des Testzeitraums von einem Projekt in Ihrer Organisation zugegriffen wurde, bleiben für alle Projekte in Ihrer Organisation verfügbar, unabhängig davon, ob sie neu oder alt sind.
Gibt es ein Tool, mit dem ich prüfen kann, welche Legacy-SQL-Funktionen in meiner Organisation verwendet werden?
Es gibt kein Tool, mit dem die Nutzung bestimmter Funktionen geprüft werden kann. Sie können die Verwendung von Legacy-SQL nachverfolgen, indem Sie INFORMATION_SCHEMA.JOBS-Ansichten abfragen, wie unter Anzahl der Legacy-SQL-Abfragejobs pro Projekt beschrieben.
Sie können Ihre Abfragelogs auch in Cloud Logging aufrufen, um nach einer bestimmten Syntax zu suchen.
Ist eine Migration zu GoogleSQL erforderlich?
Eine Migration ist nicht erforderlich, wird aber empfohlen. GoogleSQL ist der moderne, funktionsreiche und empfohlene Dialekt.
Was passiert, wenn eine selten verwendete Legacy-SQL-Abfrage während des Testzeitraums nicht ausgeführt wird?
Damit eine Abfrage weiterhin funktioniert, müssen Sie sie einmal während des Evaluierungszeitraums ausführen. Wenn Sie die Überprüfung dann nicht durchführen können, können Sie eine Ausnahme beantragen. Wenn Sie nicht auf Google Forms zugreifen können, senden Sie stattdessen eine E-Mail an bq-legacysql-support@google.com mit Ihrer Organisations-ID, Ihrem aktuellen Nutzungsniveau, dem Datum der letzten Nutzung, Migrationsherausforderungen und einem geschätzten Zeitplan für die Umstellung auf GoogleSQL.
Nächste Schritte
- Informationen zum Migrieren von Legacy-SQL-Abfragen zu GoogleSQL finden Sie im Migrationsleitfaden.