deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

DuckDB 2.0 LTS, Quack client-server modunu, asenkron I/O ve birinci sınıf bir VARIANT tipiyle geliyor

Cinnamon Teal kod adlı DuckDB 2..0.0 LTS; en azından Ekim 2027'ye kadar sürecek destekle birlikte cilalanmış bir Quack client-server protokolü, asenkron I/O, tamamen entegre bir VARIANT tipi ve agent dostu bir CLI getiriyor.

DuckDB 2.0 LTS, Quack client-server modunu, asenkron I/O ve birinci sınıf bir VARIANT tipiyle geliyor

DuckDB ekibi, Cinnamon Teal kod adlı ve resmi duyuruda projenin tarihindeki en büyük özellik sürümü olarak tanımlanan uzun vadeli destek sürümü 2.0.0'ı yayınladı; sürüm, 1.5'ten bu yana yaklaşık 20.000 commit ile hazırlandı. Destek en azından Ekim 2027'ye kadar sürecek.

Aynı anda üç destekli sürüm hattı

Bu sürümle birlikte bakım altında üç DuckDB sürümü bulunuyor. DuckDB 2.0 yeni LTS hattı. Önceki LTS olan 1.4, Kasım 2026 sonuna kadar desteklenmeye devam edecek; en güncel özellik sürümü olan 1.5 ise Mart 2027'ye uzatıldı — ekip bu durumun onu fiilen bir LTS sürümüne dönüştürdüğünü, böylece geçiş öncesi teste yer bırakıldığını söylüyor. CLI ve Python istemcileri hemen kullanılabilir durumda; Go, R ve Java istemcileri ile bazı extension'lar ise ek değişiklik ve inceleme gerektirdikleri için önümüzdeki günlerde gelecek. 1.0'ın istikrarı önceliklendirirken 2.0 bilinçli olarak özellik ağırlıklı olduğundan, duyuru ayrıca kırıcı değişiklikleri ve göç adımlarını da ele alıyor.

DuckDB'ye client-server modu geliyor

DuckDB hayatına süreç içi (in-process) bir motor olarak başladı, ancak 1.5.3 sürümü Quack protokolünü ve quack extension'ını tanıttı; bunlar bir DuckDB sürecinin veritabanları için sunucu görevi görmesini sağlıyor. Duyuruya göre 2.0, performans ve stabilite çalışmalarıyla bu protokolün cilalanmış bir sürümünü sunuyor; ayrıca tek komutla uzak bir veritabanına bağlanan ve oturumu ona geçiren yeni bir CONNECT ifadesi geliyor. CONNECT yalnızca Quack'a değil; PostgreSQL ve MySQL'e de bağlanabiliyor ve yeni uzak pushdown optimizer'ı, tabloların tamamını hat üzerinden sürüklemek yerine sorguları o sunuculara gönderiyor. CLI, hızlı client-server kurulumları için -serve ve -connect argümanları ekliyor. Güvenlik tarafında sunucu varsayılan olarak localhost'u dinliyor; allow_other_hostname ile doğrudan açığa çıkarmak yalnızca test için tasarlandı ve ekip gerçek dağıtımlarda TLS sonlandıran bir reverse proxy öneriyor.

Asenkron I/O ve yetişkin bir VARIANT

Sürüm 2.0, Parquet ve CSV dosyalarını okumak için asenkron I/O getiriyor. I/O katmanı artık sorgu işlemeden bağımsız ölçekleniyor ve arka planda birden fazla okumayı havada tutuyor; ekip bunun uzak okumalara çok daha fazla paralellik kazandırdığını ve s3:// gibi object storage yollarındaki sorguları belirgin biçimde hızlandırdığını söylüyor.

İlk kez 1.5'te görünen VARIANT tipi artık tamamen entegre. JSON gibi şemasız, yarı yapılandırılmış verileri kolonlu (columnar) performansı koruyarak saklıyor: DuckDB verinizdeki ortak yapıyı tespit ediyor ve parçalıyor (shred), böylece iyi sıkıştırılıyor ve hızlı çalışıyor. Bu boru hattı uçtan uca çalışıyor: depolamadan doğrudan parçalanmış yürütmeye kadar, Parquet için parçalanmış VARIANT okuma ve yazmayla birlikte, bir dizi variant_* fonksiyonu tarafından destekleniyor.

