Объемы данных, накопленных предприятиями и организациями, стремительно растут. В некоторых случаях их количество описывается формулировкой «больше, чем очень много». Для обработки таких объемов информации предназначены решения массивно-параллельной архитектуры. Соответствующий рынок поделен немногочисленными игроками, есть среди них и российская компания Arenadata, предлагающая СУБД Arenadata DB. В сентябре 2022 года к продвижению продуктов Arenadata подключился дистрибьютор Merlion, создавший у себя демо-центр по продукту.
OLAP и OLTP в одном флаконе
Количество данных, используемых предприятиями, стремительно растет. И все чаще к одной и той же базе данных обращаются и с несложными, но многочисленными транзакционными запросами, и с более сложными аналитическими. Традиционно эти задачи возлагались на OLTP- и OLAP-системы. Однако все более популярны решения «два в одном» на базе массивно-параллельных (massive parallel processing, MPP) аналитических систем управления базами данных, которые можно горизонтально масштабировать при росте транзакционной нагрузки.
MPP-системы строятся из отдельных узлов, имеющих собственные центральные процессоры, оперативную память, коммуникационные процессоры или сетевые адаптеры, другое оборудование. Каждый узел работает независимо от других, к оперативной памяти узла и его жестким дискам имеет доступ только «свой» процессор. Узлы соединяются между собой и с управляющим мастер-сервером скоростными коммуникационными каналами, работающими со скоростью 10 Гбит/с и более).
Главные преимущества MPP-систем:
- быстрая обработка больших объемов данных при выполнении сложных SQL-запросов за счет распараллеливания операций и отсутствия «расшаривания» ресурсов, которое требует потактовой синхронизации процессоров;
- простота горизонтального масштабирования до сотен узлов;
- отказоустойчивость за счет зеркалирования и резервирования.
Долгое время рынок аналитических массивно-параллельных СУБД был фактически поделен между четырьмя решениями — Vertica (OpenText), Teradata (Teradata), Netezza (Netezza) и Greenplum (разработана одноименной компанией, вместе с ней неоднократно переходила «из рук в руки»).
Greenplum — это горизонтально масштабируемая массивно-параллельная реляционная СУБД для хранилищ со столбцовым хранением данных. Она базируется на взаимосвязанных СУБД PostgreSQL, объединенных в кластеры. Каждый узел кластера, как это положено в MPP-архитектуре, имеет собственную память, операционную систему и жесткие диски.
Отличительная особенность Greenplum в том, что кроме «обычного» главного сервера есть резервный, который включается при проблемах на основном. Это дополнительно повышает отказоустойчивость системы.
В 2017 году компания Pivotal, которой тогда принадлежала Greenplum, опубликовала исходный код СУБД под свободной лицензией Apache. На базе этого кода российская компания Arenadata, основанная выходцами из Pivotal и еще одной известной компании, Mirantis, представила собственное решение — Arenadata DB (ADB).
«Российский Greenplum»: архитектура, возможности, особенности
Arenadata DB, как и ее «материнское» решение — реляционная СУБД, имеющая массово-параллельную архитектуру без разделения ресурсов, способная хранить и обрабатывать десятки петабайт данных.
Архитектура ADB представляет собой классический кластер. Она включает основной и резервный мастер-серверы и несколько серверных сегментов, соединенных между собой быстрыми интерконнектами. В каждом серверном сегменте есть несколько сегментов PostgreSQL, содержащих данные. В случае отказа одного или нескольких сегментов они помечаются как сбойные и вместо них запускаются их «зеркала», репликация данных для которых происходит посредством используемой в СУБД PostgreSQL технологии опережающей записи (Wright Ahead Log, WAL — все изменения таблиц и индексов записываются в файл только после их занесения в журнал).
Такая система резервирования помогает развернуть кластер с заранее заданным уровнем отказоустойчивости, позволяя СУБД работать даже при выходе из строя половины серверов.
Использование нескольких интерконнектов дает возможность повысить пропускную способность канала взаимодействия сегментов между собой и обеспечить отказоустойчивость кластера за счет перераспределения трафика. Распределение сегментов по сетевым интерфейсам выбирается индивидуально и может подстраиваться под задачи кластера — так, например, все основные сегменты можно заставить использовать один сетевой интерфейс, резервные же будут использовать второй.
В ADB реализуется классическая схема разделения данных — каждая таблица состоит из N таблиц, размещаемых на N сегментах кластера. Для каждой отдельной колонки в таблице можно задать свой тип и уровень сжатия. Помимо изначально доступных в Greenplum типов компрессии — zlib и RLE delta compression в ADB можно использовать алгоритм zstandard, разработанный компанией Facebook* и имплементированный в Greenplum командой Arenadata. Этот алгоритм обеспечивает почти в четыре раза более высокую производительность по сравнению с zlib.
В Arenadata DB используется полиморфное хранение данных: например, одну таблицу можно разделить на вертикальные разделы (партиции), часть из которых будет храниться в виде строк, а часть — как колоночные объекты. При этом для пользователя такая таблица будет выглядеть одним объектом.
Безопасность в данных ADB обеспечивается за счет шифрования данных и соединений «сервер-клиент» по протоколу SSL на всех этапах их жизненного цикла. Кроме этого, все внутренние взаимодействия компонентов СУБД ADB также могут быть зашифрованы с помощью протокола SSL, а данные, хранящиеся на дисках кластера, — зашифрованы с помощью ключей PGP (на уровне таблиц или колонок в таблицах).
Другой механизм обеспечения безопасности — разграничения зон видимости данных и прав доступа, который обеспечивается благодаря ролевой модели, позволяющей реализовать гибкие правила разграничения доступа. Так, например, можно создать схемы ограничения доступа к таблицам и другим объектам СУБД, а также к строкам и столбцам отдельных таблиц.
Одно из важнейших качеств аналитической СУБД — высокая производительность при обмене данными с внешними системами. В ADB реализован протокол параллельного обмена данных, который обеспечивает взаимодействие с внешней системой одновременно всех сегментов кластера. Если система-источник также представляет собой кластер, то можно использовать кластерное взаимодействие с обеих сторон, что позволяет повысить производительность, причем скорость взаимодействия будет расти по мере расширения кластеров.
Установка Arenadata DB возможна как on-premise, так и в облаке. В частности, можно воспользоваться «базой данных как сервисом» в облаках крупнейших российских провайдеров — VK Cloud Solutions, Cloud.ru, beeline cloud, DataLine (входит в «Ростелеком-ЦОД») и ряда других.
По-настоящему отечественная
Многие российские разработки в той или иной степени основаны на продуктах с открытым кодом. Это вполне естественно, однако вопрос состоит в том, насколько реально усовершенствован исходный продукт, имеет ли место серьезная доработка или пресловутая «переклейка шильдика».
С Arenadata DB этот вопрос не стоит, поскольку саму Greenplum в немалой степени можно назвать «российской». В 2022 году 44% от всех одобренных запросов на принятие изменений, поступивших от международного сообщества разработчиков, в последнюю на текущий момент, шестую версию этой Greenplum внесены компанией Arenadata. На втором месте — китайский гигант Alibaba (15%), а на четвертом — еще одна российская компания, «Яндекс» с 13%. Схожая картина имела место и в
Хотя эта статистика учитывает только изменения, вносимые независимыми контрибьюторами, без учета усовершенствований со стороны владельца продукта — компании VMwareTanzu, она достаточно показательна. Среди важнейших усовершенствований от Arenadata, например, — упоминавшийся выше алгоритм сжатия zstandard, появившийся сначала в ArenadataDB 5, а потом внедренный в Greenplum 6.
Важное достоинство Arenadata DB — то, что она не «одинока». Arenadata разработала семейство продуктов, образующих платформу управления данными, что делает работу с СУБД более эффективной.
В
Сама же Arenadata DB получила сертификат соответствия ФСТЭК РФ № 4675 от 2 июня 2023 года, став первой в России сертифицированной аналитической, распределенной СУБД, построенной на MPP-системе с открытым исходным кодом.
На пути «в народ»
Одним из этапов на пути продуктов Arenadata к российским заказчикам стало заключение соглашения с Merlion. Согласно нему, компании будут вовлекать в экосистему вендора партнеров дистрибьютора, помогать их заказчикам мигрировать на отечественные решения в области хранения и обработки данных. В Arenadata особо отметили большой опыт работы Merlion с зарубежными вендорами.
В соответствии с соглашением в демо-центре Merlion в виртуальной среде развернут кластер ADB в составе двух управляющих серверов (основной и резервный) и трех серверов обработки данных. Кроме того, развернут сервер управления кластерами Arenadata и сервер наблюдения и оповещения. В СУБД загружены тестовые наборы данных, которые позволяют смоделировать работу с типовыми аналитическими данными.
Демонстрация включает в себя как административные действия по обслуживанию и поддержке базы данных, так и типовые операции с аналитическими данными, включающие в себя загрузку данных в таблицы с разными способами хранения. На демонстрации будут показаны следующие действия:
- знакомство с оркестратором платформы Arenadata (ADCM);
- демонстрация восстановления ADB после аварии;
- создание и заполнение таблиц с различными типами хранения;
- демонстрация разных способов распределения таблиц;
- мониторинг проблем производительности средствами ADB Control.
Запросить демонстрацию можно здесь.
С полным спектром предложений демо-центра Merlion можно ознакомиться на его странице.
* Организация и социальная сеть, деятельность которой запрещена на территории РФ.
Вернуться на главную страницу партнерской зоны