Skip to content

Catatan open source

Semua tulisan
25 Okt 202611 menit bacaopen source · duckdb · databases · sql · analyticsBaca dalam:ENID

DuckDB 2.0: Basis Data Dalam Proses yang Kini Bisa Menjadi Server

DuckDB 2.0.0 LTS menghadirkan mode server lewat Quack dan CONNECT, tipe VARIANT, I/O asinkron, mode agen, dan pemicu, dengan dukungan hingga setidaknya Oktober 2027.

Seekor bebek mallard berenang di air.

DuckDB lahir sebagai basis data yang ditanamkan di dalam aplikasi, bukan server yang dijalankan di sampingnya. Versi 2.0 menjaga gagasan itu dan menambah pilihan yang selama ini ditolaknya. Pilihan itu adalah mode server yang sesungguhnya. DuckDB 2.0.0 LTS, bernama sandi Cinnamon Teal, dirilis pada 21 Oktober 2026. Tim DuckDB menyebutnya rilis fitur terbesar sejauh ini. Rilis ini dibangun dari hampir 20.000 commit sejak DuckDB 1.5 (pengumuman tim DuckDB, DuckDB, diakses 25 Oktober 2026). Bersamaan dengan mode server hadir protokol Quack yang dipoles dan I/O asinkron. Hadir pula tipe VARIANT kelas utama, mode agen, pemicu, dan pengurai SQL baru yang dapat diperluas. Rilis ini juga berstatus dukungan jangka panjang hingga setidaknya Oktober 2027.

Poin Penting

  • DuckDB 2.0.0 LTS, bernama sandi Cinnamon Teal, dirilis pada 21 Oktober 2026. Ini adalah rilis fitur terbesar proyek ini sejauh ini. Rilis ini dibangun dari hampir 20.000 commit sejak DuckDB 1.5.

  • Protokol Quack yang dipoles dan pernyataan CONNECT yang baru menjadikan DuckDB pilihan klien-server yang utuh. Koneksi ke PostgreSQL dan MySQL tersedia dengan pendorongan jarak jauh, sementara mode dalam proses tetap tersedia.

  • Tipe VARIANT kelas utama memecah data semi-terstruktur seperti JSON menjadi kolom. Data itu terkompresi dan dapat dikueri seperti data bertipe tanpa skema yang dinyatakan.

  • Mode agen di CLI mendeteksi ketika agen coding memakainya dan beralih ke keluaran ringkas. Dalam eksperimen TPC-H tim DuckDB, mode ini memangkas keluaran yang harus dibaca model sebesar 59% (pengumuman tim DuckDB).

  • Pembaruan ini membawa perubahan yang benar-benar tidak lagi cocok, terutama format penyimpanan baru yang tidak dapat dibaca versi lama. Tim DuckDB menyarankan pengujian pada sistem bayangan dan menunggu rilis tambalan November untuk beban kerja yang sangat penting.

Rilis ini tidak datang tanpa pengumuman awal. Tim DuckDB sudah mempratinjau fitur-fitur utamanya pada Agustus 2026 (pratinjau DuckDB 2.0). Pratinjau itu mencakup DuckDB sebagai server, pemicu, tipe VARIANT, I/O asinkron, dan pengurai SQL baru. Jika DuckDB 1.0 menekankan stabilitas dan kecocokan ke belakang, pengumuman 2.0 menyajikannya secara lugas sebagai rilis fitur. Pembingkaian itu penting: inilah rilis yang memperluas kegunaan DuckDB, bukan sekadar memoles apa yang sudah ada.

Apa Itu DuckDB?

DuckDB adalah basis data analitis sumber terbuka (open source) yang berjalan dalam proses. Ia berjalan di dalam aplikasi atau skrip pengguna, bukan sebagai server terpisah. Ia dibangun untuk pekerjaan analitis. Pekerjaan itu memindai berkas besar, mengagregasi kolom, dan menggabung tabel, bukan menangani banyak transaksi kecil. Desain itulah yang membuatnya populer untuk mengueri berkas CSV, Parquet, dan JSON secara langsung. Versi 2.0 tidak meninggalkan desain itu. Ia menambahkan cara kedua untuk memakai mesin yang sama.

