Greenplum vs Clickhouse: сравнение аналитических СУБД для Big Data

Big Data, Большие данные, Greenplum, SQL, обработка данных, PostgreSQL, ClickHouse, архитектура и аналитика больших данных, аналитические СУБД, , Школа Больших Данных Учебный Центр Коммерсант

Сходства и различия популярных реляционных аналитических СУБД с открытым исходным кодом: что общего у Greenplum с ClickHouse, чем они отличаются, что и когда выбирать.

Greenplum и Clickhouse: обзор возможностей для аналитики больших данных

Обе СУБД являются реляционными и относятся к классу OLAP-систем, т.е. ориентированы на аналитические варианты использования, т.е. чтение превалирует над записью. В OLAP-СУБД можно быстро записывать огромные объемы данных и считывать их. Однако, точечные изменения отдельных записей выполняются медленнее, чем в OLTP-системах. Поскольку OLAP-сценарии предусматривают соединения данных по очень большому количеству записей, колоночный способ хранения данных на диске предпочтителен для этих вариантов использования. Напомним, в СУБД, ориентированных на столбцы, данные хранятся на диске так, что каждый фрагмент данных представляет собой целый столбец. Поэтому все значения одного атрибута сущности будут сгруппированы вместе.

Таким образом, Greenplum и ClickHouse имеют следующие сходства:

  • являются реляционными СУБД с открытым исходным кодом;
  • ориентированы на аналитику больших данных, т.е. аналитические сценарии (OLAP) чтения больших массивов информации;
  • поддерживают колоночный способ хранения данных;
  • имеют массивно-параллельную архитектуру (MPP, Massively Parallel Processing) без разделения ресурсов. Эта архитектура отлично подходит для OLAP-сценариев, поскольку аналитические СУБД работают с огромными объёмами данных, которые постоянно растут. Чтобы быстро и экономично горизонтально масштабировать такую систему, ее лучше проектировать как сеть независимых серверов. Скорость вычислений в MPP-системе прямо пропорциональна числу узлов в кластере. Также MPP-архитектура обеспечивает высокую отказоустойчивость: кластер БД отвечает на запросы даже при отказе некоторых узлов.

Однако, при том, что Greenplum и ClickHouse обе являются реляционными MPP-СУБД, они существенно отличаются друг от друга. Например, в отличие от Greenplum, ClickHouse не поддерживает ACID-требования к транзакциям. Кроме того, ClickHouse не поддерживает ANSI SQL, который допускает произвольное неявное приведение между числовыми типами. А ClickHouse полагается на функции, имеющие несколько перегрузок вместо неявного приведения. Тем не менее, в официальной документации отмечено, что ClickHouse поддерживает декларативный SQL-подобный язык запросов, включая такие операторы, как GROUP BY, ORDER BY, подзапросы в разделах FROM, IN, JOIN, оконные функции и скалярные подзапросы. Зависимые подзапросы пока не поддерживаются. Greenplum же, буду основанной на PostgreSQL, полностью соответствует ACID-требованиям к транзакциям и поддерживает ANSI SQL.

С архитектурной точки зрения один экземпляр ClickHouse на несколько серверов, к которым напрямую приходят запросы пользователей. Для репликации данных и выполнения распределённых SQL-запросов в ClickHouse используется сервис синхронизации метаданных ClickHouse Keeper, аналогичный по функция Apache Zookeeper, но написанный на C++.

Greenplum представляет собой несколько экземпляров PostgreSQL, работающих как единая СУБД благодаря мастер-хосту, на котором развёрнут главный экземпляр PostgreSQL, называемый мастер-сегмент. Именно к мастер-сегменту подключаются пользователи и отправляют на него все SQL-запросы. Мастер-сегмент не содержит данных, а только принимает входящие подключения, собирает и систематизирует запросы, чтобы маршрутизировать их по сегментам, которые содержат фактические данные и выполняют запросы.

Таким образом, централизованная архитектура Greenplum работает медленнее, чем ClickHouse, из-за промежуточной маршрутизации запросов с мастер-сегмента на сегменты с данными. Впрочем, это не единственная причина очень быстрой работы ClickHouse. Дополнительное ускорение получается за счет физической сортировки данных по первичному ключу и векторному движку обработки запросов, оптимизированному для современных ЦП, а также распределенной и параллельной обработки запросов.

