Наша компания EasyData работает в области Big Data технологий, является интегратором решений и разработчиком ПО.

С 2012 года компания плотно работает с платформами Vertica и Hadoop, являясь золотым партнером Micro Focus Vertica.

На самом деле, «импортозамещать» зарубежные ETL платформы мы начали сразу, как только стали работать с Vertica в 2012 году. Больше всего проектов мы делали для телекоммуникационной отрасли, где существующим ETL-системам катастрофически не хватало возможностей работы с тем, что так часто встречается в телекоме:

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

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

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

Проектов было много, а специалистов на рынке РФ на самом деле не очень. Чем-то это напоминало ситуацию с аналитикой, когда в славные добрые времена на каждый чих разработчики рисовали отчеты и графики, используя скриптовые языки и успешно лавируя между различными ограничениями. Потом появились BI платформы и это все ушло в прошлое.

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

Реалии 2022

До 2022 года наша компания принимала участие в ряде крупных проектов в разных отраслях, где в качестве аналитического хранилища данных была задействована Vertica. В большинстве из них мы использовали собственные продукты автоматизации ETL/ELT процессов.

В 2022 году компания Micro Focus ушла с рынка РФ. И если для уже запущенных в промышленную эксплуатацию решений на базе Vertica мы смогли обеспечить поддержку и помощь собственными силами, то для разрабатываемых новых проектов хранилищ данных встала явственная дилемма, что использовать в качестве аналитического сервера хранения данных.

Это стало особо актуальным для гос. предприятий, которые могут использовать только российские аналоги ПО. Для коммерческих компаний выбор теперь тоже не велик: это open source решения со всеми вытекающими рисками сопровождения и потери данных или российские продукты, разработанные на базе open-source решений. Например, ПО компании Arena Data, а конкретно Arenadata DB, который был разработан на базе GreenPlum, Arenadata QuickMarts, который был разработан на базе ClickHouse и Arenadata Hadoop, основанный на базе Hadoop.

Если для нового проекта рассматривать платформу аналитического хранилища данных, то изначально GreenPlum и ClickHouse имеют собственную архитектуру решения и собственные ноу-хау. Поэтому сравнивать их с Micro Focus Vertica смысла нет, это совершенно разные продукты для разных задач, с разной функциональностью и производительностью в конкретных случаях. Можно только отметить, что Vertica самый взрослый продукт и имеет наиболее сбалансированную архитектуру и развитый функционал на фоне других продуктов, поэтому требования к уровню квалификации специалистов для работы с этим сервером заметно ниже и качество решения менее зависит от квалификации работающих с ним специалистов.

Все это поставило перед нашей компанией ряд вызовов:

  1. Адаптировать свой опыт разработки решения для Vertica для новых проектов на базе российских платформ хранилищ данных компании Arenadata и других российских производителей подобного класса систем;
  2. Оказать помощь в миграции решений с Vertica на Arenadata DB тем клиентам, которые в силу каких-либо причин более не имеют возможности эксплуатировать хранилища данных на Vertica.

Подходы при разработке новых проектов хранилищ данных

За годы работы в области Big Data компания EasyData запустила множество проектов, достигая высоких результатов благодаря выработанному в процессе подходу:

  1. Работа в контакте с командой заказчика.
    • Тренинги по используемому ПО. Обучение и консультации на старте проекта, в ходе разработки и при сопровождении проекта после запуска в промышленную эксплуатацию.
    • Аудит имеющихся решений. Гибкость процессов, адаптация и бережный переход с учетом имеющихся бизнес процессов.
    • Возможность совместной разработки частей проекта с командой заказчика. Взаимодействие со всеми будущими пользователями проекта – аналитиками, ETL-специалистами, конечными бизнес пользователями и сторонними интеграторами;
  2. Контроль над проектом. Координация разработки всех команд и участников проекта за счет интеграции процессов проектирования, разработки, тестирования и эксплуатации в едином визуальном инструментарии с централизованным репозиторием;
  3. Готовность к изменениям в ходе проекта за счет шаблонизации типовых процессов обработки данных под разработанную архитектуру проекта в виде разработки библиотек решений для их дальнейшего использования в процессах репозитория проекта.

