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

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 400
Зарегистрирован: 20.08.2022

#

Релиз СУБД DuckDB 1.4.0 с поддержкой шифрования БД
Дата публикации:Mon, 22 Sep 2025 15:14:56 +0300

Опубликован выпуск СУБД 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) теперь материализуются по умолчанию.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63922

Жизнь за Нер'зула!

Ответить