DuckDB
- title
- DuckDB
- type
- entity
- summary
- Встраиваемая аналитическая SQL-СУБД (колоночная, векторизованная, ACID). Популярна в data science, в 2026 году получила клиент-серверный протокол (Quack)
- tags
- database, analytics, sql, embedded
- created
- 2026-05-13
- updated
- 2026-05-13
- lang
- ru
- translation_of
- duckdb
- source_updated
- 2026-05-13
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
DuckDB (duckdb.org) - встраиваемая аналитическая база данных: формат развёртывания как у SQLite, а профиль нагрузки - как у Postgres с аналитическими расширениями или BigQuery на ноутбуке. Первый релиз вышел в 2019 году; проект зародился в амстердамском CWI, а сейчас развивается под эгидой DuckDB Foundation при коммерческой поддержке MotherDuck и других компаний. Колоночное хранение, векторизованное выполнение, SQL с расширениями, лицензия MIT, единый бинарник или библиотека.
Изначальное позиционирование - без клиента, без сервера, без протокола: DuckDB живёт прямо внутри процесса на Python / R / JS / Java, а обращения к ней идут через C API или нативные интерфейсы конкретного языка. Это отлично подходило для интерактивных data-science задач и для шаблона "прикрутить DuckDB сбоку к приложению, чтобы выполнять SQL-запросы над его данными". Но схема работала хуже, когда несколько процессов пытались параллельно изменять один и тот же файл базы данных: DuckDB хранит состояние в оперативной памяти, и для параллельной записи потребовалась бы межпроцессная синхронизация.
В 2026 году DuckDB представила сетевой протокол Quack поверх HTTP (сейчас в core_nightly, доступен в v1.5.2, релиз для продакшена запланирован на v2.0 осенью 2026 года). Он позволяет запускать один экземпляр DuckDB в роли сервера, а остальные подключать как клиенты: несколько параллельно пишущих процессов, удалённые read-реплики, прямой доступ из браузера через WASM - и всё это без выхода за пределы API DuckDB. Это та же траектория "встраиваемая система обрастает протоколом", которую прошёл Redis (см. redis-cost-of-ambition о противоположной стороне этой истории), но продиктованная конкретной проблемой в UX, а не амбициями.
Связанные расширения
- pg_duckdb - расширение для Postgres, встраивающее DuckDB внутрь Postgres; тот самый "EleDucken", о котором шутят в посте про Quack.
- DuckLake - формат lakehouse в стиле DuckDB; Quack интегрируется в него, чтобы сервер DuckDB мог выступать в роли удалённого каталога DuckLake.
- DuckDB-Wasm - дистрибутив для браузера; получает нативную поддержку Quack, благодаря чему вкладка браузера может обращаться к серверу DuckDB по сети.
Обработанные статьи
- duckdb-quack-protocol - Quack: клиент-серверный протокол поверх HTTP, параллельная запись из нескольких источников, обходит Arrow Flight SQL на пакетных операциях и превосходит Postgres (до 8 потоков) на небольших транзакциях