4.9к
0
0
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
Назад

Обзор Greenplum Database. Назначение и ключевые преимущества

Время чтения 2 минуты
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
4.9к
0
0
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники

Меня зовут Сергей Мазитов, я технический писатель в компании «Скала^р». Мы производим ПАК (программно-аппаратные комплексы) для госструктур и крупных компаний. Я занимаюсь технической документацией, учебными и маркетинговыми материалами. 

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

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

Начнем с Big Data. Сегодня — аналитическая СУБД Greenplum Database.

Обзор Greenplum Database. Назначение и ключевые преимущества

Что такое аналитическая СУБД

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

Если нам нужно быстро добавлять в базу данных индивидуальные транзакции (например, когда через кассу магазина проходит очередной товар, который добавляется в чек, а запасы этого товара уменьшаются на единицу), то СУБД, которые применяются для таких задач, объединяют в группу OLTP (Online Transaction Processing, обработка транзакций в реальном времени).

Если же нам нужно анализировать большой объем данных, используя сложные запросы, и быстро получать результаты (например, день за днем предсказывать продажи ассортимента магазина на основе исторических данных за 10 лет и идентифицировать товарные позиции, которых может не хватить на том или ином складе), то СУБД, спроектированные для таких задач, объединяют в группу OLAP (Online Analytical Processing).

Greenplum относится ко второй группе. Эти СУБД рассчитаны на то, что данные добавляются большими объемами, редко изменяются (или не изменяются никогда), объем хранимых данных постоянно растет, и при этом суммарный объем этих данных может быть огромен, измеряясь петабайтами. Скорость обработки запросов не должна падать при росте объемов обрабатываемых данных: это ключевое требование к OLAP СУБД.

Архитектура Greenplum Database

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

Ключевые слова здесь — распределенная база данных и большие объемы данных. Что эти слова означают? Посмотрим сначала, что из себя представляет СУБД PostgreSQL сама по себе. PostgreSQL хранит все свои данные на одном сервере, не позволяя «нарезать» базу данных так, чтобы часть данных хранилась на одном сервере, а другая часть на другом. Это ограничивает объем данных, которые система может эффективно обработать: даже если мы добавим больше дисковой памяти для данных, нашим узким местом станет скорость их обработки, ведь все их обрабатывает тот же самый сервер, и с ростом объема данных СУБД будет работать всё медленнее и медленнее. 

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

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

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

Архитектура Greenplum Database

Всё взаимодействие пользователя с базой данных осуществляется через инстанс, называемый мастером (Master Instance). Он принимает запросы от пользовательского приложения, направляет их сегментам, образующим кластер, затем получает от них результаты и передает обратно. Клиенты в штатном режиме никак не взаимодействуют с инстансами, непосредственно хранящими данные.

Для хранения данных используются инстансы Postgres, называемые сегменты (Primary Segment Instance). Они принимают запросы от мастера, обрабатывают данные и возвращают ему результаты.

Каждый физический сервер (host) в архитектуре Greenplum обладает независимой от других операционной системой, процессором, памятью, дисками для хранения данных (архитектура без общих ресурсов, Shared Nothing). На одном физическом сервере обычно располагается несколько инстансов базы данных. При этом нужно, чтобы на каждый Primary Segment приходилось как минимум одно процессорное ядро сервера.

Для обмена данными между хостами используется выделенная быстрая сеть (interconnect) или несколько таких сетей.

Лицензия

Greenplum Database принадлежит компании VMware, которая спонсирует и поддерживает бесплатную свободную версию системы с открытым исходным кодом (под лицензией Apache 2.0), а также предлагает расширенную коммерческую версию под названием VMware Tanzu Greenplum

Существует локализованный в России форк свободной версии Greenplum — Arenadata DB, также имеющий как расширенную коммерческую версию, так и бесплатную версию с открытым кодом. 

Примеры использования технологии

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

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

В качестве примеров использования технологии можно привести следующие:

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

Преимущества технологии

Greenplum — в значительной степени нишевый продукт, специально предназначенный для создания больших хранилищ данных (Data Warehouses, DWH) и их анализа. В таблице ниже детально рассмотрены основные технические преимущества Greenplum.

Ключевые преимущества Greenplum

  • открытый исходный код под либеральной лицензией Apache 2.0, которая разрешает модификации, дальнейшее распространение или продажу измененного продукта под любой лицензией;
  • ядро Greenplum — широко распространенная СУБД PostgreSQL, за многие годы зарекомендовавшая себя как очень надежная, с большим количеством технических специалистов на рынке, знакомых с ее администрированием; 
  • Greenplum обеспечивает массово-параллельную архитектуру, позволяющую масштабировать объем хранимых и обрабатываемых данных без потери производительности, путем наращивания количества серверов.

Комментарии0
Тоже интересно
Комментировать
Поделиться
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники