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

Самое главное: как устроена Greenplum

В основе Greenplum две вещи:

  • знакомая многим база данных PostgreSQL;
  • архитектурная концепция MPP.

Про PostgreSQL в Greenplum более-менее все известно, в работе инженеров она встречается часто, а вот MPP упоминается реже.

MPP — massively parallel processing, или массивно-параллельная обработка данных. Такая архитектура весьма сложно устроена под капотом, но ее можно свести к простому концептуальному описанию. Это умная автоматическая разбивка данных по разным серверам (шардинг) с умной автоматической системой выполнения запросов к этим данным. Всё вместе это позволяет хранить петабайты записей и выполнять запросы к ним за вполне разумный срок.



Каждый процессор в системе имеет собственную память, операционную систему и диски. Источник

Конечно, разбивку большого количества данных по серверам базы данных (шардинг) можно сделать и руками, например, первый миллион записей хранится на первом сервере, а второй на втором. Решение выглядит простым, но есть куча минусов. Если сразу всем клиентам системы понадобится прочитать записи с одного сервера — этот сервер может не выдержать. Масштабировать такую систему тоже очень сложно.

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

Сама система за хранение данных не отвечает, для этих целей она использует PostgreSQL.

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

Кому нужна СУБД Greenplum

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

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

Кроме того, хранить данные — часть дела. Если к записям нельзя обращаться за адекватное время и выполнять над ними нужные операции — толку от таких данных нет.

Поэтому Greenplum нужна тем, кто не только хранит огромные объемы информации, но и активно с ними работает.

Конечно, проблемы работы с большими объемами появились не вчера, инструменты под эти задачи на рынке есть: ClickHouse, Cassandra и другие. Но после чтения документации можно заметить, что несмотря на общую сферу применения, у Greenplum есть особенности, которые четко определяют, когда точно нужна эта система, а когда стоит выбрать другую.

Сейчас мы поговорим о конкретных случаях и отличиях Greenplum от аналогов.

Облачная СУБД Arenadata DB
Для больших проектов на основе Greenplum
Перейти

Чем Greenplum отличается от других СУБД для работы с большими данными

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

От систем типа ClickHouse Greenplum отличается сферой применения. Если Clickhouse больше подходит для статистики, то Greenplum намного ближе к полноценной СУБД с индексами и хитрыми запросами. Это позволяет быстрее обращаться к определенным записям. При этом Greenplum справляется с аналитическими нагрузками от бизнес-аналитики до машинного обучения.

Также Greenplum поддерживает различные виды репликации и шардинга, оставляя далеко позади все аналоги. Это дает хорошую производительность, но требует очень тонкой настройки и множества серверов, если вы хотите развернуть такую систему on-premise.

Greenplum лежит в основе облачной СУБД Arenadata DB, которую можно арендовать в облаке VK Cloud (бывш. MCS) — тогда возиться с настройками не придется и в руках мгновенно окажется вся мощь этой системы. Вы сможете в несколько кликов развернуть базу для хранения и обработки больших данных, не вкладываясь в собственную инфраструктуру и ее поддержку. Интеграция Greenplum с Hadoop, Spark и другими инструментами анализа big data позволят еще эффективнее работать с большими данными.

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

Greenplum: мощная СУБД для больших данных

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