Для того, чтобы успешно разрабатывать новые проекты на российских аналогах аналитических хранилищ данных, наша компания поставила перед собой ряд новых задач:

  1. Нарастить экспертизу по российским хранилищам данных как на собственных проектах, так и путем тесного сотрудничества с вендором продуктов и привлечением специалистов, имеющих накопленный опыт работы с этими продуктами;
  2. Адаптировать работу собственного ПО на тесную интеграцию с продуктами Arenadata с учетом их особенностей, как это было сделано для Vertica;
  3. Дополнить библиотеки шаблонов типовыми решениями работы с продуктами Arenadata, ориентированными на максимально эффективное использование их возможностей.

Миграция с Vertica на другие платформы

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

  1. Разная архитектура серверов хранилищ данных требует разных способов физического хранения данных, управления физической нагрузкой и принципов работы с данными;
  2. Разная функциональность требует разных подходов к организации захвата, доставки и обработки данных на сервере;
  3. Разные механизмы и инструментарий администрирования требуют разного планирования и работ в области управления серверами хранилищ данных.

Такие различия приводят к неминуемым последствиям, к которым нужно быть готовыми:

  1. Любой проект миграции с одной платформы хранилища данных на другую это новый, дорогостоящий и рискованный проект;
  2. Для успешной миграции хранилища данных понадобиться две мощных экспертизы: по старой и по новой платформе. Требуется аудит и анализ работающих процессов на существующей платформе и разработка наиболее эффективных решений для новой платформы;
  3. В ходе проекта миграции затраты будут выше, чем при разработке проекта с нуля, так как потребуется сохранить на новом решении существующую функциональность и интерфейсы работы с внешними системами и пользователями, удержать скорость обработки данных и время отклика системы пользователям и в ходе проекта поддерживать одновременно развитие старой системы, внося параллельно изменения в новую систему.

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

Описание платформы EasyPortal

EasyPortal

Платформа EasyPortal состоит из набора компонент, реализующих полный цикл задач по разработке и сопровождению проектов аналитических хранилищ данных.

EasyPortal WebServer

Веб-сервер, который обеспечивает визуальную разработку задач по работе с данными, моделей правил обработки данных и структур источников с их хранением в едином централизованном репозитории в любых браузерах. Является бесплатным для использования.

EasyPortal WebServer

EasyWorkspace

Клиент для работы с портальными решениями с веб-интерфейсом в виде GUI приложения для платформ Windows, Linux и MacOS. Имеет функциональность браузера.

Дополнительно поддерживает автоматический старт и остановку локальных веб серверов на машине пользователя, что позволяет делать локальные инсталляции продуктов с тонким интерфейсом.

Этот компонент можно использовать без ограничений в собственных проектах, его исходные коды лежат в открытом виде на портале GitHub.

EasyWorkspace

EasyLoader

Включен в реестр российского ПО.

Фреймворк выполнения разработанных в EasyPortal задач. Может вызываться как программа из командной строки ОС и как компонент интеграции с Java-приложениями.

В EasyLoader включена обширная библиотека шаблонов для решения разнообразных задач по работе с файловыми источниками, СУБД, веб-сервисами и другими источниками данных.

В библиотеке содержится широкой набор шаблонов автоматизации работы с хранилищами данных Vertica, включая захват данных, реверс-инжиниринг, синхронизацию структур данных, рефакторинг структур.

Продукт имеет два вида редакции:

  • Community – бесплатная версия,
  • Enterprise – коммерческая версия, включающая часть по расширению работы с Vertica.

EasyLoader

EasyScheduler

Включен в реестр российского ПО.

Мультиплатформенный сервер-планировщик выполнения заданий на множестве управляемых им серверов. В отличие от Quartz, Airflow и других аналогов, его функциональность позволяет управлять по расписанию и заданным правилам задачами на всех серверах одновременно.

EasyScheduler выступает в роли единого центра управления и обеспечивает:

  • балансировку нагрузки по группам серверов,
  • мониторинг состояния серверов и задач,
  • оповещения о событиях и авариях,
  • реализацию ролевой модель доступа,
  • автоматическое обновление ПО на управляемых серверах,
  • управление и контроль через web-интерфейс.

Продукт имеет две редакции:

  • Community, в которой можно управлять задачами на одном сервере,
  • Enterprise, в которой можно управлять множеством серверов и балансировать нагрузки.

