13 poin oleh GN⁺ 2025-04-25 | 2 komentar | Bagikan ke WhatsApp
  • Instant SQL adalah alat yang menampilkan pratinjau hasil secara real-time saat menulis kueri SQL, sehingga mempercepat penulisan dan debugging kueri
  • CTE yang kompleks maupun rumus kolom dapat dipecah dan dianalisis dengan mudah, serta saran pengeditan berbasis AI bisa langsung dipratinjau, membuat penulisan dan revisi kueri lebih efisien
  • Tersedia di MotherDuck dan DuckDB Local UI, serta memungkinkan eksplorasi real-time hingga ke berbagai sumber data eksternal berbasis DuckDB
  • Hal ini dimungkinkan berkat kombinasi teknologi canggih seperti desain local-first DuckDB, optimasi performa, strategi caching, dan pemetaan kursor berbasis AST
  • MotherDuck adalah layanan cloud DuckDB terkelola yang menyediakan beragam alat untuk analisis data

Memperkenalkan Instant SQL

  • Instant SQL adalah fitur baru yang memperbarui hasil kueri SQL secara real-time tepat saat pengguna mengetik
  • Tanpa tombol run terpisah, hasil dapat dipratinjau dengan latensi nol detik (zero-latency)
  • Saat ini tersedia di platform MotherDuck dan DuckDB Local UI

Mengapa Instant SQL dibutuhkan

  • Menulis SQL pada intinya bukan soal sintaks, melainkan proses memahami data dan merumuskan pertanyaan
  • Sebelumnya, pengguna harus melalui siklus lambat: menulis kueri di editor teks, menekan tombol run, lalu menunggu hasil
  • Instant SQL mengubah proses ini menjadi alur eksplorasi yang instan dan alami

Fitur utama

  • Pratinjau hasil secara real-time saat menulis

    • Setiap kali kueri SQL diketik, pratinjau result set akan diperbarui secara real-time
    • Dari transformasi sederhana hingga agregasi kompleks, eksplorasi data dapat dilakukan tanpa jeda
  • Debugging CTE (common table expression) secara real-time

    • CTE dapat diklik untuk langsung divisualisasikan
    • Perubahan langsung diterapkan ke semua node yang bergantung, sehingga debugging CTE menjadi sangat mudah
  • Mengurai rumus kolom yang kompleks

    • Untuk membantu cepat menemukan kesalahan pada rumus kolom, pengguna dapat mengurai rumus langsung dari tabel hasil
    • Masalah pada logika rumus maupun data dapat langsung diidentifikasi
  • Dukungan berbagai sumber data

    • Semua sumber yang didukung DuckDB—termasuk tabel DuckDB, file parquet di S3, Postgres, SQLite, MySQL, Iceberg, Delta, dan lainnya—dapat dipratinjau
    • Pemodelan dan eksplorasi data eksternal menjadi jauh lebih cepat
  • Validasi kueri cepat sebelum eksekusi akhir

    • Setelah memoles kueri lewat pratinjau, pengguna dapat melakukan eksekusi akhir saat sudah puas
    • Ini memangkas secara drastis siklus tulis-jalankan-tunggu dalam SQL
  • Integrasi dengan fitur AI

    • Untuk teks yang dipilih, pengguna dapat memasukkan perintah bahasa alami dan AI akan memberi saran perubahan
    • Hasil saran dapat langsung dipratinjau, sehingga perubahan bisa diterima tanpa risiko kesalahan

