
A DuckDB, a nyílt forráskódú, beágyazott analitikai adatbázis – amelyet gyakran „SQLite az analitikához” néven emlegetnek – elérte az 1.4-es verziót, kódnevén „Andium”. Ez a kiadás hosszú távú támogatással (LTS – Long Term Support) érkezik, ami egy év közösségi támogatást jelent. A frissítés több régóta várt funkciót hoz, köztük a teljes adatbázis titkosítását, a SQL MERGE INTO utasítás bevezetését, valamint jelentős teljesítmény- és tárolási fejlesztéseket.
Hosszú távú támogatás a stabilitás érdekében
A DuckDB mostantól minden második kiadást LTS-verziónak jelöl. Ez azt jelenti, hogy az ilyen verziók egy évig közösségi támogatást élveznek, míg a DuckDB Labs ezen túlmenően is biztosít opcionális támogatást. Ez fontos mérföldkő, hiszen a DuckDB egyre gyakrabban jelenik meg éles, termelési környezetekben, ahol kulcsfontosságú a hosszabb karbantarthatóság és a stabil működés.
Titkosítás AES-256-tal
Az egyik legnagyobb újítás az adatbázisfájlok titkosításának bevezetése. Az új funkció az ipari szabványnak megfelelő AES-256 GCM algoritmust használja, amely lefedi a fő adatbázisfájlt, a naplófájlt (WAL – Write Ahead Log), sőt még az ideiglenes fájlokat is.
A titkosítás a ENCRYPTION_KEY paraméterrel adható meg az ATTACH parancsban, például:
ATTACH 'encrypted.db' AS enc_db (ENCRYPTION_KEY 'quack_quack');
A DuckDB képes használni a beépített mbedtls könyvtárat, de az OpenSSL implementáció – a hardveres gyorsítás révén – jóval nagyobb teljesítményt kínál.
MERGE INTO – rugalmasabb adatkezelés
Az új kiadás támogatja a MERGE INTO SQL utasítást, amely rugalmasabb lehetőséget ad frissítések (UPDATE), beszúrások (INSERT) és törlések (DELETE) kombinálására. Míg korábban az INSERT INTO ... ON CONFLICT jelentette az egyetlen lehetőséget, a MERGE használatával tetszőleges feltétel alapján végezhetők az úgynevezett upsert műveletek. Ez különösen hasznos OLAP-rendszerekben, ahol nincs szükség elsődleges kulcsokra, de fontos a dinamikus adatkezelés.
Iceberg írási támogatás
A duckdb-iceberg kiterjesztés immár nemcsak olvasni, hanem írni is tud az Iceberg adattárakba. Ez lehetővé teszi az adatok másolását DuckDB, DuckLake és Iceberg között. Bár az Iceberg oldalon a sémát kézzel kell létrehozni, a fejlesztés nagy előrelépést jelent az adattárak közötti integrációban.
Hasznossági fejlesztések
A kiadás számos kisebb, de hasznos újítást is tartalmaz. A parancssoros kliens (CLI) mostantól folyamatjelző sávot és ETA-t (Estimated Time of Arrival) mutat, amely Kalman-szűrőt alkalmaz a pontosabb becslés érdekében.
Új ablakfüggvényként megjelent a FILL, amely képes interpolálni a hiányzó értékeket, így például egy 1 és 42 közötti hiányzó adat automatikusan 21-re egészül ki.
Emellett új Teradata csatlakozó is elérhető, amelyről külön blogbejegyzés várható.
Teljesítmény és optimalizálás
A rendezési algoritmust teljesen újraírták, immár kirányú összefésüléses (k-way merge) módszert használva, amely jelentősen csökkenti az adatmozgatást és jobban skálázódik több szálon. A közös táblakifejezések (CTE – Common Table Expressions) alapértelmezetten materializálódnak, ami egyszerre javítja a teljesítményt és kiküszöböli az inline feldolgozás hibáit.
Az in-memory táblák is előrelépést kaptak: mostantól támogatják a checkpointolást és az opcionális tömörítést, ami lehetővé teszi a törölt adatok helyének felszabadítását is.
Terjesztési fejlesztések
A macOS binárisok mostantól Apple-notarizáltak, ami csökkenti a biztonsági figyelmeztetéseket böngészős letöltéskor. A Python kliens külön tárhelyre került (duckdb/duckdb-python), így a nyelvi integrációk fokozatosan önálló repozitóriumokban kapnak helyet.
Összegzés
A DuckDB 1.4 „Andium” kiadás egyszerre jelent nagy előrelépést a biztonságban, a teljesítményben és a használhatóságban. Az LTS modell bevezetése biztosítja, hogy a közösség és a vállalati felhasználók hosszabb távon is stabil alapokra építhessék rendszereiket.
A részletes kiadási közlemény itt olvasható: DuckDB 1.4 bejelentés.
