Архитектор Данных
1.13K subscribers
159 photos
10 videos
2 files
122 links
Алексей, архитектор данных из ВК.

Большие данные и облака.

Для связи @alexbelozersky
Download Telegram
Инструменты - гринплам

#Инструменты #Хранилище #БазыДанных #Greenplum

🍈🍈🍈🍈🍈
База greenplum - отличный выбор для построения хранилищ данных. Это относительно старая и проверенная технология. В текущих реалиях в России сейчас практически безальтернативна для он-прем инсталляций и для облака.

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



К основным достоинствам можно отнести

⁃ Колоночнае хранение данных. Строковое хранение данных также возможно для небольших часто изменяемых данных, например, етл таблиц со статусами загрузок.
⁃ MPP Shared Nothing архитектура. Можно использовать всю мощь кластера для обработки запросов.
⁃ Горизонтальная масштабируемость кластера
⁃ Внутренний механизм распределения ресурсов между группами пользователей - ресурсные группы. В gp v.7 можно квотировать не только цпу и память, но и чтение диска.
⁃ Совместимость с прикладным ПО по протоколу postgresql. Снаружи бд выглядит как постгрес.
⁃ Наличие сервисов для распределенной загрузки данных: PXF, gpfdist. В случае работы из скейлящихся источников данных (s3, hdfs, hive, kafka) чтение и запись данных происходит с ноды на ноду минуя мастер.
⁃ ANSI SQL
⁃ ACID, транзакции
⁃ Отказоустойчивость на уровне шардов и мастера.


👎👎👎👎👎
Недостатки

⁃ Трудный скейл кластера вверх с перераспределением данных
⁃ Трудности с бекапом. Частично решено в вендорских сборках.
⁃ Хотя система и умеет переключаться на шарды зеркала но в случае восстановления доступа к шардам обратного переключения нет. Нет самопочинки и самобалансировки.
⁃ Кластер требователен к сети, требует mtu 9000, который не всегда доступен.
⁃ Не Cloud Ready. Очень плохо контейниризуется.
⁃ В работе под тяжелыми запросами может дать 100% нагрузку одновременно на цпу, память, диск, сеть. Что крайне негативно влияет на любой контейнерный и виртуализированный деплоймент. В облаках для Managed решается выделением специальных сегментов и агрегатов гипервизоров.


🛠🛠🛠🛠🛠
Сборки

⁃ ванильная
⁃ Аренадата в версии коммьюнити и энтерпрайз.
⁃ Яндекс. Только как managed в облаке
⁃ Ростелеком
⁃ Глоубайт

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

Самая популярная в России сборка - ArenadataDB. Есть в бесплатном варианте коммьюнити (до 20тб дисков) и энтерпрайз. Предлагает графический инструмент развертывания и администрирования Arenadata Cluster Manager

В платную Arenadata Enterprise дополнительно входят

⁃ Параллельные коннекторы clickhouse, kafka, adb-to-adb
⁃ Дополнительные инструментарий администрирования
⁃ Неблокирующий бекап на основе pgbackrest
⁃ Инструменты для офлайн развертывания в закрытом контуре без доступа в интернет.
⁃ Поддержка российских ОС: Alt, Astra, RedOS.

Managed ArenadataDB Enterprise предлагают облака VK, cloud.ru (sber cloud), mts

🔧🔧🔧🔧🔧
Деплоймент

Базовый - на онпрем. Есть варианты в облаке managed в Яндексе, Вк, Сбер и других.
Облачная инсталляция требует специального приспособленного сегмента с отключенной переподпиской, улучшенным схд, высокочастотными цпу (intel platinum), mtu-9000 сетью.
Система будет плохо себя чувствовать на обычных виртуальных машинах с переподпиской и сетевыми дисками под прод нагрузкой.

⚖️⚖️⚖️⚖️⚖️
В целом

В целом greenplum предлагает надежное решение для реализации и развития КХД. В нем не будет сюрпризов по части ИБ, интеграций с другими сервисами. За деньги можно легко найти решение с вендорской поддержкой. К тому же в 2024 году уже не так сложно найти DBA со знанием GreenPlum или попросту купить поддержку на рынке.
Также хорошим вариантом будет покупка облачного managed решения, где проблемы с падением сегментов и бекапами будет решать за вас команда эксплуатации облака. Благо выбрать уже есть из чего.

Если у вас есть деньги на покупку этого относительно недешевого решения и экспертизы для его поддержки - берите “Зеленую Сливу” и не прогадаете.
👍3
Виды Greenplum

Ранее
О Greenplum - Часть 1 - Почему Greenplum популярен [В России]


🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪
24 Мая 2024 года новый владелец платформы Tanzu - компания Broadcom - заархивировала публичные репозитории Greenplum. В списке архивированных теперь
https://github.com/greenplum-db/gpdb-archive
https://github.com/greenplum-db/gporca-archive
https://github.com/greenplum-db/pxf-archive
и другие. Код доступн только для чтения, о чем нас предупреждает GitHub.