Agent'lar ve extension'lar için tasarlanmış bir parser

2.0 CLI, Claude Code, Codex veya Cursor gibi bir kodlama agent'ının kendisini yönettiğini algılıyor ve agent moduna geçiyor: şişirilmiş kutular yerine kompakt Markdown tabloları, sonuçlar kesildiğinde açık uyarılar, kontrolden çıkan sorguların erken sonlandırılması, hataların JSON olarak bildirilmesi ve bir agent'ın bekleyip beklemediğine karar verebilmesi için uzun sorgulardan önce beklenen maliyet tahminleri. Ekibin TPC-H üzerindeki deneylerinde agent modu, bir modelin okuması gereken çıktı miktarını yüzde 59 azalttı. Kullanıcılar bu modu -agent ile zorla açabilir veya -no-agent ile kapatabilir.

Sahne arkasında, 1.5'te opsiyonel bir özellik olarak tanıtılan DuckDB'ye ait PEG tabanlı SQL parser'ı, PostgreSQL kökenli parser'ın yerini alarak varsayılan oluyor. Extension'lar artık dilbilgisinin kendisine bağlanabiliyor; bu da tamamen yeni SQL sözdizimi sunan extension'ların önünü açıyor ve hata mesajları hassas kaynak konumları kazanıyor. Yeni parser, eskisi gibi davranacak şekilde tasarlandı. Trigger'lar da bu sürümle geliyor.

DuckDB, Android ve iOS'ta

Aynı gün dev.to'da yayınlanan bir eğitim farklı bir açıyı ele alıyor: DuckDB 2.0'ı mobil bir analitik motor olarak gömmek. Yazar, Android'de JDBC artifact'ı kullanan bir Kotlin kurulumunu ve iOS'ta Swift Package Manager kurulumunu anlatıyor; yerel Parquet dosyalarını sorgulayarak toplama işlemlerinin ağ bağlantısı olmadan cihaz üzerinde çalışmasını sağlıyor. Yazı, bir Pixel 7 üzerinde bir milyon satırla yapılan kıyaslama sonuçlarını veriyor — sayma ve group-by içeren bir sorguda DuckDB için yaklaşık 90ms, SQLite için yaklaşık 1.800ms — ancak bunlar resmi değil, yazarın rakamları. Pratik öneriler arasında memory_limit'i açıkça ayarlamak (örnek 256MB kullanıyor), mobilde bir spill dizini sağlamak, DuckDB yalnızca append-only analitikte iyi olduğu için değiştirilebilir uygulama durumunda SQLite veya Room'u kullanmaya devam etmek, dosya yolları için prepared statement kullanmak ve SQLite'ın yeterince hızlı olduğu yaklaşık 10.000 satırın altında DuckDB'yi tamamen atlamak yer alıyor.

Neden önemli

2027 sonuna uzanan LTS penceresi, ekiplere gittikçe daha alışılmadık yerlerde — dizüstü bilgisayarlarda, veri boru hatlarında, object storage analitiğinde ve artık telefonlarda — karşımıza çıkan bir veritabanı için güvenilir bir hedef veriyor. Quack protokolü ve uzak pushdown optimizer'ı DuckDB'yi tek süreçli kullanımın ötesine taşıyor, VARIANT JSON'ın esnekliği ile kolonlu hız arasındaki boşluğu daraltıyor ve agent modu, SQL'in artık giderek büyüyen bir kısmının insanlar değil modeller tarafından yazılıp okunduğunun samimi bir itirafı. Özellikle gömülü analitik için istikrarlı, destekli bir sürüm eksik olan parçaydı ve artık geldi.

  • #duckdb
  • #databases
  • #olap
  • #sql
  • #mobile