DuckDB 1.4 „Andium” – új LTS kiadás titkosítással, MERGE utasítással és számos fejlesztéssel

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

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.