DuckDB 2.0.0 LTS dengan nama kode "Cinnamon Teal" dirilis 21 Oktober 2026, dan ini disebut tim DuckDB sebagai rilis fitur terbesar mereka sejauh ini: sekitar 20.000 commit sejak DuckDB 1.5. Statusnya long-term support, dengan dukungan sampai minimal Oktober 2027. Yang masuk ke rilis ini antara lain Quack protocol yang sudah dipoles, asynchronous I/O untuk baca Parquet dan CSV, tipe VARIANT kelas satu, agent mode, triggers, dan SQL parser yang bisa diperluas. Buat yang masih menahan upgrade, ada tiga jalur versi yang didukung bersamaan, jadi tidak harus langsung lompat semua.
TL;DR
- DuckDB 2.0.0 LTS rilis 21 Oktober 2026, kumpulan sekitar 20.000 commit sejak versi 1.5.
- Dukungan 2.0 sampai minimal Oktober 2027, jadi ini pilihan aman untuk produksi jangka panjang.
- Quack protocol bikin DuckDB bisa jalan sebagai server, lengkap dengan perintah CONNECT baru.
- Versi 1.4 masih didukung sampai akhir November 2026, versi 1.5 diperpanjang sampai Maret 2027.
Apa saja fitur baru di DuckDB 2.0?
Fitur paling menonjol ada di tiga area: jaringan, tipe data, dan operasi tabel. Di area jaringan, Quack protocol sekarang punya perintah CONNECT yang bisa mengarahkan sesi ke database remote dalam satu perintah, termasuk ke PostgreSQL dan MySQL lewat optimizer remote pushdown yang baru. Di area tipe data, VARIANT jadi tipe kelas satu untuk data semi-terstruktur. Di area operasi, triggers masuk, dan SQL parser dibuat bisa diperluas.
Asynchronous I/O juga berubah cukup dalam. Lapisan I/O sekarang berjalan terpisah dari lapisan pemrosesan query, mengirim pembacaan di latar belakang dan menjaga beberapa permintaan tetap berjalan bersamaan. Efek praktisnya paling terasa saat membaca file Parquet dan CSV dari storage remote, karena paralelisme baca naik dan waktu tunggu turun. Bagi yang menjalankan DuckDB di atas object storage, bagian ini yang paling relevan untuk diuji ulang.
Detail lengkap tiap fitur dijelaskan di pengumuman rilis DuckDB 2.0.0. Tim DuckDB juga menyediakan halaman terpisah yang memetakan setiap fitur baru ke dokumentasinya, jadi tidak perlu menebak dari changelog.
Berapa lama dukungan tiap versi DuckDB?
DuckDB 2.0 adalah rilis LTS dengan dukungan sampai minimal Oktober 2027. Versi 1.4, LTS sebelumnya, didukung sampai akhir November 2026. Versi 1.5 diperpanjang sampai Maret 2027 sehingga statusnya juga jadi LTS.
Artinya ada tiga jalur versi yang hidup bersamaan selama beberapa bulan ke depan. Kalau sebuah proyek sedang dalam masa pembekuan rilis dan belum bisa menanggung perubahan besar, 1.5 adalah tempat berlindung yang paling masuk akal karena dukungannya sudah diperpanjang. Tapi untuk proyek baru, 2.0 jelas titik awalnya.
| Versi | Status | Dukungan sampai | Catatan |
|---|---|---|---|
| 2.0 | LTS | Oktober 2027 | Rilis fitur besar, jalur utama untuk proyek baru |
| 1.5 | LTS (diperpanjang) | Maret 2027 | Pilihan untuk yang belum siap migrasi |
| 1.4 | LTS sebelumnya | November 2026 | Segera habis, mulai rencanakan keluar |
Kapan sebaiknya upgrade ke DuckDB 2.0?
Upgrade sekarang kalau proyek masih di tahap pengembangan atau baru mulai. Tunda sebentar kalau sedang di tengah siklus rilis yang sensitif, tapi jangan sampai melewati November 2026 bila masih di 1.4.
Ada satu catatan praktis soal ketersediaan klien. Saat rilis diumumkan, CLI dan Python sudah tersedia, sementara sebagian library klien lain seperti Go, R, dan Java butuh beberapa hari lagi karena perubahan dan putaran review tambahan. Kalau aplikasi produksi bergantung pada klien Go atau Java, cek dulu versi library-nya sebelum mengganti mesin database di belakangnya. Ini bukan masalah kualitas rilis, cuma soal waktu distribusi yang berbeda per bahasa.
Untuk jalur upgrade, halaman release GitHub DuckDB memuat catatan rilis lengkap termasuk daftar breaking change. Baca bagian itu sebelum menyentuh lingkungan produksi, karena 2.0 memang rilis fitur, bukan rilis yang murni menjaga kompatibilitas seperti 1.0.
Apa itu Quack protocol dan perintah CONNECT?
Quack adalah protokol native DuckDB yang memungkinkan satu proses DuckDB melayani database untuk proses lain, sehingga DuckDB bisa dipakai dalam pola client-server, bukan hanya in-process. Perintah CONNECT menyederhanakan pemakaiannya: satu perintah untuk attach sekaligus berpindah ke database remote.
Secara default server Quack hanya mendengarkan di localhost. Untuk menerima koneksi dari mesin lain, anjuran resminya adalah tetap menaruh server di localhost lalu menaruhnya di belakang reverse proxy yang menangani TLS. Opsi allow_other_hostname yang mengekspos server secara langsung hanya ditujukan untuk pengujian. Ini penting dicatat karena mengubah DuckDB jadi server berarti permukaan serangnya juga berubah, dan database yang tadinya hanya hidup di dalam proses aplikasi sekarang punya port yang bisa dijangkau.
Perintah CONNECT tidak terbatas pada Quack. Sesi bisa diarahkan ke database remote yang mendukungnya, termasuk PostgreSQL dan MySQL. Untuk dua jenis itu, optimizer remote pushdown baru mengirim query langsung ke server remote alih-alih menarik seluruh tabel lewat jaringan. Pada tabel besar, perbedaan pendekatan ini bisa sangat terasa, karena yang dipindahkan hanya hasil query, bukan isi tabel.
Apa yang perlu disiapkan sebelum migrasi?
Siapkan tiga hal: baca daftar breaking change, uji ulang query yang bergantung pada perilaku lama, dan pastikan klien yang dipakai sudah tersedia untuk 2.0.
Langkah pertama yang paling murah adalah menjalankan test suite yang ada terhadap 2.0 di lingkungan terpisah. Karena 2.0 menambah tipe VARIANT dan mengubah lapisan I/O, query yang menyentuh dua area itu paling berpotensi menunjukkan perbedaan hasil. Setelah itu baru pertimbangkan memakai fitur baru seperti triggers dan agent mode, satu per satu, bukan sekaligus.
Untuk instalasi, dokumentasi resmi di docs.duckdb.org mencantumkan cara pasang per klien. Sementara jadwal dukungan tiap versi bisa dicek di kalender rilis DuckDB agar perencanaan upgrade tidak bergantung pada ingatan. Untuk Python, paketnya tersedia lewat halaman duckdb di PyPI, dan nomor versi yang terpasang sebaiknya dikunci eksplisit di requirements agar lingkungan pengembangan dan produksi tidak berbeda.
Apa itu tipe VARIANT dan kenapa penting?
VARIANT adalah tipe data kelas satu di DuckDB 2.0 untuk menampung data semi-terstruktur, yaitu data yang bentuknya tidak seragam antar baris. Sebelumnya, pola seperti ini biasanya diakali dengan menyimpan JSON sebagai string lalu mengekstrak isinya saat query.
Bedanya terasa di dua tempat. Pertama, saat menulis: data semi-terstruktur bisa masuk apa adanya tanpa harus didefinisikan kolomnya lebih dulu. Kedua, saat membaca: karena tipe ini dikenali mesin database, bukan sekadar string, pemrosesan tidak perlu bergantung pada fungsi ekstraksi manual di setiap query. Untuk pipeline yang menelan payload dari API pihak ketiga, di mana bentuk respons bisa berubah antar versi, kemampuan menampung variasi tanpa migrasi skema adalah penghematan waktu yang nyata.
Yang perlu diingat, tipe baru berarti jalur baru yang harus diuji. Kalau aplikasi saat ini menyimpan data semi-terstruktur sebagai string JSON dan memprosesnya dengan fungsi khusus, migrasi ke VARIANT sebaiknya dilakukan bertahap dan diuji terhadap data nyata, bukan langsung diterapkan pada tabel produksi.
Apa dampak asynchronous I/O untuk data di object storage?
Dampaknya paling besar pada pembacaan file Parquet dan CSV dari storage remote. Lapisan I/O sekarang berjalan terpisah dari lapisan pemrosesan query, mengirim pembacaan di latar belakang dan menjaga beberapa permintaan tetap berjalan bersamaan.
Sebelumnya, membaca dari storage remote sering membuat prosesor menunggu. Satu permintaan baca dikirim, prosesor menunggu jawabannya, baru permintaan berikutnya dikirim. Dengan beberapa permintaan yang berjalan bersamaan, waktu tunggu bisa ditutupi oleh pekerjaan lain, sehingga total waktu query turun meski kecepatan jaringan tidak berubah sama sekali. Ini jenis peningkatan yang tidak terlihat di benchmark lokal, karena penyebabnya adalah latensi jaringan, bukan kecepatan CPU.
Karena itu, cara menguji rilis ini dengan benar adalah menguji pada pola pemakaian yang sebenarnya. Kalau data memang ada di object storage, uji di sana. Menguji di laptop dengan file lokal hanya akan menunjukkan bahwa tidak ada yang rusak, bukan bahwa ada yang membaik.
Berapa besar perubahan yang dibawa 20.000 commit?
Angka itu menunjukkan skala rilis: sekitar 20.000 commit sejak DuckDB 1.5, dan tim DuckDB menyebutnya sebagai rilis fitur terbesar mereka sejauh ini. Skala sebesar itu berarti perubahan menyentuh banyak bagian, bukan hanya penambahan satu-dua fitur.
Konsekuensi praktisnya, jumlah perubahan yang perlu diuji juga besar. Untuk tim yang selama ini mengandalkan DuckDB di jalur produksi, pendekatan yang aman adalah menjalankan seluruh test suite terhadap 2.0 lebih dulu, mencatat query yang hasilnya berbeda, lalu memutuskan satu per satu apakah perbedaan itu bug, perubahan perilaku yang disengaja, atau efek samping yang perlu dilaporkan. Yang tidak disarankan adalah mengganti versi di produksi lalu mengandalkan pemantauan untuk menangkap masalah, karena query analitik yang menghasilkan angka sedikit berbeda sering lolos dari pemantauan biasa.
Apakah DuckDB 2.0 masih bisa dipakai tanpa server?
Bisa, dan itu tetap mode default-nya. DuckDB sejak awal adalah database in-process, dan 2.0 tidak mengubah hal itu. Quack protocol hanya menambah opsi bila memang ada kebutuhan client-server.
Bagi sebagian besar pemakaian analitik, misalnya mengolah file Parquet di dalam skrip Python atau menjalankan query ad-hoc dari CLI, mode in-process tetap yang paling sederhana karena tidak ada port yang harus diamankan dan tidak ada proses terpisah yang harus dijalankan. Server hanya masuk hitungan ketika beberapa proses atau beberapa mesin perlu membaca database yang sama secara bersamaan.
FAQ
Apakah DuckDB 2.0 kompatibel dengan kode yang jalan di 1.x?
Sebagian besar kompatibel, tapi 2.0 adalah rilis fitur sehingga ada breaking change yang didokumentasikan. Baca daftar perubahan di catatan rilis sebelum upgrade, dan jalankan test suite yang ada terhadap versi baru di lingkungan terpisah.
Apakah DuckDB 2.0 harus dipakai sebagai server?
Tidak. DuckDB tetap bisa dipakai in-process seperti sebelumnya. Quack protocol hanya menambah opsi bila ada kebutuhan client-server, dan secara default server hanya mendengarkan di localhost sehingga tidak otomatis terbuka ke jaringan.
Berapa lama lagi DuckDB 1.4 didukung?
Sampai akhir November 2026. Setelah itu tidak ada patch lagi untuk jalur tersebut, jadi proyek yang masih memakainya sebaiknya mulai merencanakan pindah ke 1.5 atau langsung ke 2.0.
Apakah semua library klien langsung tersedia di hari rilis?
Tidak. CLI dan Python sudah tersedia saat pengumuman, sedangkan Go, R, Java, dan sebagian extension butuh beberapa hari tambahan untuk rilis karena perubahan serta putaran review yang diperlukan.
💬 Komentar (0)
Belum ada komentar. Jadilah yang pertama! 💬