EasyScheduler

Getl

Фреймворк работы с данными.

Разработанный на базе Java и Groovy, Getl позволяет работать с источниками данных и файловыми системами на высокоуровневом Dsl языке и оперировать объектами БД, моделями и процессами без сложного объектно-ориентированного кодирования логики процессов на Java.

Getl является ядром работы с объектами репозитория для всех компонент EasyPortal и используется во всех продуктах. Его можно свободно использовать в собственных Java продуктах. Исходные коды выложены на портале GitHub.

EasyServices

Сервер запуска разработанных в EasyPortal WebServer задач в виде веб-сервисов по протоколу RestAPI.

Если при старте разработанного процесса в EasyLoader он запускается как отдельная программа ОС, то при подключении процесса к EasyServices он будет доступен как веб-сервис с аутентификацией. Получаемые веб-сервисы можно использовать для интеграции с собственными приложениями с микро-сервисной архитектурой и с ESB-системами.

Компонент доступен только для коммерческой лицензии EasyLoader.

Сравнение EasyPortal с зарубежными коммерческими аналогами

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

  • Informatica PowerCenter
  • Oracle Data Integrator
  • Talend Data Integration
  • Microsoft SSIS
  • IBM DataStage

Изначально, при разработке EasyPortal не рассматривалась конкуренция с зарубежными продуктами. Основной упор делался на быструю и эффективную разработку решений с постоянно поступающими массивными данными малыми командами специалистов уровня аналитиков и сопровождающих команд ХД самих клиентов. Исходя из этого, конкурирующие продукты имеют разный подход с EasyPortal и разный функционал для решения задач.

Не уступая конкурирующим продуктам, EasyPortal также умеет:

  • Работать со всеми популярными источниками данных и файловыми системами;
  • Захватывать, обрабатывать и доставлять файлы и данные;
  • Интегрироваться с внешним ПО;
  • Распараллеливать обработку данных и использовать возможности реляционных баз данных.

Возможности EasyPortal

EasyPortal не копирует архитектуру зарубежных аналогов, имеет собственные подходы по доставке и работе с данными. Продукт имеет ряд уникальных решений.

Центральный репозиторий описания объектов источников и процессов их обработки

Репозиторий позволяет организовать централизованное унифицированное хранение для групповой разработки, тестирования и эксплуатации в едином пространстве, в котором будут сохраняться описания подключений к источникам данных, объекты хранения данных с описанием их структур, модели правил работы с данными, процессы обработки данных и вспомогательные файлы для работы, такие, как SQL и Python скрипты, файлы конфигурации и эталонные данные:

EasyPortal

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

уникальные именования

Для разных типов объектов репозитория используются специализированные редакторы, с помощью которых можно задать необходимые свойства и структуры для работы с объектами:

специализированные редакторы

Репозиторий отслеживает взаимосвязи объектов для организации отслеживания влияния изменений в репозитории в процессах и источниках данных.

Автоматизация работы со стендами

Для репозитория EasyPortal можно перечислить список стендов, на серверах которых будет производиться разработка, тестирование и эксплуатация проекта:

Автоматизация работы со стендами

При описании подключений к источникам данных для каждого стенда описываются собственные параметры подключения к серверу источника:

собственные параметры подключения

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

 

Моделирование работы с данными

Модели позволяют абстрагировать логику работы процессов данных с источниками данных и облегчить разработку шаблонов типовых задач работы с данными:

Моделирование работы с данными

В создаваемой модели указывается список таблиц с источника данных, связанные с ними таблицы приёмника данных и правила трансформации для создаваемых потоков обработки данных:

список таблиц с источника данных

P.S. При описании моделей происходит автоматическое связывание полей таблиц источника и приёмника. В маппинге можно явно задать связи полей таблиц источника и приёмника, когда их имена не совпадают. Так же можно использовать вычисляемые поля и выражения на Java совместимом языке Getl для преобразования значений полей из источника в приёмник.

Поддерживаются следующие виды моделей:

  • Модели маппинга таблиц источника и приёмника;
  • Модели описания трансформации таблиц источника;
  • Модели мониторинга заполняемости таблиц источника;
  • Модели хранения эталонных файлов для отладки файловых процессов;
  • Модели хранения эталонных данных таблиц Vertica для отладки ETL/ELT процессов.

Шаблонизация типовых задач

Для улучшения качества разработки задач проекта и ускорения хода проекта EasyPortal предлагает готовые шаблоны для типовых ETL и ELT задач проектов хранилищ данных:

 

Шаблонизация типовых задач

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

Стандартная библиотека шаблонов содержит решения для таких типовых задач, как работа с файловыми системами, копирование данных между источниками и генерация случайных данных. Дополнительно в библиотеке шаблонов есть ряд решений, специализированных для работы с аналитическим хранилищем данных Micro Focus Vertica, с помощью которых можно производить захват и доставку информации с источников данных, оптимизацию работы БД, копирование между кластерами Vertica, отслеживание изменение структуры БД и синхронизацию структур БД между стендами.

Разработчики EasyPortal могут легко расширять библиотеку шаблонов собственными решениями, разрабатывая jar библиотеки с использованием Getl Framework в IDE инструментах для разработки Java приложений, включая разработку генератора объектов репозитория:

разработка генератора объектов репозитория

Поддерживается полноценный режим юнит тестирования junit, что позволяет автоматизировать тестирование разрабатываемых типовых шаблонов в используемом IDE:

полноценный режим юнит тестирования junit

Полученный в результате компиляции jar файл далее подключается в панели администрирования портала и становится доступным к использованию:

jar файл

Если в скомпилированном jar файле находятся файлы документации в формате mark down, они станут доступны в системе документации шаблонов портала:

файлы документации в формате mark down

Групповая разработка процессов в репозитории

Хранение описания объектов репозитория в виде текстовых файлов позволяет обеспечить командную работу всех специалистов проекта с помощью системы контроля версий Git, что дает возможность:

  • Работать разработчикам с репозиторием локально на своих рабочих станциях с синхронизацией изменений репозитория с публичной веткой Git;
  • Работать команде разработчиков с репозиторием на серверной инсталляции с синхронизацией изменений репозитория с публичной веткой Git;
  • Создавать разработчикам клоны репозитория как отдельные ветки Git для разработки и отладки нового функционала и патчей с последующим объединением собственной ветки с публичной веткой Git;
  • После создания и тестирования релиза новой версии изменений для промышленной эксплуатации фиксировать состояние репозитория в публичной master ветке Git;
  • Отслеживать историю изменения объектов репозитория членами команды средствами Git:

Отслеживать историю изменения объектов

Шифрование конфиденциальной информации

Наличие системы шифрования по ключу репозитория защищает конфиденциальные данные по подключениям к источникам и не дает их увидеть как в интерфейсе, так и в файлах репозитория на диске. Все пароли логинов хранятся исключительно в зашифрованном виде даже в памяти при работе репозитория и не передаются в браузеры в исходном виде. Пользователь может ввести пароль для логина подключения, но более в портале он не сможет его увидеть. Если процесс обработки данных при работе с источником использует несколько логинов, репозиторий позволяет описать их все для источника и далее просто переключать соединение с источником между ними по имени логина:

при работе с источником использует несколько логинов

Унифицированный интерфейс

Единый интерфейс для работы с порталом на любой ОС на любом браузере или клиентском приложении портала, наличие серверной и клиентской части под разные ОС позволяют легко разворачивать решение на любой конфигурации. Поддерживается работа на Windows, Linux и MacOS платформах.

Планы развития решений компании EasyData

В текущих реалиях требований эффективного развития собственных IT решений для Российской Федерации компания EasyData ставит перед собой ряд понятных задач:

  1. Тесная интеграция компании с дружественными российскими разработчиками платформ хранилищ данных для оказания помощи в ведения масштабных проектов в области Big Data;
  2. Дальнейшее развитие собственных продуктов для автоматизации большего спектра задач, связанных с обработкой и анализом данных;
  3. Участие в разработке продуктов нового поколения совместно с другими российскими разработчиками, которые востребованы на российском IT рынке в рамках озвученных планов по цифровизации страны.

Компания EasyData открыта для сотрудничества с российскими компаниями для успешной разработки и запуска проектов в области Big Data технологий и совместной разработки перспективного ПО в области хранения и анализа больших данных.