PostgreSQL, ClickHouse и DuckDB для аналитики
Сравнение трёх open-source СУБД — PostgreSQL, ClickHouse и DuckDB — по производительности, масштабируемости, ACID, экосистеме и сценариям использования в 2025 году.
privacy
Эта заметка участвует в semantic memory.
AI Summary
🚀 TL;DR PostgreSQL — универсальная OLTP-СУБД с полной ACID и зрелой экосистемой, но слабой аналитической производительностью. ClickHouse — колоночная, высокоскоростная OLAP-СУБД от Яндекса, оптимизированная для чтения больших данных, но с ослабленной ACID. DuckDB — лёгкая колоночная СУБД для локальной аналитики на ноутбуке, без сервера и горизонтального масштабирования.
📖 Что это такое Материал — обзор и сравнение трёх лидеров open-source баз данных 2025 года для аналитических задач: PostgreSQL (объектно-реляционная), ClickHouse (колоночная, от Яндекса) и DuckDB (встраиваемая колоночная).
🔑 Ключевые факты
- PostgreSQL: объектно-реляционная модель, поддержка JSON/XML, наследование таблиц, пользовательские типы, функции на Python/C/JS/R и др.; полностью ACID; вертикальное масштабирование; экосистема pgAdmin, PostGIS, TimescaleDB, pg_vector; используется в e-commerce, финансах, гео, CMS.
- ClickHouse: колоночная архитектура + векторизация + SIMD; родился в Яндексе для Метрики (2016 — open-source); применяется в Uber, Netflix, Bloomberg, VK, Avito, Т-банк; слабая ACID (мутации создают новые версии строк); горизонтальное масштабирование через шардирование и репликацию.
- DuckDB: колоночная + векторизация + SIMD; встраивается в Python/R как библиотека (pip install duckdb); нет сервера и кластера; частичная ACID; с марта 2025 имеет собственный GUI.
- Тест ClickBench (≈100 млн строк, 70+ ГБ): Cold Run — DuckDB 372 с, ClickHouse 470 с, PostgreSQL 937 с; Hot Run — ClickHouse 372 с, DuckDB 470 с, PostgreSQL 937 с; сжатие: ClickHouse 13.48 ГиБ, DuckDB 22.03 ГиБ, PostgreSQL 99.18 ГиБ.
⚙️ Как это работает / применить
- PostgreSQL: вертикальное масштабирование; для аналитики больших данных требуется оптимизация или внешние инструменты; pgAdmin, psql, интеграция с Tableau/Power BI/Metabase.
- ClickHouse: «из коробки» для single-node аналитики; для кластера нужна настройка шардирования/репликации; SQL + клиентские библиотеки; сторонние GUI (agx и др.).
- DuckDB: pip install duckdb / install.packages("duckdb"); подключение к CSV/Parquet/Pandas; SQL-запросы внутри Python/R/Jupyter; собственный GUI с марта 2025.
- Комбинация: PostgreSQL (транзакции) → ClickHouse (аналитика).
- Альтернативы для специальных задач: CockroachDB, YugabyteDB, Apache Ignite, Apache Druid.
💡 Вывод и значение PostgreSQL — «СУБД по умолчанию» для типовых приложений и RAG (pg_vector). ClickHouse — лучший выбор для real-time аналитики, дашбордов, логирования на больших данных. DuckDB — «SQLite для дата-сайентистов»: идеален для локальной быстрой аналитики без инфраструктуры. Выбор зависит от приоритетов: ACID и универсальность (PostgreSQL), скорость чтения больших данных (ClickHouse) или локальная простота (DuckDB).
Автор: Рубаков Алексей, основатель NETRACK.