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 обязательно


Обсуждение (18) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.6, Кошкажена (?), 16:02, 22/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В этой нише у нее конкурентов нет?
     
     
  • 2.9, Голдер и Рита (?), 16:28, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть! MonetDB, SQLite, ClickHouse. 🤥
     
     
  • 3.26, Мартин (-), 17:14, 23/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А SQLite поддерживает шифрование БД? Насколько это востребованная функция сегодня? Как вообще защищаются базы данных тех же пользователей сайтов? Например, если я сделал сайт, залил его на какой-то хостинг... У хостинга, понятное дело, всякие анти-ddos фичи, анализаторы трафика и т.п. Но если хостинг взломали - значит, хакеры получат всю БД пользователей сайтов и прочие их данные? Для этого и нужно шифрование БД?
     
     
  • 4.28, Голдер и Рита (?), 09:35, 24/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А SQLite поддерживает шифрование БД?

    ● SQLCipher — https://github.com/sqlcipher/sqlcipher
    ○ SEE (SQLite Encryption Extension)
    > Насколько это востребованная функция сегодня?

    Очень востребована.
    > Как вообще защищаются базы данных тех же пользователей сайтов?

    ▪︎ Transparent Data Encryption (TDE)
    ▪︎ Application-level encryption (ALE)
    ▪︎ Disk encryption
    ▪︎ TLS/SSL

     
  • 3.27, Кошкажена (?), 00:09, 24/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Есть! MonetDB, SQLite, ClickHouse. 🤥

    sqlite не для аналитики, clickhouse не in-process.

     
     
  • 4.29, Голдер и Рита (?), 09:45, 24/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > sqlite не для аналитики

    Отлично подходит для локального анализа небольших данных, Extract, transform, load (ETL).
    > clickhouse не in-process

    https://clickhouse.com/chdb

     
  • 4.30, Голдер и Рита (?), 09:48, 24/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > sqlite не для аналитики

    https://datasette.io/tutorials/data-analysis

     
  • 2.12, Аноним (12), 17:03, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    chDB
     
  • 2.13, Витюшка (?), 17:20, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Думаю не только в этой. Пока это самая передовая и инновационная из открытых баз данных. Но наверное ClickHouse, но это немного другая категория (не встраиваемая).
     
     
  • 3.14, Аноним (12), 17:25, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    chDB :)
    embedded ClickHouse
     

  • 1.15, Аноним (15), 18:30, 22/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    gpg -d some.db
    // do something
    gpg -er user@example.com some.db
     
     
  • 2.16, Аноним (16), 18:37, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Wait while your query wil be completed... Any one query...
     
  • 2.19, Аноним (-), 22:49, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > gpg -d some.db
    > // do something
    > gpg -er user@example.com some.db

    Теперь мы возьмем базу в терабайт размером. И забенчмаркаем RPS этих операций. Не забыв подумать как не дать атакующему стырить базу без знания ключа при, допустим, крахе системы.

     
     
  • 3.22, Zeke Fast (?), 02:07, 23/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Кому-то необходимо разобраться в отличиях транзакционных БД от аналитических...
     
     
  • 4.23, Аноним (-), 12:31, 23/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Кому-то необходимо разобраться в отличиях транзакционных БД от аналитических...

    А кому-то необходимо подумать о том что если данные валяются расшифрованными, целиком, дофига времени - толку от такого шифрования будет мягко говоря немного.

    Видели картинку "Windows XP with firewall"? Спросите у гугли, он покажет. Это та которая с пафосной металлической дверью и ... фиговенькой изгородью вокруг :)

     
     
  • 5.24, torvn77 (ok), 15:17, 23/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Даже если это так, но duckdb эффективно перерабатывет данные то она всё равно полезна, ну не везде(это если претензии правильные или их потом не поправят, но вообще я сомневаюсь что разработчики совсем идиоты и не подумали о базовых опасностях)
     

  • 1.25, torvn77 (ok), 15:19, 23/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Одним словом разработчики DuckDB проанализировали современные DB и собрали лучшее в одной системе?
     
     
  • 2.31, Гость (??), 14:13, 28/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Аналитический запрос удовлетворён. Хороший продукт.
     

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



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

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