13 Punkte von GN⁺ 2025-04-25 | 2 Kommentare | Auf WhatsApp teilen
  • Instant SQL ist ein Tool, das beim Schreiben von SQL-Abfragen eine Echtzeit-Vorschau der Ergebnisse liefert und so das Erstellen und Debuggen von Queries beschleunigt
  • Komplexe CTEs oder Spaltenausdrücke lassen sich leicht zerlegen und analysieren, und KI-basierte Bearbeitungsvorschläge können sofort in der Vorschau angezeigt werden, wodurch das Schreiben und Anpassen von Queries effizienter wird
  • Verfügbar in MotherDuck und der DuckDB Local UI; ermöglicht auf Basis von DuckDB auch die Echtzeit-Erkundung verschiedenster externer Datenquellen
  • Möglich wird dies durch die Kombination fortschrittlicher Techniken wie DuckDBs lokalem First-Design, Performance-Optimierung, Caching-Strategien und AST-basiertem Cursor-Mapping
  • MotherDuck ist ein verwalteter DuckDB-Cloud-Service, der verschiedene Werkzeuge für die Datenanalyse bereitstellt

Einführung in Instant SQL

  • Instant SQL ist eine neue Funktion, die die Ergebnisse von SQL-Abfragen während des Tippens in Echtzeit aktualisiert
  • Ohne separaten Run-Button lassen sich Ergebnisse mit Null-Wartezeit (zero latency) vorab prüfen
  • Derzeit in der MotherDuck-Plattform und der DuckDB Local UI verfügbar

Warum Instant SQL gebraucht wird

  • Beim Schreiben von SQL geht es nicht primär um Syntax, sondern um den Prozess, Daten zu verstehen und Fragen zu formulieren
  • Bisher war man auf einen langsamen Zyklus angewiesen: Query im Texteditor schreiben, auf Ausführen klicken und auf Ergebnisse warten
  • Instant SQL verwandelt diesen Ablauf in einen unmittelbaren und natürlichen Explorations-Workflow

Hauptfunktionen

  • Ergebnisse beim Schreiben in Echtzeit vorab anzeigen

    • Bei jedem Tippen einer SQL-Abfrage wird die Vorschau des Result Sets in Echtzeit aktualisiert
    • Von einfachen Transformationen bis zu komplexen Aggregationen ist eine unterbrechungsfreie Datenexploration möglich
  • CTEs (Common Table Expressions) in Echtzeit debuggen

    • CTEs lassen sich anklicken und sofort visualisieren
    • Änderungen werden umgehend in allen abhängigen Knoten übernommen, was das Debuggen von CTEs stark vereinfacht
  • Komplexe Spaltenausdrücke zerlegen

    • Um Fehler in Spaltenausdrücken schnell zu finden, können Ausdrücke direkt in der Ergebnistabelle aufgeschlüsselt werden
    • Dadurch lassen sich Probleme in der Logik oder in den Daten sofort identifizieren
  • Unterstützung für verschiedene Datenquellen

    • Für alle von DuckDB unterstützten Quellen (DuckDB-Tabellen, Parquet-Dateien auf S3, Postgres, SQLite, MySQL, Iceberg, Delta usw.) ist eine Vorschau möglich
    • Externe Datenmodellierung und Exploration werden dadurch sehr schnell
  • Schnelle Query-Prüfung vor der finalen Ausführung

    • Nach dem Feinschliff der Query in der Vorschau kann sie bei Zufriedenheit final ausgeführt werden
    • Der Zyklus aus SQL schreiben, ausführen und warten wird radikal verkürzt
  • Kombination mit KI-Funktionen

    • Für ausgewählten Text können natürlichsprachliche Befehle eingegeben werden, woraufhin die KI Änderungsvorschläge macht
    • Da sich die vorgeschlagenen Ergebnisse sofort in der Vorschau anzeigen lassen, können Änderungen ohne Fehlerrisiko übernommen werden

