Greenplum
Greenplum (Greenplum Software) — компания-разработчик массово-параллельной СУБД для хранилищ данных Greenplum на основе PostgreSQL. Greenplum - это механизм массового параллельного анализа данных с открытым исходным кодом. С архитектурой MPP сложный анализ SQL может выполняться на больших наборах данных быстрее, чем многие решения.
GPDB полностью поддерживает стандарт ANSI SQL 2008 и расширение SQL OLAP 2003, а из интерфейса программирования приложений - ODBC и JDBC. Совершенная стандартная поддержка делает разработку, обслуживание и управление системой намного удобнее. Поддержка распределенных транзакций и ACID. Обеспечить строгую согласованность данных. Как распределенная база данных, она обладает хорошей линейной масштабируемостью. GPDB имеет полную экосистему и может быть интегрирована со многими продуктами уровня предприятия, такими как SAS, Cognos, Informatic, Tableau и т. Д .; она также может быть интегрирована с различными программами с открытым исходным кодом, такими как Pentaho, Talend и т. д.
Greenplum — система управления данными из мира big data. Она нужна тем, кто анализирует и обрабатывает десятки терабайтов информации и кому тесно и некомфортно работать с обычными СУБД. Расскажем о том, что это за система, где и как ее использовать и в чем ее отличие от других систем, работающих с большими данными.
Как устроена Greenplum
В основе Greenplum две вещи:
- знакомая многим база данных PostgreSQL;
- архитектурная концепция MPP.
Про PostgreSQL в Greenplum более-менее все известно, в работе инженеров она встречается часто, а вот MPP упоминается реже.
MPP — massively parallel processing, или массивно-параллельная обработка данных. Такая архитектура весьма сложно устроена под капотом, но ее можно свести к простому концептуальному описанию. Это умная автоматическая разбивка данных по разным серверам (шардинг) с умной автоматической системой выполнения запросов к этим данным. Всё вместе это позволяет хранить петабайты записей и выполнять запросы к ним за вполне разумный срок.
Каждый процессор в системе имеет собственную память, операционную систему и диски.
Конечно, разбивку большого количества данных по серверам базы данных (шардинг) можно сделать и руками, например, первый миллион записей хранится на первом сервере, а второй на втором. Решение выглядит простым, но есть куча минусов. Если сразу всем клиентам системы понадобится прочитать записи с одного сервера — этот сервер может не выдержать. Масштабировать такую систему тоже очень сложно.
Greenplum берет на себя все эти заботы и организует шардирование своими силами, заботясь обо всех нюансах. А еще Greenplum можно настраивать на различные стратегии выполнения запросов, ориентируясь на количество записей, количество процессоров и памяти на каждой машине.
Сама система за хранение данных не отвечает, для этих целей она использует PostgreSQL.
Сочетаний крутой архитектуры и надежной СУБД дает в сумме надежную и производительную систему для тех, кому надо справляться с большими данными и масштабной аналитикой.
- Мастер (Master host) — узел, на котором размещен главный экземпляр PostgreSQL. Мастер содержит метаданные и не содержит пользовательских данных. В Мастер поступают SQL-запросы и, он отвечает за установление соединения с клиентом.
- Резервный мастер (Secondary master instance) — инстанс PostgreSQL, который включается при отказе основного мастера. Некоторые кластеры Greenplum используют резервный мастер в качестве сервера ETL.
- Сервер-сегменты (Segment host) – узлы, где хранятся пользовательские данные и выполняются операции из обработки. Каждый сервер-сегмент содержит от 1 до 8 сегментов Greenplum – независимых экземпляров PostgreSQL с частью данных.
- Пользователь подключается к БД через API-интерфейсы (JDBC и ODBC).
- Мастер аутентифицирует соединение и обрабатывает входящий SQL-запрос. Запрос оптимизируется и разбивается на более мелкие компоненты, которые отправляются в сервер-сегменты - другие экземпляры базы данных PostgreSQL, где обрабатываются для получения окончательных результатов.
- Сегменты выполняют вычисления и возвращают результаты обработки в Мастер, который координирует эти результаты и представляет конечный итог клиенту.
- За взаимодействие между сегментами отвечают интерконнекты – быстрые обособленные сетевые соединения уровня Gigabit Ethernet.
Кому нужна СУБД Greenplum
О самом очевидном применении мы уже поговорили — такая система незаменима, когда данных слишком много. Если 2-4 терабайта можно как-то втиснуть на один-три сервера и даже обращаться к этим данным, то миллиард терабайт в обычную СУБД поместить весьма проблематично.
То есть Greenplum нужна тем, у кого данных больше, чем очень много, то есть для работы с большими данными.
Кроме того, хранить данные — часть дела. Если к записям нельзя обращаться за адекватное время и выполнять над ними нужные операции — толку от таких данных нет.
Поэтому Greenplum нужна тем, кто не только хранит огромные объемы информации, но и активно с ними работает.
Конечно, проблемы работы с большими объемами появились не вчера, инструменты под эти задачи на рынке есть: ClickHouse, Cassandra и другие. Но после чтения документации можно заметить, что несмотря на общую сферу применения, у 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 с возможностями обработки больших объемов данных подойдет для:
- Построения Data Lake и больших проектов DWH
- Предиктивной аналитики и прогнозирования
- Скоринга событий
- Аналитики Big Data в реальном времени
- Углубленного анализа специализированных запросов Ad-hoc