Главное Авторские колонки Вакансии Вопросы
Выбор редакции:
458 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Что такое СУБД Greenplum? Зачем она нужна в больших проектах DWH? Чем отличается от ClickHouse?

Построение корпоративного хранилища данных последнее время становится не роскошью, а необходимостью. Современные информационные системы, которые использует бизнес, генерируют огромное количество данных, и оно с каждым годом только возрастает.
Мнение автора может не совпадать с мнением редакции

DWH помогает собрать, структурировать и сохранить все имеющиеся в компании данные в единую версию правды, чтобы вывести бизнес-аналитику на новый уровень и получить преимущество в принятии решений.


В случае успешного внедрения проекты DWH открывают компаниям новые возможности и приносят прибыль, однако, процент неудачных внедрений также довольно велик.

Узнайте на реальных примерах, как при неграмотном подходе к проекту хранилище может стать пустой тратой времени и денег

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

Порядок хранения данных выбирается в соответствии с разными сценариями работы — запросами, разным объемом данных, количеством транзакций, необходимостью обновлений данных.

В статье расскажем вам о популярной сейчас СУБД Greenplum и о том, в каких случаях строить хранилища на ее основе.

Что такое СУБД Greenplum

Greenplum— массово-параллельная реляционная СУБД на основе PostgreSQL, которая подходит для хранения и обработки больших объемов данных (до сотен ТБ).

Массово-параллельные СУБД обычно используются для предиктивной аналитики, отчетности по большим объемам данных, построения озер данных и корпоративных хранилищ данных, разработки аналитических моделей по множеству разнообразных данных.


Массово-параллельная архитектура (Massive Parallel Processing, MPP) характеризуется физическим разделением памяти узлов (нод), объединенных в кластер. СУБД Greenplum — это несколько БД PostgreSQL, объединенных в кластер, где каждый узел кластера имеет собственную память, ОС и жесткие диски. Для пользователей же предоставляется унифицированный интерфейс базы данных.

Кластер Greenplum включает следующие компоненты:

  1. Мастер (Master host) — узел, на котором размещен главный экземпляр PostgreSQL. Мастер содержит метаданные и не содержит пользовательских данных. В Мастер поступают SQL-запросы и, он отвечает за установление соединения с клиентом.
  2. Резервный мастер (Secondary master instance) — инстанс PostgreSQL, который включается при отказе основного мастера. Некоторые кластеры Greenplum используют резервный мастер в качестве сервера ETL.
  3. Сервер-сегменты (Segment host) — узлы, где хранятся пользовательские данные и выполняются операции из обработки. Каждый сервер-сегмент содержит от 1 до 8 сегментов Greenplum — независимых экземпляров PostgreSQL с частью данных.

Сегменты в СУБД объединяются по принципу «без разделения ресурсов» (Shared Nothing), то есть без использования общих устройств и памяти.

Сегменты делятся на основные (primary) и зеркала (mirror). Primary-сегмент обрабатывает данные и передает результаты мастеру. Ему соответствует зеркало (Mirror segment instance), которое хранит копию данных из основного сегмента и включается в работу при отказе Primary.


Предположим, у вас есть коробка с 1200 перемешанными визитками сотрудников из разных компаний. Ваша задача — перебрать все карточки и найти имена всех, кто работает в ООО Ромашка. Если просматривать одну визитку в секунду, вам потребуется 20 минут, чтобы найти всех сотрудников Ромашки.

А теперь разложим их на 10 равных стопок по 120 визиток и пригласим 10 человек перебрать их в поисках нужных. Если бы они одновременно просматривали визитки, каждый в своей стопке, со скоростью 1 визитка в секунду, то нужные нам визитки были бы найдены примерно за 2 минуты. Скорость обработки повысилась бы в 10 раз.

***

По такому же принципу работает и архитектура Greenplum:

  1. Пользователь подключается к БД через API-интерфейсы (JDBC и ODBC).
  2. Мастер аутентифицирует соединение и обрабатывает входящий SQL-запрос. Запрос оптимизируется и разбивается на более мелкие компоненты, которые отправляются в сервер-сегменты — другие экземпляры базы данных PostgreSQL, где обрабатываются для получения окончательных результатов.
  3. Сегменты выполняют вычисления и возвращают результаты обработки в Мастер, который координирует эти результаты и представляет конечный итог клиенту.
  4. За взаимодействие между сегментами отвечают интерконнекты — быстрые обособленные сетевые соединения уровня Gigabit Ethernet.

Распределение данных порциями по всем нодам кластера в MPP-СУБД позволяет повысить скорость их обработки и снизить нагрузку на хранилище данных.

Кому подойдет СУБД Greenplum

Большие хранилища данных

