- SQL ist seit 50 Jahren die grundlegende Sprache für die Verarbeitung strukturierter Daten, ist aber schwer zu erlernen, umständlich zu verwenden und schwer zu erweitern
- Probleme des bestehenden SQL: erzwungene Syntaxreihenfolge, redundante Syntax, notwendige Verwendung von Subqueries, Datenfluss „von innen nach außen“, mangelnde Erweiterbarkeit usw.
- GoogleSQL verfolgt einen Ansatz zur Erweiterung von SQL, um diese Probleme zu lösen
- Es soll eine Pipe-Struktur für die Datenfluss-Syntax in SQL eingeführt werden, um die Probleme des bestehenden SQL zu beheben
- SQL lässt sich dadurch flexibler erlernen und verwenden, während das bestehende Ökosystem erhalten bleibt und vollständige Kompatibilität zu bestehendem SQL gewahrt wird
- Bestehende SQL-Operatoren werden wiederverwendet und können per Pipe in beliebiger Reihenfolge zusammengesetzt werden
- Jeder Pipe-Operator kann nur die Eingabetabelle sehen, wodurch der Geltungsbereich klar definiert ist
- Die deklarative Semantik bleibt erhalten
- Eine Eins-zu-eins-Entsprechung zur relationalen Algebra wird möglich
- Die Erweiterbarkeit durch Table-Valued Functions wird verbessert
- So lassen sich beispielsweise mehrstufige Aggregationen ohne Subqueries fortlaufend ausdrücken
- SQL mit Pipe-Syntax ist leichter zu lernen und zu verwenden; zudem steigt die Flexibilität deutlich, da verschiedene Operatoren in beliebiger Reihenfolge angewendet werden können
- Pipe-Operatoren arbeiten sequenziell, wodurch Nutzer Daten einfacher filtern, aggregieren und sortieren können
- Nutzungserfahrungen in GoogleSQL
- Stetige Akzeptanz durch Nutzer und positives Feedback
- Auch komplexe Queries lassen sich linear ausdrücken
- Erleichtert Bearbeitung und Debugging
- Verbesserte Unterstützung durch IDE-Tools
- Vorteile für SQL-Codegeneratoren und Konverter
- Potenzielle Vorteile für den Einsatz von AI
- Implementierung und weitere Pläne
- Die Pipe-Syntax wurde in GoogleSQL als gemeinsame Komponente implementiert
- Bestehende Query-Engines können die Pipe-Syntax leicht aktivieren
- Externe Unterstützung in BigQuery und Spanner wird geprüft
- Es wäre erwägenswert, sie künftig in den SQL-Standard aufzunehmen
Meinung von GN⁺
- Vorteile der Pipe-Syntax: Sie kann als starkes Werkzeug zur Lösung der Komplexität von SQL dienen und insbesondere die Nutzbarkeit von SQL deutlich verbessern, weil sich Datenflüsse intuitiv ausdrücken lassen.
- Kompatibilität mit bestehendem SQL: Der Ansatz ersetzt SQL nicht, sondern verbessert es, wodurch die Lernkurve sinkt und die Kompatibilität mit bestehendem Code erhalten bleiben kann.
- Punkte für die Einführung: Bei der Einführung der Pipe-Syntax sollten die Auswirkungen auf die Performance und der Stand der Tool-Unterstützung berücksichtigt werden; insbesondere bei großen Queries können die Vorteile der Pipe-Syntax maximal genutzt werden.
- Vergleich mit ähnlichen Projekten: Auch in DataFrame-APIs wie Pandas wird eine Pipe-Struktur verwendet, der Unterschied zu SQL liegt jedoch in der Verbindung mit der deklarativen Semantik von SQL. Diese Funktionalität lässt sich nutzen, ohne Erweiterbarkeit und Performance von SQL-Systemen aufzugeben.
11 Kommentare
Ein Pipe mit Caret – das klingt nach einer Kombination, bei der einem irgendwie die rechte Hand wehtun könnte 🤣
Im Moment braucht SQL schon irgendeine Verbesserung.
Das Problem ist nur, dass man seit gut 30–40 Jahren keine Lösung dafür gefunden hat..
Bei zusätzlicher SQL-Syntax scheint Google das Ökosystem vorantreiben zu müssen, aber wird die zuständige Geschäftseinheit das wirklich dauerhaft weiterführen?
Das ist wohl
dplyr, hahahaWarum habe ich immer nur das Gefühl, dass es scheitern wird, wenn Google es macht..
Gemini antwortet außerdem wie ein nerviges Kind, deshalb will ich es auch nicht benutzen
Das wirkt wie ein ähnlicher Ansatz wie der, den ORMs verfolgen.
Schon anhand des folgenden Beispiels aus dem Paper sieht man deutlich, dass sich Google SQL leichter lesen lässt.
Standard-SQL
Google SQL
Erinnert mich an LINQ in C#. Immer wenn ich SQL benutze, dachte ich, es wäre schön, wenn die Reihenfolge bei
SELECTimmer so geändert wäre, dass es erst nachFROMundWHEREkommt....Auch wenn es anfangs ungewohnt und deshalb etwas befremdlich wirkt, fühlt sich der Ablauf beim langsamen Lesen viel natürlicher an.
Ich finde, die SQL-Seite ist leichter zu lesen.
Ich finde SQL deutlich leichter zu lesen. Haha, für Leute, die mit SQL angefangen haben, gilt das wahrscheinlich meistens auch ...
Für mich ist Vertrautes auch leichter zu lesen … haha
Hacker-News-Kommentare