ClickHouse

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: clickhouse.com

ClickHouse — высокопроизводительная колонко-ориентированная система управления базами данных для онлайн-аналитической обработки (OLAP), разработанная для выполнения быстрых SQL-запросов и агрегаций над большими объёмами данных в реальном времени. Архитектура ClickHouse ориентирована на считывание и обработку больших блоков колонок с минимальными затратами ввода‑вывода, что обеспечивает высокую производительность при аналитических рабочих нагрузках, включая отчётность, мониторинг и анализ событий.

Проект реализует множество оптимизаций для хранения, сжатия и выполнения запросов: сжатие данных в колонках, объединение партиций, индексирование по минимальным и максимальным значениям, векторные и многопоточные алгоритмы выполнения, а также распределённые и реплицированные конфигурации для масштабирования и отказоустойчивости. ClickHouse поддерживает язык запросов, совместимый с SQL-подобной семантикой, расширяемые функции агрегации, оконные функции и средства для интеграции с потоковыми и пакетными источниками данных.

  • Колонко-ориентированное хранение: данные хранятся по столбцам для эффективной агрегации и сжатия.
  • Высокая производительность: многопоточное выполнение, векторные операции и оптимизации ввода‑вывода для работы с терабайтами данных.
  • Сжатие и кодирование: несколько алгоритмов сжатия и форматов кодирования для снижения объёма хранимых данных.
  • Дистрибуция и репликация: поддержка шардинга и репликации для масштабирования и обеспечения доступности.
  • Индексация диапазонов: мелкие индексы по партициям/сегментам для ускорения сканирования диапазонов значений.
  • SQL-подобный язык: поддержка SELECT с агрегациями, JOIN, оконных функций и пользовательских выражений.
  • Функции агрегации и аналитики: широкая библиотека агрегатных и статистических функций, включая специализированные агрегаты для частотных и временных рядов.
  • Интеграция со стэком данных: возможности загрузки из потоковых систем, файлов и ETL-инструментов, а также экспорт результатов в различные форматы.
  • Управление хранением: механизмы партиционирования, TTL и фонового слияния сегментов для поддержания производительности и контроля за ёмкостью.
  • Плагины и расширяемость: возможность добавления пользовательских функций и интеграции с внешними системами через коннекторы и драйверы.
Подробнее