Aspek

DuckDB 2.0.0 LTS

Dirilis

21 Oktober 2026

Nama sandi

Cinnamon Teal

Dukungan

Dukungan jangka panjang hingga setidaknya Oktober 2027

Commit sejak 1.5

Hampir 20.000

Fitur utama

Protokol server Quack, I/O asinkron, VARIANT, mode agen, pemicu, pengurai PEG

Lisensi dan model

Sumber terbuka, dalam proses secara bawaan, klien-server sebagai pilihan

DuckDB sebagai Server: Quack dan CONNECT

Quack adalah protokol klien-server asli DuckDB. Protokol ini pertama muncul di DuckDB 1.5.3 pada Mei 2026. Versi 2.0 membawa versi polesannya dengan peningkatan kinerja dan stabilitas yang besar, menurut pengumuman resmi. Pernyataan CONNECT yang baru membuat protokol ini mudah dipakai dalam SQL sehari-hari. Satu perintah memasang basis data jarak jauh dan memindah sesi ke basis data itu. Pernyataan ini tidak terbatas pada Quack. Ia juga mengarahkan sesi ke PostgreSQL dan MySQL. Pengoptimal pendorongan jarak jauh yang baru mengirim kueri langsung ke server jarak jauh. Tabel tidak ditarik utuh lewat jaringan.

Baris perintah mendapat jalan pintas yang sepadan. Bendera -serve memulai server Quack, dan bendera -connect tersambung ke server itu. Secara bawaan server hanya mendengarkan di localhost. Untuk menerima koneksi dari mesin lain, tim DuckDB menyarankan server tetap di localhost. Server itu berada di balik proksi balik yang mengakhiri TLS. Pilihan yang mengekspos server secara langsung digambarkan hanya untuk pengujian. Pakailah ia sebagai instans bersama yang dijangkau lewat sarana yang sudah dipercaya. Jangan biarkan basis data terbuka di internet.

Hannes Muhleisen adalah salah satu pencipta DuckDB. Ia juga CEO dan salah satu pendiri DuckLabs. Ia merumuskan tujuan desain itu dalam pengumuman rilis yang dimuat EIN Presswire: "Dengan DuckDB 2.0, Anda bisa tetap menjalankannya di dalam aplikasi atau tersambung ke instans bersama ketika itu lebih masuk akal. Pilihannya ada di tangan Anda." (pengumuman rilis DuckLabs). Kutipan itu merangkum rilis ini dalam satu kalimat. Tidak ada yang hilang dari mode dalam proses. Server adalah pilihan yang diambil ketika berbagi lebih penting daripada penanaman.

Pembacaan Jarak Jauh yang Lebih Cepat dan Tipe Nyata untuk Data Berantakan

Dua perubahan mesin paling penting bagi pengguna yang mengueri data yang tinggal di tempat lain. Pertama, DuckDB 2.0 membawa I/O asinkron. I/O ini membaca berkas Parquet dan CSV serta format penyimpanan asli DuckDB. Lapisan I/O kini berskala secara mandiri dari lapisan pemrosesan kueri. Ia memulai pembacaan di latar belakang dan menjaga banyak permintaan tetap berjalan. Hasilnya, paralelisme pembacaan jarak jauh jauh lebih besar. Kueri pada penyimpanan objek seperti S3 pun jauh lebih cepat.

VARIANT adalah tipe kelas utama DuckDB untuk data semi-terstruktur dan tanpa skema seperti JSON. Anggaplah ia sebagai JSON dengan eksekusi kolom di belakangnya. Satu kolom VARIANT dapat menyimpan data dengan bentuk berbeda di tiap baris. Tidak seperti teks JSON, ia tidak disimpan sebagai teks. DuckDB 1.5 sudah membawa VARIANT, tetapi 2.0 memadukannya sepenuhnya. Mesin mendeteksi struktur umum dalam data Anda dan memecahnya menjadi kolom. Data terkompresi dengan baik dan dieksekusi dengan cepat. Alurnya bekerja ujung ke ujung, termasuk pembacaan dan penulisan VARIANT terpecah untuk Parquet. Muatan peristiwa, tanggapan API, dan catatan log tidak pernah berbagi satu skema. Kini semuanya dapat dikueri sebagai kolom bertipe. Tidak perlu langkah pemuatan. Mereka tidak dipaksa ke dalam bentuk yang tidak pernah mereka miliki. For example, satu baris dapat menyimpan objek pengguna, sementara baris lain menyimpan peristiwa klik, masing-masing dengan bentuk yang berbeda.

