Article content
Geometa хранит большие объёмы ценных данных, которые регулярно актуализируются в рамках бизнес-процессов. Пользователь размещает в системе разнообразную информацию, предоставленную не всегда в структурированном виде. Это сложная задача, требующая специальных знаний и навыков. Возьмем для примера градостроительную документацию, где в составе одного документа данные могут быть размещены в десятки слоев. Автоматизировать сложные процессы помогают специальные модули и инструменты, расширяющие возможности платформы Geometa.
В результате взаимодействия с реальными пользователями мы регулярно обновляем Geometa, теперь очередь дошла и до импортёра. Модуль Emerald по сути объединил два существующих решения, представленных в виде десктоп- и веб-приложений для импорта данных. Мы взяли лучшее от них, добавили недостающие возможности и учли такие важные факторы, как:
- Общероссийский тренд на импортозамещение и использование отечественного ПО.
- Требования к безопасности данных.
- Необходимость быстрой доставки данных.
- Возможность расширения поддерживаемых форматов исходных файлов.
Что представляет собой модуль?
Модуль представляет собой самостоятельное сервисное приложение для загрузки данных в систему.
Процесс работы с модулем для пользователя проходит в три простых этапа.
Этап 1. Выбор шаблона
В шаблоне содержатся правила, в соответствии с которыми исходные данные размещаются в целевой базе данных. Шаблон позволяет импортировать как сами объекты, так и связи между ними. При отсутствии нужного шаблона его можно создать, указав критерии поиска объектов для установления связей, фильтрации и преобразования данных. Для этого в системе используется собственный язык запросов, который максимально упрощен и проверяется на ошибки уже во время настройки шаблона.
Этап 2. Создание задачи импорта
Пользователь запускает процесс загрузки данных по ранее выбранному шаблону и может сопоставить вручную или автоматически исходные файлы с типами объектов, куда должны быть загружены данные. Перед стартом импорта система проверит используемые шаблоны с помощью интеллектуального анализа. Инструмент оценит структуру шаблона на соответствие исходных файлов и целевой базы данных, а также позволит установить последовательность импорта с учётом зависимости загружаемых данных друг от друга. Это позволяет сэкономить время пользователя и узнать о проблемах еще до начала импорта.
3 этап. Отслеживание прогресса выполнения импорта
Модуль оснащён журналом, в котором содержится подробная информация о ходе выполнения импорта и возникающих ошибках.
Журнал позволяет:
- увидеть очерёдность задач импорта, что делает предсказуемым время импорта;
- узнать информацию об импортированных ранее данных: что импортировано, кем, когда, сколько записей содержал исходный файл, какой шаблон использовался и многое другое;
- обнаруживать ошибки и определять их причины возникновения.
Что изменилось в новом импортёре?
Новая версия импортёра позволила реализовать:
- инструменты безопасной передачи данных, поскольку теперь не используются прямые запросы к базам данных;
- плагинную систему, которая обеспечивает расширенную базу поддерживаемых форматов данных (.gml, .tab, .shp, .gpx, .kml/kmz, .mid/mif, .xlsx, .csv) и позволяет в короткие сроки добавлять новые;
- возможность работы на серверах с сертифицированной ОС Astra Linux;
- быстрый поиск и устранение ошибок в процессе их создания или импорта посредством интеллектуального анализа проблем;
- оптимальную производительность за счёт организации очередности задач импорта;
- детальный журнал импорта.
Как разрабатывался модуль?
Для создания усовершенствованного импортёра на первом этапе команда провела большую работу с пользователями. Это позволило собрать более двухсот пользовательских историй и описать базовые технические требования к функционалу нового модуля, которые потом уточнялись на этапе создания прототипов.
Параллельно с этим процессом проводился обратный инжиниринг существующих продуктов — десктоп-импортёра и веб-импортёра. Эти работы позволили зафиксировать результаты анализа функций, так команда узнала, что востребовано регулярно, что используется время от времени, а от чего стоит отказаться.
На следующем этапе команда изучила существующие на рынке ETL-решения: Visual Flow, Apache Airflow и Oracle Data Integrator. Это позволило собрать примеры лучшего опыта, чтобы сделать будущий импортёр ещё удобнее и функциональнее.
Самым серьёзным вызовом была необходимость создать программу без использования SQL-скриптов, чтобы обеспечить безопасность работы с данными. По современным требованиям к безопасности все операции в целевой базе данных должны выполняться через слой доступа к данным DAL. Альтернативой SQL-скриптам стало решение использовать собственную грамматику для описания правил импорта. В этой части работы еще продолжаются. Мы планируем внедрить новые функции, которые станут полноценной заменой подхода с SQL-скриптами в рамках решаемых пользователями задач.
В настоящий момент модуль внедрён в 19 субъектах РФ и проходит этап обработки обратной связи от пользователей. Это позволит приоритизировать задачи по доработке и развитию функционала.
Благодарим всех, кто принимал участие в этом масштабном проекте. Благодаря вам развивается продукт и оптимизируется наша совместная работа, благодаря вам новый модуль импорта данных Emerald с сентября включён в основной пакет программных решений на платформе Geometa.