Greenplum
Greenplum — это база данных с массовой параллельной обработкой, построенная на PostgreSQL с возможностью масштабирования до рабочей нагрузки на уровне нескольких петабайт и обеспечивает доступ к кластеру мощных серверов, которые будут работать вместе в рамках единого интерфейса SQL, где мы можем просматривать все данные.
Greenplum – это база данных с открытым исходным кодом, разработанная компанией Pivotal, которая позже была приобретена VMware. Архитектура ПО была специально разработана для управления крупномасштабными хранилищами данных, предоставляя вам возможность распределять ваши данные по множеству серверов.
Чтобы лучше понять архитектуру Greenplum, давайте сначала рассмотрим, что такое база данных массивно-параллельной обработки (Massive Parallel Processing – MPP). При обработке больших объемов сложных данных велика вероятность того, что ваш сервер может начать "раздавливаться" из-за всех данных, которые он должен обрабатывать для получения результатов аналитики. Чтобы удовлетворить эту потребность в более быстрой обработке и обеспечении более быстрых результатов, многие организации рассматривают возможность использования базы данных MPP.
Система MPP использует несколько различных процессоров, которые работают независимо, используя свою собственную выделенную память и ресурсы, поэтому рабочая нагрузка распределяется между несколькими устройствами, а не только одним.
Обычно система MPP имеет один ведущий узел и один или несколько вычислительных узлов. Узел-лидер, называемый «мастером» в Greenplum, сообщает всем остальным узлам, называемым «сегментами», что делать, и объединяет их ответы для создания окончательного ответа.
Базы данных MPP масштабируются горизонтально, добавляя дополнительные вычислительные ресурсы (узлы), вместо того, чтобы беспокоиться об обновлении до более дорогих отдельных серверов (вертикальное масштабирование).

Основываясь на архитектуре PostgreSQL, Greenplum фактически использует несколько экземпляров базы данных PostgreSQL одновременно в одном кластере. Пользователи PostgreSQL могут быстро ознакомиться с базой данных этого типа, так как многие функции, конфигурации и функциональные возможности аналогичны Greenplum и включают в себя функции, предназначенные для оптимизации работы PostgreSQL для задач и рабочих нагрузок бизнес-аналитики (BI).
Подобно PostgreSQL, Greenplum использует один главный сервер или хост, который является точкой входа в базу данных, принимающей соединения и SQL-запросы. Сегменты независимы, и каждый из них хранит часть данных. Вы можете использовать всего два хоста сегмента и масштабировать до неограниченной емкости.
Преимущества Greenplum:
- Высокая производительность по сравнению с системами в оперативной памяти, которым требуется немало памяти для хранения своих данных, или системами, не основанными на СУБД, которые представляют собой механизмы обработки в памяти, выделяющие ОЗУ для каждого параллельного запроса. Высокая производительность Greenplum устраняет проблему, с которой сталкивается большинство РСУБД при масштабировании до петабайтных уровней данных, поскольку они могут линейно масштабироваться для эффективной обработки данных.
- Оптимизация SQL-запросов для крупномасштабных рабочих нагрузок с большими данными. Задействовав производительность, как мы уже говорили выше, Greenplum масштабирует аналитику в интерактивном и пакетном режимах до петабайтного масштаба без снижения производительности запросов. Оптимизатор запросов на основе затрат позволяет Greenplum распределять нагрузку между их различными сегментами и использовать все ресурсы системы параллельно для обработки запроса.
- Открытый исходный код: Greenplum — это проект хранилища данных с открытым исходным кодом, основанный на ядре PostgreSQL с открытым исходным кодом, который позволяет пользователям воспользоваться преимуществами десятилетий экспертной разработки PostgreSQL, а также целенаправленной настройкой Greenplum для приложений с большими данными. Greenplum может работать на любом сервере Linux, размещенном в облаке или локально, и может работать в любой среде.
- Полиморфное (разноструктурное) хранилище данных позволяет вам контролировать конфигурацию вашего хранилища таблиц и разделов, позволяя выполнять и сжимать файлы в нем в любое время.
Автор оригинальной статьи: ScaleGrid

Подари чашку кофе дата-сайентисту ↑