The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз СУБД DuckDB 1.4.0 с поддержкой шифрования БД

22.09.2025 15:14

Опубликован выпуск СУБД DuckDB 1.4.0, ориентированной на выполнение аналитических запросов и концептуально напоминающей SQLite. DuckDB сочетает такие свойства SQLite, как компактность, подключение в форме встраиваемой библиотеки, хранение БД в одном файле и CLI-интерфейс, с возможностями и оптимизациями для выполнения аналитических запросов, охватывающих значительную часть хранимых данных, например, выполняющих агрегирование всего содержимого таблиц или слияние нескольких больших таблиц. Код проекта написан на языке C++ и распространяется под лицензией MIT.

DuckDB предоставляет расширенный диалект языка SQL, включающий дополнительные возможности для обработки очень сложных и длительно выполняемых запросов. Возможно использование сложных типов (массивы, структуры, объединения), а также выполнение произвольных и вложенных коррелирующих подзапросов. Поддерживается одновременное выполнение нескольких запросов, выполнение запросов напрямую из файлов в форматах CSV и Parquet. Доступна поддержка импорта из СУБД PostgreSQL.

Проектом используется оболочка из SQLite, парсер из PostgreSQL, компонент Date Math из MonetDB, своя реализация оконных функций (на базе алгоритма Segment Tree Aggregation), обработчик регулярных выражений на основе библиотеки RE2, собственные оптимизатор запросов, MVCC-механизм управления одновременным выполнением заданий (Multi-Version Concurrency Control), а также векторизованный движок выполнения запросов на базе алгоритма Hyper-Pipelining Query Execution, позволяющий в одной операции разом обрабатывать большие наборы значений.

В новой версии:

  • Добавлена поддержка хранения файлов БД в зашифрованном виде. Для шифрования используется алгоритм AES-256 в режиме GCM. Шифруется не только основной файл с данными, но и WAL-логи и временные файлы. Ключи для шифрования БД задаются командой ATTACH через параметр ENCRYPTION_KEY.
    
       ATTACH 'encrypted.db' AS enc_db (ENCRYPTION_KEY 'quack_quack');
    
  • Добавлена поддержка команды "MERGE INTO", которая может применяться как альтернатива выражению "INSERT ... ON CONFLICT", не требующая первичного ключа и работающая с произвольными условиями слияния. Команда "MERGE INTO" позволяет создавать условные SQL-выражения, объединяющие в одном выражении операции INSERT, UPDATE и DELETE. Например, при помощи MERGE можно организовать слияние двух таблиц, вставляя недостающие записи и обновляя существующие.
    
       WITH deletes(item_id, delete_threshold) AS (VALUES (10, 3000))
           MERGE INTO Stock
               USING deletes USING (item_id)
           WHEN MATCHED AND balance < delete_threshold
               THEN DELETE
           RETURNING merge_action, *;
    
  • В дополнение для работы с таблицам в формате Apache Iceberg добавлена поддержка операций записи (ранее поддерживалось только чтение), что позволяет переносить данные из Iceberg в DuckDB и обратно.
  • В клиент командной строки добавлен индикатор прогресса выполнения операции с прогнозированием времени, оставшегося до завершения.
  • Добавлена оконная функция "FILL", которую можно использовать для интерполяции пропущенных значений в упорядоченных окнах.
    
       FROM (VALUES (1, 1), (2, NULL), (3, 42)) t(c1, c2)
       SELECT fill(c2) OVER (ORDER BY c1) f;
       1 
       21
       42
    
  • Реализовано дополнение Teradata Connector для подключения к базам данных Teradata. Дополнение позволяет манипулировать таблицами, выполнять запросы и запускать SQL-команды напрямую в Teradata, используя DuckDB.
  • Добавлена поддержка фиксации состояния (checkpoint) таблиц, хранимых в памяти, что позволило реализовать поддержку сжатия. Кроме того, при фиксации состояния выполняется чистка удалённых строк и высвобождение места после операций удаления.
    
       ATTACH ':memory:' AS memory_compressed (COMPRESS);
    
  • Предложено несколько оптимизаций производительности: Реализация сортировки переведена на использование алгоритма многопутевого слияния (k-way merge sort), сокращающего перемещение данных. Обобщённые табличные выражения (Common Table Expression, CTE) теперь материализуются по умолчанию.


  1. Главная ссылка к новости (https://duckdb.org/2025/09/16/...)
  2. OpenNews: Релиз СУБД DuckDB 1.2.0
  3. OpenNews: Атакующие получили контроль над NPM-пакетами проекта DuckDB и опубликовали вредоносные выпуски
  4. OpenNews: Проект Redka развивает реализацию протокола и API Redis поверх SQLite
  5. OpenNews: Выпуск СУБД SQLite 3.50
  6. OpenNews: Google использовал большую языковую модель для выявления уязвимости в SQLite
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63922-duckdb
Ключевые слова: duckdb, database, sqlite
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (6) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.6, Кошкажена (?), 16:02, 22/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В этой нише у нее конкурентов нет?
     
     
  • 2.9, Голдер и Рита (?), 16:28, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть! MonetDB, SQLite, ClickHouse. 🤥
     
  • 2.12, Аноним (12), 17:03, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    chDB
     
  • 2.13, Витюшка (?), 17:20, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Думаю не только в этой. Пока это самая передовая и инновационная из открытых баз данных. Но наверное ClickHouse, но это немного другая категория (не встраиваемая).
     
     
  • 3.14, Аноним (12), 17:25, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    chDB :)
    embedded ClickHouse
     

  • 1.15, Аноним (15), 18:30, 22/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    gpg -d some.db
    // do something
    gpg -er user@example.com some.db
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру