Мы уже рассказывали про коннектор Greenplum-Spark, 2-я версия которого вышла в октябре 2020 года. А сегодня рассмотрим российскую альтернативу для отечественной MPP-СУБД Arenadata DB на базе Greenplum, выпущенную компанией Аренадата в июле 2021 года. Краткий обзор ADB-Spark Connector: архитектура, принципы работы, сценарии использования, а также отличия от PXF-фреймворка и варианта Pivotal.
Трудности PXF в Arenadata DB
В основе отечественных Big Data решений, выпускаемых компанией Аренадата, лежат популярные open-source фреймворки, адаптированные для корпоративного использования. А, поскольку open-source статус позволяет зарегистрировать эти модификации как в качестве российского ПО, то продукты Arenadata активно используются в РФ для проектов цифровизации государственных организаций и частных предприятий. В частности, в июне 2021 года банк ВТБ объявил о развертывании новой платформы для сбора, хранения, обработки и анализа системных логов на базе Arenadata EDP. Ожидается, что это снизит TCO в 2 раза по сравнению с предыдущим вариантом реализации, повысить надёжность и качество внутрибанковских сервисов, а также позволит намного быстрее выявлять источники нештатных ситуаций благодаря ML-инструментам предиктивного анализа больших данных [1].
Развивая эту корпоративную платформу аналитики больших данных, компания Аренадата в июле 2021 года представила средство интеграции между ее компонентами: аналитической MPP-СУБД на базе Greenplum и Apache Spark. Этот ADB-Spark Connector обеспечивает высокоскоростную и параллельную передачу информации между Spark и Arenadata DB по протоколу gpfdist в HTTP-сервере, обеспечивая запись на сегменты Greenplum без участия мастер-узла и возможность гибкого партиционирования при чтении данных из Greenplum в Spark. Также ADB-Spark Connector позволяет не устанавливать утилиту gpfdist на каждом узле Spark-кластера и избежать технологии PXF, которая ранее использовалась для обмена данными между Arenadata DB и Arenadata Hadoop [2].
Greenplum для инженеров данных и аналитиков данных
Код курса
GPDE
Ближайшая дата курса
27 января, 2025
Продолжительность
24 ак.часов
Стоимость обучения
72 000 руб.
Напомним, PXF (Platform eXtension Framework) – это специализированный Java-фреймворк параллельного обмена данными со сторонними системами, который обеспечивает одновременное взаимодействие всех сегментов кластера Greenplum с внешним источником данных. PXF появился еще в 5-ой версии Greenplum в 2017 году как отдельный процесс на сервере, который общается с сегментами Greenplum через REST API и использует сторонние Java-клиенты и библиотеки для связи этой MPP-СУБД с внешними системами через JDBC.
PXF предоставляет коннекторы для доступа к данным во внешних источниках, которые сопоставляют их с определением внешней таблицы Greenplum. Один процесс PXF-агента на каждом хосте сегмента Greenplum выделяет рабочий поток для каждого экземпляра СУБД, который участвует в запросе к внешней таблице. Агенты PXF на хостах с несколькими сегментами взаимодействуют с внешним хранилищем данных параллельно [3].
В Arenadata DB технология PXF реализована в виде JDBC-плагина с API, который поддерживает запросы чтения (SELECT) и записи (INSERT). Поскольку Плагин PXF JDBC сам является клиентом JDBC, разворачивать PXF на хосте с внешней СУБД не требуется. Однако, для его практического использования необходимо установить этот плагин на всех узлах PXF вместе с JDBC -драйвером для внешней базы данных с возможностью подключения к ней. Кроме того, таблица PXF и таблица во внешней СУБД должны иметь одинаковую схему, т.е. имена и типы столбцов должны совпадать. Также в официальной документации Arenadata DB отмечены ограничения по именованию таблиц, поддерживаемым типам данных и невозможности одновременной обработки внешней таблицы ADB запросов SELECT и INSERT.
Распараллеливание в плагине PXF JDBC обеспечивается через партиционирование — одновременный доступ к внешней таблице на чтение из нескольких узлов PXF. Способ партиционирования определяется типом данных столбца разделения: INT, DATE и ENUM. При запросах INSERT рекомендуется использовать промежуточные (staging-) таблицы во внешней СУБД [4].
Таким образом, PXF-технология имеет ряд ограничений, устранить которые разработчики платформы Arenadata EDP решили, выпустив ADB-Spark Connector для двусторонней связи между Greenplum и Spark. На практике этот коннектор ориентирован на построение корпоративных хранилищ и озер данных с Arenadata Hadoop и Arenadata DB. Примеры подобных кейсов мы рассматривали этой здесь и здесь.
Код курса
ADB
Ближайшая дата курса
по запросу
Продолжительность
ак.часов
Стоимость обучения
0 руб.
ADB-Spark Connector от Аренадата vs интеграция Spark c Greenplum от Pivotal
ADB-Spark Connector построен на версиях Scala 2.11 и 2.12, а также библиотеке ScalikeJDBC, которая обеспечивает доступ к SQL-СУБД для разработчиков Scala, представляя собой оболочку JDBC API. QueryDSL в ScalikeJDBC гарантирует типобезопасность и поддерживаемость кода. А для повышения производительности вместо Akka HTTP для реализации gpfdist-протокола в ADB-Spark Connector используется фреймворк Finagle – расширяемая RPC-система для построения многопоточных JVM-сервисов. Изначально Finagle был создан компанией Twitter для внутреннего пользования, но сейчас успешно применяется в Foursquare, Pinterest, Tumblr, Tinder, Тинькофф, XiaoMi и многих других Big Data проектах [5]. Его реализация многопоточности отлично подходит для поддержки множества одновременных сессий от сегментов ADB [3].
Разработчики ADB-Spark Connector утверждают, что по сравнению со Spark-Greenplum коннектором от компании Pivotal, их решение обладает следующими преимуществами:
- более гибкое партиционирование таблиц — 5 способов вместо 2;
- большее число типов данных, включая интервалы и массивы;
- дополнительные функциональные возможности – поддержка пакетного режима в Spark, сбор статистики для построения планов запросов при помощи оптимизатора Catalyst и выполнение произвольных SQL-запросов через мастер-узел кластера Arenadata DB.
Пока ADB-Spark Connector поддерживает версии Spark 2.3.x и 2.4.x, в перспективе будет добавлена 3-я версия этого фреймворка аналитики больших данных с поддержкой потоковой передачи.
Код курса
ADBR
Ближайшая дата курса
по запросу
Продолжительность
ак.часов
Стоимость обучения
0 руб.
Освоить администрирование и эксплуатацию Greenplum и Spark на примере решений Arenadata или как отдельные инструменты эффективного хранения и аналитики больших данных вам помогут специализированные курсы в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
- Greenplum для инженеров данных
- Apache Spark для разработчиков
- Основы Hadoop
- Greenplum для инженеров данных
- Администрирование Greenplum / Arenadata DB
Источники