Wie das möglich wurde

  • Technologie für extrem latenzarme Query-Ausführung

    • Dank DuckDBs lokalem First-Design lassen sich direkt auf dem PC schnelle Ergebnisse erzielen
    • Die Dual-Execution-Architektur von MotherDuck unterstützt auch große Datenmengen mit geringer Latenz
  • Technologie zur Query-Umschreibung

    • Mithilfe der DuckDB-JSON-Erweiterung wird der AST (Syntaxbaum) von SELECT-Abfragen extrahiert und genutzt
    • Teile der Query werden durch lokal zwischengespeicherte Beispieldaten ersetzt, um schnelle Vorschauen zu ermöglichen
  • Intelligentes Caching-System

    • Mithilfe eines vorausberechneten Datencaches werden Ergebnisse direkt bei jedem Tastendruck gerendert
    • Durch verschiedene Caching-Strategien erscheinen Ergebnisse, noch bevor die Nutzenden die Finger von der Tastatur nehmen
  • Cursor-Syntaxbaum-Mapping

    • Es wurde eine Funktion entwickelt, die die Cursor-Position der Nutzenden im AST präzise einem bestimmten SELECT-Knoten zuordnet
    • So kann selbst in komplexen Queries gezielt nur die SELECT-Anweisung in der Vorschau angezeigt werden, an der gerade gearbeitet wird

So nutzt man Instant SQL

  • In MotherDuck oder der DuckDB Local UI als „öffentliche Preview“ verfügbar
  • Eine neue promptbasierte Bearbeitungsfunktion steht ebenfalls für MotherDuck-Nutzende bereit

2 Kommentare

 
aer0700 2025-04-26

Das ist wirklich faszinierend.

 
GN⁺ 2025-04-25
Hacker-News-Kommentare
  • Ich habe den Autor dieses Features und des Blogposts auf der DataCouncil-Konferenz dazu präsentieren sehen und konnte erkennen, wie viel handwerkliches Können, Kreativität und Sorgfalt in den Aufbau geflossen sind. Glückwunsch an Hamilton und das MotherDuck-Team zu diesem großartigen Release
  • Es gibt ein großartiges Video in der DuckDB-UI und bei MotherDuck
  • Es wäre besser, wenn SQL eine Pipe-Syntax hätte. SQL ist großartig, aber seine Reihenfolge ist nicht intuitiv, und um Zwischenergebnisse vorzuschauen, sind CTEs die einzige verlässliche Methode. Mit Pipes könnte jeder Schritt die Zwischenausgabe klar zeigen
    • Beispiel:
      • FROM orders
      • WHERE order_date >= '2024-01-01'
      • AGGREGATE SUM(order_amount) AS total_spent GROUP BY customer_id
      • WHERE total_spent > 1000
      • INNER JOIN customers USING(customer_id)
      • CALL ENRICH.APOLLO(EMAIL > customers.email)
      • AGGREGATE COUNT(*) high_value_customer GROUP BY company.country
  • Falls hier ein DuckDB-Ingenieur mitliest: Ich möchte euch wissen lassen, dass euer Tool meiner Arbeit in der Bioinformatik/Biotechnologie enorm geholfen hat. Es hat die Flexibilität und Einfachheit, die biologische Daten verlangen, die komplex und ständig im Wandel sind
  • Dass DuckDB keine Pipe-Syntax wie kusto oder Googles Pipe-Query-Syntax hat, ist ein fatal fehlendes Feature
    • Warum ist das ein fatales Feature? Erstens vervollständigen LLMs Text von links nach rechts. Allein das macht es schon zu einem fatalen Feature
    • Aber für uns Menschen mit weniger Rechenleistung ermöglicht die Pipe-Syntax eine deutlich bessere Code-Vervollständigung
    • Die Arbeit mit Pipe-Syntax macht Freude, und zu SQL zurückzugehen ist wirklich ein enttäuschender Moment
  • Hoffentlich funktioniert das nicht mit DELETE-Abfragen
  • Ich erkunde DuckDB-Notebooks wirklich gern, und dieses Feature macht sie noch besser. Allerdings ist es sehr einschränkend, dass man sie nicht teilen, exportieren oder in ein git-Repository committen kann. Anscheinend werden sie in der DuckDB-Datenbank gespeichert, sogar mit historischen Versionen, aber praktisch kann man damit nichts anfangen
  • Die CTE-Inspektion ist überraschend. Ich verbringe manuell viel zu viel Zeit damit
  • Großartiges Tool, und zusammen mit dem Manifold-Projekt für SQL ist es noch besser. Es bietet Typsicherheit und hervorragende Unterstützung für native DuckDB-Syntax
  • Sieht großartig aus, aber ich möchte die komplette Tabelle sehen, die ich abfragen will. Ich beginne eine Abfrage fast immer damit, schnell select * from table limit 10; auszuführen und füge dann Spalten und Joins hinzu