Dibuat untuk Agen: Mode Agen di CLI

Mode agen adalah mode CLI. Mode ini mendeteksi ketika agen coding memakai DuckDB dan mengubah cara hasil dicetak. Agen coding seperti Claude Code, Codex, dan Cursor makin sering memakai CLI DuckDB atas nama penggunanya. Tabel kotak berbingkai yang disukai manusia adalah derau yang mahal bagi model. Dalam mode agen, CLI mencetak tabel Markdown yang ringkas, bukan kotak berbingkai. Ia menyatakan dengan jelas ketika hasil terpotong. Ia juga menghentikan kueri yang berjalan liar lebih awal. Galat dilaporkan sebagai JSON. Kueri yang berjalan lama juga melaporkan perkiraan biayanya sebelum dijalankan. Agen dapat memutuskan apakah akan menunggu. Dalam eksperimen tim DuckDB pada TPC-H, mode agen memangkas jumlah keluaran DuckDB yang harus dibaca model sebesar 59% (pengumuman tim DuckDB). Anda dapat menyalakannya untuk pengujian manual dengan bendera -agent. Anda juga dapat menyuruh agen Anda mematikannya dengan bendera -no-agent.

Fitur kecil ini membawa sinyal yang besar. Basis data makin menjadi alat yang dijalankan agen. Pengguna manusia bukan lagi satu-satunya pengguna. Inilah pergeseran yang sama dengan yang digambarkan artikel Microsoft Scope kami dari sisi yang berlawanan. Artikel itu mengukur perilaku agen ketika mereka memakai perangkat lunak Anda. DuckDB 2.0 hanya membuat pekerjaan agen lebih murah dan lebih dapat diprediksi.

Pemicu dan Dialek SQL yang Terus Tumbuh

DuckDB 2.0 membawa pemicu lewat pernyataan CREATE TRIGGER. Tersedia pemicu BEFORE dan AFTER serta varian FOR EACH ROW dan FOR EACH STATEMENT. Ada tabel transisi lewat REFERENCING OLD dan NEW TABLE. Ada pula banyak pemicu per peristiwa. Ada juga RETURNING pada tabel yang terpicu dan DROP TRIGGER. Kasus klasiknya adalah tabel audit. Pemicu mencatat apa yang berubah sebagai tanggapan atas perubahan tabel. Pemicu juga dapat menjaga tabel ringkasan secara bertahap. Contoh pengumuman resmi menjaga rata-rata usia per warga negara tetap mutakhir. Langkah itu mendekatkan DuckDB ke tampilan termaterialisasi. Itulah salah satu butir lama dalam peta jalannya.

Dua celah patut diperiksa sebelum Anda memindah logika pemicu dari basis data lain. Pengumuman resmi menyebut dua celah. Pemicu BEFORE untuk FOR EACH ROW belum didukung. Pemicu UPDATE untuk FOR EACH ROW juga belum didukung. Liputan independen mengulang peringatan itu (liputan Netics Labs). Dialek SQL tumbuh di tempat lain juga. Ada singkatan variabel $ dan ekspresi tabel umum yang mengubah data. INSERT, UPDATE, DELETE, dan COPY dapat bertindak sebagai langkah alur. Ada pula gabungan NEAREST untuk pencarian kemiripan top-k atas embedding dan skema bersarang. Fungsi mutasi JSON bernama json_set, json_insert, json_replace, dan json_remove melengkapi daftar itu. Ada pula dukungan klausa FETCH FIRST yang baku dalam SQL. UNNEST dalam klausa GROUP BY juga didukung. Fungsi-fungsi itu, such as json_set, memberi salinan dokumen yang sudah diubah. Dokumen aslinya tidak diubah.

