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.

Мои мысли

graph

Карта связей