Данные в ClickHouse располагаются на разных сегментах, называемых шардами (shard). Шард – это группа копий данных (реплик) для обеспечения отказоустойчивости СУБД. SQL-запрос выполняется параллельно, т.е. одновременно на всех сегментах. Скорость работы ClickHouse на порядок выше, чем у Greenplum. Например, ClickHouse может обрабатывать до 1 миллиарда строк в секунду на одном сервере и до двух ТБ в секунду на кластере из 400 узлов. Примеры подобного тестирования производительности смотрите в нашей новой статье.

Сходства и отличия аналитических СУБД

Вспомнив ключевые характеристики и принципы работы Greenplum и ClickHouse, сравним их по ключевым критериям:

Критерий

ClickHouse

Greenplum

Описание

Колоночная реляционная СУБД от Яндекса

Платформа аналитической реляционной базы данных на основе PostgreSQL от компании VMWare Tanzu (ранее Pivotal)

Первый выпуск

2016 год

2005 год

Первичная модель управления данными

Реляционная

Реляционная

Вторичные поддерживаемые модели управления данными

СУБД временных рядов, о чем мы подробнее рассказываем здесь

Документо-ориентированная СУБД

Пространственная СУБД

Лицензия

Открытый исходный код

Открытый исходный код

Поддерживаемые ОС на сервере

FreeBSD, Linux, MacOS

Linux

Поддерживаемые языки программирования

C#, C++, Elixir, Go, Java, JavaScript (Node.js), Kotlin, Nim, Perl, PHP, Python, R, Ruby, Scala

C, Java, Perl, Python, R

Поддержка хранимых процедур и триггеров

нет

да

Поддержка MapReduce

нет

да

Обеспечение согласованности

Мгновенная согласованность

Мгновенная согласованность

Внешние ключи

нет

да

Соответствие ACID

нет

да

Параллелизм

да

да

Хранение данных в памяти

да

нет

Управление доступом

права доступа для пользователей и ролей                   

детальные права доступа в соответствии со стандартом SQL

Поддержка схемы данных

да

да

Предопределенные типы данных

да

да

Поддержка XML

нет

да

Первичные индексы

да

да

Вторичные индексы

да, при использовании движка MergeTree

да

Поддержка ANSI SQL

нет

да

API и другие методы доступа

HTTP, gRPC, собственный протокол JDBC, ODBC

JDBC, ODBC

Соединения таблиц

Оператор JOIN поддерживается, но не очень хорошо: правая таблица должна помещаться в память одного сервера. Невозможно соединить 2 таблицы, если они больше памяти одного сервера

Отлично обрабатывает локальные и распределенные запросы с JOIN-операторами

Скорость обработки

Работает очень быстро, время отклика менее 200 миллисекунд

Скорость зависит от объема данных, время отклика до пары десятков секунд

Типовые сценарии использования

Аналитика данных в реальном времени

Мониторинг технических метрик

Обработка данных с IoT-устройств и промышленных датчиков

Предиктивная аналитика

Прогнозирование событий

Скоринг событий

Предоставление данных для BI-дэшбордов

Таким образом, архитектурные отличия рассмотренных СУБД обусловливают разные сценарии применения. Greenplum отлично работает в качестве корпоративного хранилища данных, позволяя оперативно загружать в него огромные объемы информации и анализировать их. Однако, эти SQL-запросы выполняются не настолько быстро, как в колоночной СУБД от Яндекса – ClickHouse, которая может обрабатывать несколько десятков ГБ в секунду. Поэтому эта СУБД отлично подходит для построения DWH, критичного к малейшим задержкам, обеспечивая аналитику больших данных в реальном времени.

Освойте администрирование и эксплуатацию ClickHouse и Greenplum с Arenadata DB для аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://arenadata.tech/about/blog/subd-dlya-analitiki-greenplum-ili-clickhouse/
  2. https://db-engines.com/en/system/ClickHouse%3BGreenplum
  3. https://clickhouse.com/docs/ru/development/architecture
Поиск по сайту