Di Balik Layar: Pengurai Baru, API C Baru, dan Ekstensi Bertanda Tangan

DuckDB selama ini memakai pengurai yang diturunkan dari PostgreSQL. Di versi 2.0, pengurai PEG modern miliknya sendiri menjadi bawaan. Pengurai itu dapat diperluas. Pengurai itu debut sebagai fitur pilihan di DuckDB 1.5. Ekstensi kini dapat mengaitkan diri ke tata bahasa itu sendiri. Pesan galat kini dilengkapi lokasi sumber yang tepat. Pengurai baru ini dirancang kompatibel dengan pengurai lama. Kecuali itu, hanya beberapa perubahan yang disengaja dalam panduan migrasi. Anda dapat kembali ke pengurai lama dengan ekstensi legacy_parser bila perlu.

Pengembang ekstensi mendapat dua hal lagi. API C v2 yang dirancang ulang mengekspos komponen kepada ekstensi. Komponen itu mencakup sistem berkas dan fungsi tabel. Ia disajikan sebagai API yang kuat. API itu masih diuji di lapangan sebelum dinyatakan stabil. Anda juga kini dapat mendaftarkan dan menampung repositori ekstensi tepercaya milik sendiri. Organisasi dapat menampung dan meneken ekstensinya sendiri. Ekstensi itu lalu dipasang dan dimuat seperti ekstensi bawaan. Repositori adalah nama, awalan URL, dan kunci publik RSA. Kunci-kunci itu disematkan pada saat pembuatan. Sidik jari SHA-256 tiap kunci dicetak untuk perbandingan di luar jalur. Tim DuckDB mencatat fitur ini masih dalam pengerjaan dan sintaksnya dapat berubah. Ekstensi inti pun bergerak. DuckLake mencapai versi 1.1. Ekstensi Iceberg menambah pilihan ATTACH katalog REST. Ekstensi Delta dapat membuat tabel Delta serta mendukung perjalanan waktu.

Apa yang Rusak, dan Cara Memperbarui dengan Aman

Kenaikan versi mayor ini memang pantas menyandang angkanya. Format penyimpanan adalah sumber masalah yang paling mungkin. Versi DuckDB sebelum 2.0 tidak dapat membaca berkas baru. Berkas itu dibuat oleh DuckDB 2.0. DuckDB 2.0 masih dapat membaca dan menulis berkas basis data Anda yang sudah ada. Berkas-berkas itu tetap dapat dibaca versi lama. Kerusakannya hanya berjalan satu arah. Meski demikian, tim DuckDB menyarankan pengujian 2.0.0 pada sistem bayangan sebelum mengalihkan produksi. Bila beban kerja Anda sangat penting, tunggulah rilis tambalan pertama. Rilis itu datang pada November 2026.

Sisa daftar perubahan yang tidak lagi cocok lebih pendek, tetapi tetap patut dipindai. DuckDB 2.0 kini perlu kompiler C++17, setelah lama bertahan pada C++11. Build rilis beralih ke Clang sebagai kompiler bawaan di Linux dan macOS. Pustaka ICU hilang sepenuhnya. Ekstensi icu kini menyediakan zona waktu, kalender, dan kolasi sendiri. Data zona waktu dari basis data IANA dikompresi hingga sekitar 45 kB. Sintaks lambda panah tunggal yang lama dimatikan secara bawaan. Ia digantikan sintaks gaya Python. Pengaturan sementara tersedia hingga keduanya dihapus pada versi 2.1. Build amalgamasi tidak lagi dianjurkan. Osx_amd64 sedang dihentikan secara bertahap, dengan ekstensi komunitas yang tidak lagi dibangun untuknya.

Apa Kata Liputan Independen

