Greenplum vs PostgreSQL: 7 сходств и 3 отличия

Автор Категория ,
Greenplum vs PostgreSQL: 7 сходств и 3 отличия

Поскольку Greenplum и Arenadata DB основаны на популярной open-source СУБД PostgreSQL, сегодня разберем, чем они отличаются от этой объектно-реляционной базы данных. Далее вас ждет краткий и понятный ответ на вопрос Greenplum vs PostgreSQL: сходства и отличия этих систем с учетом аналитики больших данных и практических кейсов дата-инженерии.

Что общего между Greenplum и PostgreSQL: 7 главных сходств

Напомним, PostgreSQL – это свободная ORM-СУБД с поддержкой стандарта SQL:2011 и множества языков программирования (pgSQL, Perl, Python, Java, PHP, R, Ruby, sh, C). Дополнительным преимуществом являются быстрые и надёжные механизмы транзакций, репликации, возможность индексации слабоструктурированных данных в формате JSON, а также гибкая расширяемость: разработчик создавать новые типы данных, индексов, подключать различные языки программирования, модули расширения, любые внешние источники данных. Благодаря отсутствию ограничений на максимальный размер базы данных и количество индексов в таблице, а также а также большую емкость таблиц и полей (до 32 ТБ и 1 ГБ соответственно), PostgreSQL часто используется во многих Big Data проектах [1].

Именно этот фокус на аналитику больших данных лежит в основе Greenplum, которая является адаптацией PostgreSQL с технологией массивно-параллельной обработки данных (MPP, Massive Parallel Processing). Проще говоря, Greenplum – это несколько взаимосвязанных экземпляров PostgreSQL, объединенных в кластер по принципу без разделения ресурсов (Shared Nothing). При этом каждый узел кластера, взаимодействующий с другими для выполнения вычислительных операций, имеет собственную память, операционную систему и жесткие диски. Это позволяет намного ускорить аналитическую обработку данных благодаря распараллеливанию вычислений. Помимо параллельного выполнения SQL-запросов, Greenplum включает автоматическое партиционирование данных, а также расширенные возможности их хранения и сжатия [2].

Таким образом, главными сходствами Greenplum и PostgreSQL с позиции архитектора DWH, аналитика данных и дата-инженера являются следующие:

  • open-source статус – программный код обоих продуктов доступен для свободного скачивания, активно поддерживается и развивается профессиональным сообществом;
  • высокая производительность;
  • поддержка JSON;
  • высокая емкость таблиц и полей;
  • масштабируемость;
  • надежность;
  • транзакционность.

Кроме того, обе СУБД считаются эффективными при долгосрочной настройке и развертывании приложений, что актуально в проектах промышленной аналитики больших данных. Однако, назвать Greenplum просто расширенным вариантом PostgreSQL не совсем корректно: эти системы имеют целый ряд отличий, которые мы рассмотрим далее.

И все-таки они разные: 3 ключевых отличия

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

MPP-архитектура Greenplum обеспечивает возможность параллельной обработки запросов, ускоряя их выполнение на целые порядки. Производительность Greenplum зависит от количества запросов, которые необходимо прочитать и ответить на них.

При этом MPP-архитектура Greenplum реализует концепцию без разделения ресурсов, разделяя между узлами только сетевую инфраструктуру. А PostgreSQL работает по принципу «клиент-сервер» с совместным использованием памяти, областей хранения и операционных систем. Поэтому Greenplum можно использовать как колоночное хранилище данных, оптимизированное для добавления. Это позволяет рассматривать Greenplum как СУБД с функциями сжатия для всех оптимизированных append-таблиц в реляционных базах данных. А базовая архитектура PostgreSQL позволяет легко их модифицировать и дополнять для обеспечения параллельной структуры запросов.

Специальное быстрое обособленное сетевое соединение для связи между отдельными экземплярами PostgreSQL (Interconnect) в Greenplum обеспечивает их унифицированное поведение, позволяя рассматривать как единый образ базы данных. Кроме того, Greenplum можно оптимизировать для обработки больших наборов данных, задав декларативные разделы и подразделы. Внутренние элементы PostgreSQL были модифицированы и дополнены для поддержки параллельной структуры Greenplum: изменены системный каталог, оптимизатор, исполнитель запросов и компоненты диспетчера транзакций. Это позволяет выполнять запросы одновременно во всех параллельных экземплярах PostgreSQL, которые ведут себя как одна логическая база данных благодаря быстрым interconnect-соединениям [2].

Таким образом, главное отличие между PostgreSQL и Greenplum заключается в следующем [3]:

  • архитектура – Greenplum реализует массивно-параллельную обработку без разделения ресурсов, а PostgreSQL – классическую клиент-серверную технологию. В Greenplum для повышения надежности к типовой топологии master-slave добавлен резервный главный сервер (Secondary master instance), включаемый вручную при отказе основного мастера.
  • структура хранения данных. Greenplum – это одновременно хранилище данных и база транзакционных или операционных данных с распараллеливанием вычислительных процессов и хранения информации в нескольких экземплярах PostgreSQL на разных физических серверах с функцией колоночного хранения и сжатия.
  • сценарии применения. Greenplum предназначен для одновременной обработки транзакционных событий обработки и отлично подходит для обширной OLAP-аналитики больших данных. PostgreSQL – хороший вариант для баз данных небольшого размера с OLTP-кейсами.

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

Источники

  1. https://ru.wikipedia.org/wiki/PostgreSQL
  2. https://ru.bmstu.wiki/Greenplum_DB
  3. https://greenplum.org/relationship-and-difference-between-greenplum-and-postgresql/