EnglishРусский Map

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 потоков) на небольших транзакциях
Sub-pages