Классические СУБД справляются с оперативными транзакциями и подходят для быстрого построения отчетов.

Но при увеличении объемов данных, DWH на стандартных СУБД исчерпывают свою мощность и не способны обеспечивать должную производительность. Загрузка данных с трудом укладывается в отведенные временные интервалы.

Массово-параллельная архитектура Greenplum и мощные алгоритмы оптимизации подходят для быстрой обработки «тяжёлых» аналитических запросов при работе с многотерабайтными массивами данных.

СУБД поддерживает реляционную модель данных и совместима с PostgreSQL, а значит, и со всеми BI-системами и ETL-инструментами.

Select an Image

СУБД подойдет для хранилищ больше 1ТБ, так как именно на таких объемах продемонстрирует оптимальное соотношение стоимости владения и производительности.

Имеет следующие ограничения:

  1. Максимальное количество таблиц — более 4 млрд
  2. Максимальный размер одной таблицы — до 128 Тб на один сегмент
  3. Максимальное число строк в одной таблице — более 281 триллиона
  4. Максимальный размер строки — 1 Гб
  5. Максимальное количество столбцов в таблице — 1600

Масштабирование

DWH, реализованные на Greenplum, обычно используются для компаний, где присутствует большое количество источников данных, их объемы постоянно растут, и необходим увеличенный срок их хранения.

Чтобы обработать растущие объемы данных, объединить несколько хранилищ или поддерживать новые аналитические приложения, необходимо увеличивать емкость имеющейся СУБД.

Greenplum дает возможность легко добавлять новые серверы и сегменты без ограничений в количестве, так как даже при выходе из строя узла кластера, другие узлы справятся с ростом нагрузки. Чем больше новых узлов добавлено, тем быстрее работает Greenplum.

Сохранность и точность данных

Greenplum обеспечивает отказоустойчивость благодаря наличию резервного мастера и зеркал для каждого сегмента.

СУБД полностью соответствует принципам ACID — Atomicity, Consistency, Isolation, Durability — набору принципов, которые определяют, как должна работать транзакция в СУБД.

  1. Атомарность (Atomicity) — транзакция должна быть неделимой, либо все операции в транзакции выполняются успешно, либо ни одна из них не выполняется.
  2. Согласованность (Consistency) — после выполнения транзакции база данных должна находиться в согласованном состоянии: все правила и ограничения, установленные для базы данных, должны быть соблюдены.
  3. Изолированность (Isolation) — каждая транзакция должна выполняться независимо от других транзакций.
  4. Надежность (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:

  1. Является готовым к развёртыванию и использованию дистрибутивом, оптимальным набором компонентов стабильных версий Greenplum
  2. Нативная интеграция в рамках единой платформы Arenadata EDP с Arenadata Hadoop, QuickMarts (ClickHouse), Streaming (Kafka&NiFi) и другие дополнительные возможности интеграции
  3. Возможности управления с помощью оркестратора Arenadata Cluster Manager, что значительно упрощает установку и настройку СУБД, в том числе в закрытых ЦОДах без доступа в интернет
  4. Система мониторинга и оповещения (Graphite и Grafana)
  5. Система мониторинга запросов Arenadata Command Center, которая дает рекомендации по улучшению запросов и прогнозы времени работы
  6. Поддержка x86 и Power-совместимого оборудования (8, 9, OpenPower).
  7. Русскоязычная документация, обучающие курсы и техподдержка

Greenplum vs ClickHouse

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 по ключевым критериям:


Исходя из приведенных выше особенностей двух СУБД и сравнительной таблицы можно сказать, что каждая из них подходит для своих типовых сценариев использования.

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

  1. Построения Data Lake и больших проектов DWH
  2. Предиктивной аналитики и прогнозирования
  3. Скоринга событий
  4. Аналитики Big Data в реальном времени
  5. Углубленного анализа специализированных запросов Ad-hoc

Высокоскоростная ClickHouse будет подходящей для:

  1. Построения корпоративных хранилищ данных
  2. Бизнес-аналитики данных в реальном времени
  3. Обработки простых Ad-hoc запросов и работы с быстрыми витринами данных
  4. Быстрых full scan операций по проверке всей БД с последующей выдачей запроса на внешний ресурс
  5. Сложных агрегаций при работе с широкими денормализованными таблицами фактов

Архитектура и инструменты для построения хранилища данных всегда подбираются индивидуально в зависимости от целей, требований и возможностей бизнеса.

Команда Qlever Solutions разрабатывает и внедряет корпоративные хранилища данных, используя масштабируемые технологии и гибридные методологии, адаптируя лучшие практики под уникальные задачи и любые объемы данных.

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

Мы поможем выбрать стек технологий и подобрать СУБД, оптимальную для необходимого сценария работы и объема имеющихся данных

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.