deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

DuckDB 2.0.0 LTS asenkron I/O, VARIANT tipi ve Quack protokolüyle geldi

Cinnamon Teal kod adlı DuckDB 2.0.0 LTS, projenin şimdiye kadarki en büyük özellik sürümü; asenkron I/O, yerleşik VARIANT tipi, trigger'lar ve Quack istemci-sunucu protokolünü getiriyor. Yazdığı dosyalar eski sürümlerle açılamıyor.

DuckDB 2.0.0 LTS asenkron I/O, VARIANT tipi ve Quack protokolüyle geldi

DuckDB tarihinin en büyük özellik sürümü

Tek bir süreç içinde çalışan açık kaynak analitik veritabanı DuckDB, 2.0.0 LTS sürümünü yayınladı. dev.to'daki Netics yazısına göre, Cinnamon Teal kod adlı ve 21 Ekim 2026'da yayınlanan sürüm, DuckDB 1.5'ten bu yana yaklaşık 20.000 commit'ten oluşturuldu; proje bunu şimdiye kadarki en büyük özellik sürümü olarak nitelendiriyor — bu, istikrar odaklı 1.0 hattıyla bir tezat.

LTS etiketi tarihlerle birlikte geliyor. Netics'in aktardığı DuckDB sürüm takvimine göre 2.0.0 için destek sonu tarihi 22 Ekim 2027. Takvim, 1.4.0 sürümünden itibaren bir sürümün uzun vadeli destek sürümü olduğunu belirtiyor; topluluk desteği sürüm çıktıktan sonra yaklaşık bir yıl sürüyor.

2.0 ile neler geliyor

Öne çıkan özellikler:

  • Quack protokolü, DuckDB'yi yalnızca gömülü değil, geleneksel bir istemci-sunucu kurulumunda da çalıştırıyor. İlk kez Mayıs'ta DuckDB 1.5.3'te ortaya çıktı ve 2.0 cilalanmış bir sürüm getiriyor.
  • Parquet dosyaları, CSV dosyaları ve DuckDB'nin yerleşik depolamasını kapsayan asenkron I/O. I/O katmanı sorgu işlemeden bağımsız ölçekleniyor ve aynı anda birden fazla isteği açık tutuyor; proje, bunun uzak okumalara çok daha fazla paralellik ve S3 gibi nesne depolamada daha hızlı sorgular getirdiğini söylüyor.
  • Yarı yapılandırılmiş veriye yerleşik bir temsil sunan birinci sınıf VARIANT tipi.
  • Agent modu: CLI, kendisini yönlendiren bir kodlama ajanı olduğunu algılayınca kompakt çıktıya geçiyor.
  • Trigger'lar: satır ya da ifade düzeyinde BEFORE ve AFTER varyantlarıyla CREATE TRIGGER. Duyuru, BEFORE … FOR EACH ROW ve UPDATE … FOR EACH ROW'un henüz desteklenmediğini listeliyor; bu yüzden başka bir veritabanından taşınan trigger mantığının durum değerlendirmesiyle gözden geçirilmesi gerekiyor.
  • DuckDB 1.5'ten beri isteğe bağlı olan, genişletilebilir PEG tabanlı SQL ayrıştırıcısı artık varsayılan.

İç yapılar da değişti. Clang artık sürüm derlemeleri için varsayılan derleyici — Linux ve macOS'ta motor ve çekirdek extension'lar, Windows'ta CLI — ancak Windows'taki çekirdek extension'ların çoğu MSVC'de kalıyor. Paket içindeki ICU kütüphanesi tamamen kaldırıldı: icu extension artık saat dilimlerini, takvimleri ve collation'ları kendisi uyguluyor; IANA saat dilimi verisi yaklaşık 45 kB'a sıkıştırıldı.

Tek yönlü bir depolama biçimi

Kırıcı değişiklik dosya biçiminde. 2.0'dan önceki DuckDB sürümleri, 2.0'nın oluşturduğu veritabanı dosyalarını okuyamıyor; buna karşılık 2.0, önceki sürümlerin oluşturduğu dosyaları hem okuyabiliyor hem yazabiliyor — eski dosyalar eski sürümlerce de okunabilir kalıyor. Pratik tuzak yeni dosyalarda: bir servis 2.0 altında bir veritabanı dosyası oluşturduğunda, o servisin geri döneceği sürüm artık bu dosyayı açamıyor.

Projenin tavsiyesi de buradan geliyor. Üretimi geçirmeden önce 2.0.0'ı bir gölge sistemde test edin; iş yükü görev açısından kritikse Kasım'daki ilk yama sürümünü beklemeyi düşünün. Netics şunu ekliyor: yükseltmeden önce önemli tabloların Parquet ya da CSV kopyalarını dışa aktarmak, geri alınamaz bir adımı geri alınabilir hale getiriyor; çünkü bu biçimler, 2.0'da değişen DuckDB dosya biçiminin dışında yer alıyor.

Önce üç destek hattı, sonra iki

17 Kasım 2026'ya kadar üç DuckDB sürümü paralel olarak destekleniyor: topluluk desteği o gün sona eren 1.4; duyuruya göre fiilen LTS olmayan bir sürümü LTS'ye dönüştüren bir hamleyle Mart 2027'ye uzatılan 1.5; ve 2.0'nın kendisi. Kasım ortasından sonra Mart 2027'ye kadar iki hat kalıyor. Bir sonraki yama sürümü olan 2.0.1 için geçici tarih 18 Kasım 2026.

Netics, 1.5'i tutucu köprü olarak okuyor: bir ekip Mart 2027'ye kadar onda kalabilir, bu arada 2.0'ı gölge bir sistemde çalıştırabilir ve bir iki yama sürümü çıktıktan sonra geçebilir. Duyuru, depolama biçimini sorunların en olası kaynağı olarak gösteriyor.

Göç kontrol listesi

Netics'in küçük bir veri ekibi için önerdiği plan tek sayfaya sığıyor: hiçbir şeye dokunmadan önce önemli veriyi Parquet'e aktarın; gölge testinden önce hiçbir servis 2.0 veritabanı dosyası oluşturmasın diye her serviste istemci kütüphanesi sürümünü sabitleyin; 2.0.0'ı bir gölge kopya üzerinde çalıştırın ve insanların gerçekten okuduğu raporlardaki satır sayılarını ve sorgu sonuçlarını karşılaştırın; sonra bir tarih belirleyin ve o tarihe kadar ekibin hangi sürüm hattında kalacağını yazılı hale getirin. Sürüme bir göç rehberi eşlik ediyor.

Neden önemli

DuckDB, Python servislerine, CLI betiklerine, zamanlanmış işlere ve notebook'lara bağlanıyor ve bunların her biri kendi takvimine göre yükseltme yapıyor. Depolama biçimi artık tek yönde ilerlediği için, yükseltilen tek bir servis, hâlâ 1.x çalıştıran her şey için bir veritabanı dosyasını kullanılamaz hale getirebiliyor; bu da yükseltmelerin sırasını başlı başına bir planlama kararı yapıyor. LTS takvimi, DuckDB bakımını açık uçlu bir vaatten tarihli bir taahhüde dönüştürüyor ve asenkron I/O çalışması, motorun giderek daha fazla kullanıldığı deseni hedefliyor: nesne depolamadaki Parquet dosyalarını doğrudan sorgulamak.

  • #duckdb
  • #database
  • #release-notes
  • #open-source
  • #sql

İlgili yazılar