DuckDB — реляционная аналитическая СУБД с открытым исходным кодом, ориентированная на встраивание в приложения и эффективную обработку аналитических запросов в локальном окружении. Проект разрабатывался с упором на выполнение OLAP-запросов внутри пользовательских процессов, часто рядом с приложениями на языках высокого уровня и окружениями для анализа данных. Архитектура DuckDB оптимизирована для выполнения сложных агрегаций и сканирования столбцовых данных с низкими накладными расходами на ввод-вывод и без необходимости отдельного серверного развёртывания.
СУБД поддерживает стандартный SQL и предоставляет исполнение запросов с использованием колоночного формата хранения и векторизованных алгоритмов. DuckDB ориентирована на работу с файлами распространённых форматов данных, таких как Parquet и CSV, и может интегрироваться с языками программирования и аналитическими инструментами для выполнения интерактивного анализа и подготовки данных. Благодаря встраиваемой модели она часто применяется в сценариях, где требуется локальная аналитика, обработка больших по объёму таблиц и взаимодействие с файловыми хранилищами без развертывания отдельной кластерной инфраструктуры.
- Встраиваемая архитектура: библиотека, которую можно встроить в процессы приложений, не требующая отдельного серверного процесса.
- Колонко-ориентированное хранение: оптимизация для аналитических нагрузок, эффективное сжатие и чтение столбцов данных.
- Поддержка SQL: выполнение стандартных SQL-запросов с возможностями агрегации, оконных функций и соединений.
- Работа с форматов данных: нативная поддержка Parquet, CSV и других распространённых форматов для прямого чтения и записи.
- Векторизованные алгоритмы: использование блоковой обработки данных для повышения пропускной способности и эффективности CPU.
- Интеграция с языками и инструментами: привязки к языкам программирования и средам анализа данных для упрощённого использования в аналитических пайплайнах.
- Отсутствие серверной инфраструктуры: подход «embedded», снижающий сложность развёртывания и администрирования.
- Оптимизация ввода-вывода: эффективное сканирование файлов и минимизация лишних операций ввода-вывода при анализе больших наборов данных.
- Транзакционная модель: базовая поддержка транзакций и согласованности внутри встраиваемого окружения.
- Открытый исходный код: развитие и использование под открытой лицензией, что позволяет проверять и адаптировать код под конкретные нужды.