Bagaimana ini dimungkinkan

  • Teknologi eksekusi kueri berlatensi sangat rendah

    • Berkat desain local-first DuckDB, hasil cepat bisa diperoleh langsung di PC
    • Arsitektur eksekusi ganda milik MotherDuck juga mendukung data berukuran besar dengan latensi rendah
  • Teknologi penulisan ulang kueri

    • Dengan memanfaatkan ekstensi JSON DuckDB, sistem mengekstrak dan menggunakan AST (syntax tree) dari kueri SELECT
    • Sebagian kueri dapat diganti dengan data sampel cache lokal agar pratinjau muncul lebih cepat
  • Sistem caching cerdas

    • Menggunakan cache data yang diprediksi sebelumnya untuk merender hasil segera setelah tombol ditekan
    • Berbagai strategi caching dipakai agar hasil muncul bahkan sebelum pengguna sempat mengangkat jari dari keyboard
  • Pemetaan kursor-ke-syntax tree

    • Dikembangkan fitur yang memetakan posisi kursor pengguna secara akurat ke node SELECT tertentu di dalam AST
    • Bahkan di kueri yang kompleks, sistem dapat memilih hanya pernyataan SELECT yang sedang dikerjakan pengguna untuk ditampilkan pratinjaunya

Cara menggunakan Instant SQL

  • Tersedia sebagai public preview di MotherDuck maupun DuckDB Local UI
  • Fitur baru revisi berbasis prompt juga tersedia bagi pengguna MotherDuck

2 komentar

 
aer0700 2025-04-26

Ini benar-benar sangat menakjubkan.

 
GN⁺ 2025-04-25
Komentar Hacker News
  • Saya melihat penulis fitur ini dan posting blognya presentasi di konferensi DataCouncil, dan terasa jelas bahwa banyak keterampilan, kreativitas, dan perhatian terhadap detail yang dicurahkan untuk membangunnya. Selamat atas peluncuran keren ini untuk Hamilton dan tim MotherDuck
  • Ada video yang keren di UI DuckDB dan MotherDuck
  • Akan lebih baik jika SQL memiliki sintaks pipe. SQL memang hebat, tetapi urutannya tidak intuitif, dan CTE adalah satu-satunya cara yang bisa diandalkan untuk melihat pratinjau hasil antara. Dengan pipe, setiap tahap bisa menunjukkan output antara dengan jelas
    • Contoh:
      • 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
  • Jika ada engineer DuckDB di sini, saya ingin memberi tahu bahwa alat Anda sangat membantu pekerjaan saya di bioinformatika/bioteknologi. Alat ini punya fleksibilitas dan kesederhanaan yang dibutuhkan data biologis yang kompleks dan terus berubah
  • Fakta bahwa DuckDB tidak memiliki sintaks pipe seperti kusto atau sintaks pipe query milik Google adalah fitur yang hilang secara fatal
    • Kenapa itu fitur yang fatal? Pertama, LLM menyelesaikan teks dari kiri ke kanan. Itu saja sudah menjadikannya fitur yang fatal
    • Namun bagi kita manusia yang daya komputasinya lebih kecil, sintaks pipe memungkinkan pelengkapan kode yang jauh lebih baik
    • Sintaks pipe menyenangkan untuk digunakan, dan kembali ke SQL terasa sangat mengecewakan
  • Semoga ini tidak bekerja dengan kueri DELETE
  • Saya sangat suka menjelajahi notebook DuckDB, dan fitur ini membuatnya jadi lebih keren lagi. Namun, fakta bahwa notebook itu tidak bisa dibagikan, diekspor, atau di-commit ke repositori git sangat membatasi. Sepertinya notebook disimpan ke database DuckDB, bahkan mungkin versi historisnya juga disimpan, tetapi pada praktiknya tidak banyak yang bisa dilakukan dengannya
  • Inspeksi CTE benar-benar kejutan yang menyenangkan. Saya menghabiskan terlalu banyak waktu melakukannya secara manual
  • Alat yang keren, dan akan lebih keren lagi bila digunakan bersama proyek manifold untuk SQL. Ini type-safe dan menawarkan dukungan yang sangat baik untuk sintaks DuckDB native
  • Terlihat keren, tetapi saya ingin bisa melihat seluruh tabel yang ingin saya kueri. Saya selalu memulai kueri dengan cepat menjalankan select * from table limit 10; lalu menambahkan kolom dan join