Что такое СУБД Greenplum? Зачем она нужна в больших проектах DWH? Чем отличается от ClickHouse?
DWH помогает собрать, структурировать и сохранить все имеющиеся в компании данные в единую версию правды, чтобы вывести бизнес-аналитику на новый уровень и получить преимущество в принятии решений.

В случае успешного внедрения проекты DWH открывают компаниям новые возможности и приносят прибыль, однако, процент неудачных внедрений также довольно велик.
Ошибки возникают не только в результате того, что первоначально не были учтены возможные изменения в бизнес-процессах, потребностях и целях компании, но и из-за некорректного выбора стека технологий и СУБД.
Порядок хранения данных выбирается в соответствии с разными сценариями работы — запросами, разным объемом данных, количеством транзакций, необходимостью обновлений данных.
В статье расскажем вам о популярной сейчас СУБД Greenplum и о том, в каких случаях строить хранилища на ее основе.
Что такое СУБД Greenplum
Greenplum— массово-параллельная реляционная СУБД на основе PostgreSQL, которая подходит для хранения и обработки больших объемов данных (до сотен ТБ).
Массово-параллельные СУБД обычно используются для предиктивной аналитики, отчетности по большим объемам данных, построения озер данных и корпоративных хранилищ данных, разработки аналитических моделей по множеству разнообразных данных. Массово-параллельная архитектура (Massive Parallel Processing, MPP) характеризуется физическим разделением памяти узлов (нод), объединенных в кластер. СУБД Greenplum — это несколько БД PostgreSQL, объединенных в кластер, где каждый узел кластера имеет собственную память, ОС и жесткие диски. Для пользователей же предоставляется унифицированный интерфейс базы данных. Кластер Greenplum включает следующие компоненты: Сегменты в СУБД объединяются по принципу «без разделения ресурсов» (Shared Nothing), то есть без использования общих устройств и памяти. Сегменты делятся на основные (primary) и зеркала (mirror). Primary-сегмент обрабатывает данные и передает результаты мастеру. Ему соответствует зеркало (Mirror segment instance), которое хранит копию данных из основного сегмента и включается в работу при отказе Primary. Предположим, у вас есть коробка с 1200 перемешанными визитками сотрудников из разных компаний. Ваша задача — перебрать все карточки и найти имена всех, кто работает в ООО Ромашка. Если просматривать одну визитку в секунду, вам потребуется 20 минут, чтобы найти всех сотрудников Ромашки. А теперь разложим их на 10 равных стопок по 120 визиток и пригласим 10 человек перебрать их в поисках нужных. Если бы они одновременно просматривали визитки, каждый в своей стопке, со скоростью 1 визитка в секунду, то нужные нам визитки были бы найдены примерно за 2 минуты. Скорость обработки повысилась бы в 10 раз. *** По такому же принципу работает и архитектура Greenplum: Распределение данных порциями по всем нодам кластера в MPP-СУБД позволяет повысить скорость их обработки и снизить нагрузку на хранилище данных. Большие хранилища данных Классические СУБД справляются с оперативными транзакциями и подходят для быстрого построения отчетов. Но при увеличении объемов данных, DWH на стандартных СУБД исчерпывают свою мощность и не способны обеспечивать должную производительность. Загрузка данных с трудом укладывается в отведенные временные интервалы. Массово-параллельная архитектура Greenplum и мощные алгоритмы оптимизации подходят для быстрой обработки «тяжёлых» аналитических запросов при работе с многотерабайтными массивами данных. СУБД поддерживает реляционную модель данных и совместима с PostgreSQL, а значит, и со всеми BI-системами и ETL-инструментами. Select an Image СУБД подойдет для хранилищ больше 1ТБ, так как именно на таких объемах продемонстрирует оптимальное соотношение стоимости владения и производительности. Имеет следующие ограничения: Масштабирование DWH, реализованные на Greenplum, обычно используются для компаний, где присутствует большое количество источников данных, их объемы постоянно растут, и необходим увеличенный срок их хранения. Чтобы обработать растущие объемы данных, объединить несколько хранилищ или поддерживать новые аналитические приложения, необходимо увеличивать емкость имеющейся СУБД. Greenplum дает возможность легко добавлять новые серверы и сегменты без ограничений в количестве, так как даже при выходе из строя узла кластера, другие узлы справятся с ростом нагрузки. Чем больше новых узлов добавлено, тем быстрее работает Greenplum. Сохранность и точность данных Greenplum обеспечивает отказоустойчивость благодаря наличию резервного мастера и зеркал для каждого сегмента. СУБД полностью соответствует принципам ACID — Atomicity, Consistency, Isolation, Durability — набору принципов, которые определяют, как должна работать транзакция в СУБД. Одни и те же таблицы в Greenlum могут быть использованы для записи и чтения, без страха потерять данные. СУБД подойдет для реализации операций, в которых важна точность и структурность данных, например, для финансовых операций. Предиктивная аналитика В банках, здравоохранении и крупном ритейле важен предиктивный анализ, при котором на основе текущих и прошлых данных или событий прогнозируются будущие, например, в директ-маркетинге, рекламе, анализе рисков, управлении инвестиционными рисками, выявлении мошенничества, финансовом скоринге. Greenplum позволяет сохранить исторические данные и обрабатывать их для глубокого исторического анализа. Проекты Big Data Greenpum подойдет в случае возникновения новых задач в Big Data, когда пользователям необходимы все имеющиеся, структурированные и полуструктурированные данные. СУБД позволяет не только хранить огромные объемы информации, но и активно работать с данными из нескольких источников с минимальной предварительной обработкой большому количеству пользователей. *** Как open-source проект, Greenplum позволяет создавать на ее основе различные, в том числе коммерческие, форки (новое ПО на базе исходного). В стремлении решать реальные задачи российского бизнеса, компания Аренадата Софтвер, второй по объему вклада разработчик Greenplum в мире, предлагает Arenadata DB (ADB) — аналитическую распределенную СУБД на основе Greenplum. ADB — российский продукт, зарегистрированный в Реестре Минцифры. СУБД реализована на кластере из множества серверов, подходит для построения корпоративного хранилища данных, BI-аналитики, Ad hoc запросов и проектов data science. Распространяется в двух редакциях: свободная Community и коммерческая Enterprise. Обладает следующими преимуществами относительно классической Greenplum: ClickHouse- колоночная СУБД с открытым кодом, позволяющая выполнять аналитические запросы в режиме реального времени на структурированных больших данных. Наравне с Greenplum активно используется при проектировании современных хранилищ данных благодаря высокой производительности, скорости обработки данных и возможностям масштабируемости. По версии DB-Engines Ranking, обе СУБД входят в ТОП-50 самых популярных в мире. ClickHouse обладает следующими особенностями: Самая быстрая колоночная OLAP-СУБД Колоночное хранение данных позволяет при выполнении запроса считывать данные только тех столбцов, которые непосредственно участвуют в этом запросе. Хранение большого объема данных при этом не будет сказываться на скорости их чтения. СУБД способна обрабатывать до 1 млрд строк в секунду на одном сервере и до 2ТБ в секунду на кластере из 400 узлов. Оптимизирует хранение данных и запросы СУБД позволяет сжимать одинаковые или похожие данные благодаря различным способам хранения смежных значений в столбце. Поддерживает специализированные кодеки (Delta, DoubleDelta, GCD, Gorilla, T64) — программные инструменты для кодирования и декодирования данных, которые позволяют еще больше уменьшить объемы данных. Физическая сортировка данных по первичному ключу позволяет быстро получать конкретные значения или диапазоны, а также легко добавлять данные в таблицу. Эффективно использует ресурсы СУБД спроектирована для работы не только на оперативной памяти, но и на обычных жестких дисках. Это обеспечивает низкую стоимость хранения на 1ГБ данных. К тому же данные в ClickHouse не только хранятся по столбцам, но и обрабатываются по векторам — фрагментам столбцов, что позволяет более эффективно использовать ресурсы процессора. Масштабируется до совокупного объема данных в несколько Пбайт Для масштабирования в СУБД достаточно просто добавить новые узлы в кластер. ClickHouse поддерживает горизонтальное масштабирование: распределенную обработку запроса за счет механизма шардирования. При шардировании данные расположены на разных сегментах (шардах). Каждый сегмент может представлять собой группу реплик, которые используются для отказоустойчивости, а запрос будет выполнен на всех сегментах параллельно. Не поддерживает ACID-требования и точечные операции обновления и удаления данных (UPDATE и DELETE) В ClickHouse нет транзакций, то есть возможностей провести несколько операций с БД одновременно, так как СУБД ориентирована на считывание данных. Это может ограничить функционал СУБД, например, в финансовой сфере, где необходимо отследить операции клиентов. СУБД не предоставляет возможность точечно изменять или удалять записанные данные. Есть массовое удаление и изменение данных для очистки неактуальной информации или соответствия GDPR (Общий регламент по защите персональных данных). Сравним Greenplum и ClickHouse по ключевым критериям: Исходя из приведенных выше особенностей двух СУБД и сравнительной таблицы можно сказать, что каждая из них подходит для своих типовых сценариев использования. Надежная Greenplum с возможностями обработки больших объемов данных подойдет для: Высокоскоростная ClickHouse будет подходящей для: Архитектура и инструменты для построения хранилища данных всегда подбираются индивидуально в зависимости от целей, требований и возможностей бизнеса. Команда Qlever Solutions разрабатывает и внедряет корпоративные хранилища данных, используя масштабируемые технологии и гибридные методологии, адаптируя лучшие практики под уникальные задачи и любые объемы данных.

Кому подойдет СУБД Greenplum
Greenplum vs ClickHouse
Сравнение Greenplum и ClickHouse

Проектируем и внедряем DWH под ключ