За последние годы Greenplum и его производные стал фактически российской СУБД для больших данных по умолчанию. Альтернатив ему на нашем рынке в сегменте больших транзакцонных MPP СУБД практически нет.

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

Давайте соберем краткую подборку, какие виды GP есть и поддерживаются разными компаниями.


Vanilla Greenplum

Никуда не ушел. По-прежнему можно скачать код-базу и собрать последнюю версию СУБД или воспользоваться собранными бинарниками. Продукт (пока что) застрял на версии 6.27 и нестабильной 7.2
Основная проблема в морально и физически устаревшем PostgreSQL 9.4

Ресурсы
Сайт - https://greenplum.org/
Github - https://github.com/greenplum-db/gpdb-archive
Документация с некоторых пор закрыта от российский IP.

Проприетарная версия доступна в составе VMware Tanzu Data Suite.


Arenadata Greenplum - Greengage

Родился как проект по развитию кодовой базы Greenplum в поставке Arenadata DB. В будущем версии Arenadata DB в редакциях Community и Enterprise перейдут на GreenGage. Заявлено, что для пользователей сборок Аренадаты переход произойдет бесшовно - просто с очередным обновлением ADB «под капотом» перейдет на Greengage.

Новые утилиты в поставке Arenadata будут называться по-другому, например, ggshrink вместо gpshrink. Возможно, со временем мы увидит ggconfig, ggperfcheck и другие внутренние утилиты.

Заявлен поэтапный переход на Postgres v.16 и такие фичи как авто-фейловер.

Ресурсы
Сайт - https://greengagedb.org/
GitHub - https://github.com/arenadata/gpdb
Telegram (анонс) -

Полезные ссылки - видео

Круглый стол (Тиньков)
https://vk.com/video-151223562_456239528

Анонс GreenGage (Аренадата)
https://vk.com/video-211969254_456239091

Круглый стол (Аренадата)
https://vk.com/video-211969254_456239092


CloudBerry Database

Наследник Greenplum 7 от конгломерата китайских разработчиков. В основе - Postgres 14. Популярен по ту сторону Великого Фаерволла, в наших краях редок

Сайт
https://cloudberrydb.org/

GitHub
https://github.com/cloudberrydb/cloudberrydb



Yandex Greenplum

Облачная версия Greenplum-6 от Яндекса. Имеет несколько значимых доработок, к примеру, драйвер Yezzey, который позволяет хранить данные БД на S3.

Документация облака.
https://yandex.cloud/ru/services/managed-greenplum

GitHub
https://github.com/open-gpdb/yezzey

Разделение Compute-Storage
https://www.youtube.com/watch?v=D22bZCLZOjQ


#Greenplum #Инструменты #DB
👏3🤔3
Коротко о потреблении памяти в #Greenplum.

Greenplum очень "жадно" выделяет оперативу для запросов. Главный параметр, на который он ориентируется, это concurrency в ресурсной группе. Если в дефолт группе стоит concurrency=10 и прилетает 2-3 тяжелых запроса, он не выделит много памяти, так как ждет еще 10 подключений.

На картинке иллюстрация прогона пака запросов из репозитория.

Прогон в 3 вариантах.

1. 32 GB памяти на сегмент concurrency=10. Выделено ок. 3 ГБ

2. 32 GB памяти на сегмент, concurrency=4. Выделено ок. 6 ГБ

3. 64 GB памяти на сегмент, concurrency=4. Выделено ок. 21 ГБ.

Пак запросов с транзакциями эфира - до 4 млрд строк.

Простое уменьшение параллелизма приводит к увеличению эффективной памяти в 2 раза. Хотя казалось бы, других запросов нет и 80% shared_quota.

Увеличение памяти ВМ в 2 раза ведет к увеличению эффективной памяти в 3,5 раза. Эффект нелинейный. Хотя казалось бы, свободной памяти более 50%

Какие выводы

Если есть тяжелые запросы, обязательно выделите ресурсную группу с малым concurrency и отдавайте их туда.
Это актуально для ELT и для Ad-Hoc.

Также полезно научиться переносить запросы внутри сессии между рес. группами.
👍3🔥21
Forwarded from Data Express
Да вот, кстати. История того как в крупных компаниях (и у нас тоже) совершили неудачный переход на GreenPlum стоит отдельного изучения.

Одно сейчас ясно на 100% - GreenPlum не оправдал возложенных на него надежд.

Возможно, с подобной задачей справился бы кластерный Postgres Pro. Но кто его знает.

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

Вторая - удивительная способность ГП занимать буквально все выделенное ему пространство под логи и временные файлы. По идее, это должно ускорять его работу и улучшать стабильность, но скорее наоборот.

Третья - в целом крайняя нестабильность работы ГП. У нас буквально целый департамент присматривает за ним в режиме 24/7, но все равно постоянно происходят какие-то аварии и что-то ломается.

#dataengineering #greenplum
9😁3🤔32💯2