Liputan independen konsisten pada antusiasme sekaligus kehati-hatiannya. Netics Labs membingkai 2.0 sebagai rilis yang bisa direncanakan. Alasannya, label dukungannya membawa tanggal. Ia memaparkan jangka dukungan yang tumpang tindih. Versi 2.0 didukung hingga setidaknya Oktober 2027. Versi 1.5 didukung hingga Maret 2027. Versi 1.4 didukung hingga 17 November 2026 (liputan Netics Labs). Penelusuran Glonce menekankan bentuk praktis yang sama. Quack ditambah CONNECT menjadikan pemakaian klien-server sebagai pilihan bawaan. I/O asinkron menyasar data jarak jauh. Pemicu menambah perangkat fitur yang sebelumnya tidak dimiliki DuckDB. Sementara itu, perubahan penyimpanan berarti migrasi harus diuji, bukan diasumsikan (liputan Glonce). Tidak satu pun liputan membantah fitur-fitur utama. Keduanya menganggap jalur pembaruan, bukan daftar fitur, sebagai keputusan yang penting.

Siapa yang Sebaiknya Memperbarui, dan Siapa yang Sebaiknya Menunggu

Perbarui segera bila Anda mengueri Parquet atau CSV dari penyimpanan objek. Perbarui juga bila Anda mengolah muatan JSON semi-terstruktur. Perbarui pula bila Anda menginginkan instans bersama untuk tim. Perbarui pula bila Anda ingin menekan biaya token agen yang memakai CLI. Label LTS berarti lini ini akan didukung cukup lama untuk dibangun di atasnya. Tunggu rilis tambalan November bila penerapan Anda sangat penting. Tunggu juga bila banyak proses berbagi berkas. Tunggu pula bila Anda bergantung pada ekstensi pihak ketiga. Ekstensi itu belum dibangun ulang untuk 2.0. Apa pun pilihannya, uji dulu pada sampel data produksi. Perubahan penyimpanan satu arah adalah kerusakan yang ditangkap sistem bayangan. Penerapan produksi tidak memaafkannya.

Pertanyaan yang Sering Diajukan

Apakah DuckDB 2.0 gratis? DuckDB adalah perangkat lunak sumber terbuka. Versi 2.0.0 tersedia sebagai rilis dukungan jangka panjang. Biaya Anda hanya sarana tempat Anda menjalankannya dan penyimpanan yang Anda kueri.

Apakah DuckDB 2.0 menggantikan mode dalam proses dengan server? Tidak. Mode dalam proses tetap ada. Quack dan CONNECT menambahkan pilihan klien-server untuk kasus ketika instans bersama lebih masuk akal. Anda memilih per beban kerja mode mana yang dipakai.

Dapatkah versi DuckDB lama membuka berkas yang dibuat DuckDB 2.0? Tidak. Versi sebelum 2.0 tidak dapat membaca berkas baru DuckDB 2.0. DuckDB 2.0 dapat membaca dan menulis berkas Anda yang sudah ada. Berkas-berkas itu tetap dapat dibaca versi lama. Uji pembaruan pada sistem bayangan terlebih dahulu.

Apa yang dilakukan tipe VARIANT yang tidak dilakukan teks JSON? VARIANT menyimpan data semi-terstruktur sebagai tipe kelas utama, bukan sebagai teks. DuckDB mendeteksi struktur umum dan memecahnya menjadi kolom. Data terkompresi dengan baik dan dieksekusi dengan cepat. Data juga dapat dibaca serta ditulis sebagai data terpecah dalam Parquet.

Berapa lama DuckDB 2.0 didukung? DuckDB 2.0 adalah rilis dukungan jangka panjang dengan dukungan hingga setidaknya Oktober 2027. DuckDB 1.4 tetap didukung hingga 17 November 2026. Dukungan DuckDB 1.5 diperpanjang hingga Maret 2027.

Kesimpulan

DuckDB 2.0 adalah rilis ketika basis data yang tertanam berhenti bersikeras untuk tetap tertanam. Mode server, pendorongan jarak jauh, I/O asinkron, dan tipe VARIANT mengarah ke satu arah. DuckDB mengikuti penggunanya dari buku catatan ke alur kerja hingga layanan bersama. Mode tanpa penyiapan yang membuatnya populer tetap dijaga. Kerusakan penyimpanan dan saran menunggu tambalan November adalah harga yang jujur untuk langkah itu. Jangka LTS membuat harga itu masuk akal. Mulailah dari repositori GitHub dan pengumuman resmi, atau baca versi bahasa Inggris artikel ini.

Tag: open source · duckdb · databases · sql · analytics

Semua tulisan