Как работает Greenplum: аналитическая база данных для big data и больших проектов
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 от аналогов.
Чем Greenplum отличается от других СУБД для работы с большими данными
Greenplum поддерживает реляционную модель данных, сохраняет неизменность данных, поэтому ее можно применять для данных, чувствительных к точности и структурности. Например, для финансовых операций. Greenplum — хороший выбор для банков, ритейла и других компаний, где проводят большое число транзакций и их нельзя потерять.
От систем типа ClickHouse Greenplum отличается сферой применения. Если Clickhouse больше подходит для статистики, то Greenplum намного ближе к полноценной СУБД с индексами и хитрыми запросами. Это позволяет быстрее обращаться к определенным записям. При этом Greenplum справляется с аналитическими нагрузками от бизнес-аналитики до машинного обучения.
Также Greenplum поддерживает различные виды репликации и шардинга, оставляя далеко позади все аналоги. Это дает хорошую производительность, но требует очень тонкой настройки и множества серверов, если вы хотите развернуть такую систему on-premise.
Близкие по функциональности СУБД с похожей архитектурой часто сложнее внедрить. Например, этот аргумент может стать решающим при сравнении Greenplum и Teradata. Также Greenplum построена на базе PostgreSQL, поэтому проще найти специалистов для работы с ней.
Greenplum: мощная СУБД для больших данных
После сравнения с похожими системами можно сказать, что Greenplum — система для тех, у кого много данных, к этим данным нужно быстро и надежно обращаться с запросами, запросы не должны тормозить и все это хозяйство должно максимально гибко настраиваться и масштабироваться. При этом Greenplum не просто хранит информацию: ее можно интегрировать с продвинутыми решениями для аналитики, чтобы получить максимум пользы от данных компании.