Последние 12 месяцев много обсуждается тема миграции с ИТ‑систем, которые оказались недоступны в России. Во всех компонентах ИТ‑инфраструктуры появились критические зоны, которые раньше закрывались международными продуктами и которые нужно срочно переводить на работающие платформы. Не исключением стала и область бизнес‑аналитики. Иностранные BI‑системы ушли с российского рынка и компании начали интересоваться, на что можно перенести свою аналитическую отчетность.
Меня зовут Александр Гончар и работаю в консалтинговой компании A2 Consulting и для нас тема миграции с зарубежных BI‑решений не является новой. За последние пять лет мы реализовали десяток проектов, в которых осуществляли миграцию из аналитических платформ в другие решения, прежде всего, в части хранилищ данных (ХД). Расскажу сегодня об опыте миграции с такого известного BI‑инструмента, как Qlik.
Зачем мигрировать с Qlik?
Актуальность миграции данных с платформ QlikView и Qlik Sense, в которых основные данные хранятся в файловом хранилище в виде QVD‑файлов, а весь ETL выполняется средствами Qlik, сохранялась из‑за нескольких факторов.
Первая причина — желание заказчиков глубже анализировать клиентские данные и пользоваться преимуществами предиктивной аналитики. Параллельно, у компаний из других отраслей существовало несколько систем бизнес‑аналитики, и им хотелось пользоваться данными из единого источника.
Для реализации этой задачи данные должны лежать в отдельном хранилище, а не в системе бизнес‑аналитики. Поэтому мы часть данных выгружали из Qlik в хранилище, а затем постепенно выносили их все больше и больше. При этом QVD‑файлы в системе остаются, но используются только для последнего слоя, витрины данных.
Дополнительно, ETL выполняется другими инструментами, например, Python, а оркестрация данных — AirFlow. Теперь данными из ХД может пользовать не только QlikView/Qlik Sense, но и другие информационные системы.
Вторая причина того, что мы начали организовывать ХД отдельно от Qlik, связана с бурным развитием Microsoft Power BI (PBI). У многих заказчиков вставал вопрос о миграции с Qlik на Power BI или с дополнением существующей бизнес‑аналитики еще и отчетами в PBI. Это связано с тем, что у компаний в подписку Microsoft обычно включается большое количество лицензий на PBI и это хороший повод для того, чтобы расширить количество пользователей системы бизнес‑аналитики, не увеличивая число лицензий.
При миграции хранилища в этом случае мы часть данных выносили в Microsoft Azure и обрабатывали их MS SQL Server либо Synapse. Данные шли и в Qlik, и в PBI. Новые пользователи работали с более простыми отчетами, но количество пользователей росло.
Следующая причина популярности миграции ХД из систем Qlik — это рост количества приложений и нагрузки на сервер BI‑системы. Традиционно по утрам пользователи сталкивались с пиком нагрузки обновления данных, и вся система бизнес‑аналитики начинала тормозить. Логичным шагом было вынести хранилище, в котором данные в том числе и обновляются, в другой инструмент.
Как мигрировать?
Первый шаг, с которого надо начинать проекты по миграции, это выбрать формат: экспресс‑миграция или создание полноценной новой BI‑системы. Экспресс‑миграция означает, что мы выбираем самый простой инструмент, копируем в него данные из Qlik, а ETL и ХД реализуем на технологиях open source. Цель такого проекта — обезопасить свою BI‑систему, в условиях, когда ее могут отключить, например, и снизить нагрузку на Qlik.
Полноценное создание BI‑решения предполагает более длительный подготовительный этап проектирования системы в формате Data World. В связи с этим нужно будет сделать не просто ETL и ХД, а разработать полноценное хранилище и далее его наполнять данными.
А что на практике?
Разберем несколько реальных проектов.
Игрок рынка eCommerce использовал BI‑систему QlikView для аналитики по продажам, финансам, остаткам и закупкам. Кроме 50 пользователей QlikView маркетологи компании использовали Tableau и для них требовалось построить хранилище данных на Snowflake. Параллельно группы data scientist‑ов компании испытывала трудности с неудобной выгрузкой данных из Qlik через Excel.
Наше решение включало в себя два этапа, первый из которых занял всего 3–4 недели, а второй около 3 месяцев. Мы создали базу в MySQL, с помощью Python вынесли туда ETL, обработку, QVD‑файлы и всю их цепочку преобразования — слой выгрузки, хранения и конечные витрины для каждого приложения, сделав отдельные SQL схемы под каждое приложение.
Так как у маркетинга были свои цели и им нужно было отдельно готовить таблицы для прогнозов и предиктивной аналитики, мы развернули отдельно хранилище на Amazon Redshift.
В результате компания сэкономила на стоимости владения Snowflake и ускорила работу BI‑систем за разгрузки QlikView.
Еще один проект мы реализовали в розничной сети. Ритейлер работал одновременно с QlikView и Qlik Sense, у которых были общие QVD файлы. ETL и подготовка QVD‑файлов реализовывалась на QlikView, а визуализация — в Qlik Sense. В будущем сеть планировала полную миграцию на Qlik Sense. Объем данных постоянно рос, росло и количество пользователей, а ИТ‑отдел устал от постоянной необходимости увеличивать мощности.
Мы предложили альтернативное решение. Чтобы не переносить данные из QlikView в Qlik Sense, мы создали data lake на Greenplum. Из этой среды обе BI‑системы стали брать данные. Таким образом была снижена нагрузка на ночную работу систем и ускорена работа приложений за счет предварительных расчетов, которые ведутся в ХД.
Через год сеть начала полноценный проект по внедрению ХД по модели Data World и выяснилось, что значительная часть работ уже сделана, так как создан data lake. А в прошлом году этот же ритейлер всего за три месяца смог мигрировать полностью на другую BI‑систему.
В третьем случае крупный дистрибутор столкнулся с ситуацией, когда через 30 дней он терял доступ к Qlik Sense. В системе работали 100 пользователей и была реализована аналитика по продажам и управлению дебиторской задолженностью. Причем данные для Qlik Sense собирались из систем 1С из различных филиалов, расположенных в разных городах.
Здесь мы пошли по схеме экспресс‑миграции. В течение двух недель мы вынесли основной ETL и QVD‑файлы в отдельную базу данных на PostgreSQL, настроили обновление данных с помощью AirFlow и таким образом получили копию данных, которые были в Qlik Sense в отдельной базе. Далее мы сохранили технические задания по всем расчетам и полное описание демоверсии.
За это время ИТ‑служба дистрибутора нашла BI‑систему, в которой было решено работать в дальнейшем. В течение трех недель мы повторили аналитику для продаж в ней, а затем в спокойном режиме мигрировали другие приложения.
Завершу свой рассказ кейсом клиента, у которой хранилище было реализовано на AWS, а QlikView использовался для визуализации данных. При этом cервер Qlik был зашифрован и было отключено его бэкапирование. Пришлось в экспресс‑режиме за несколько недель перерабатывать все приложения. Но так как в Qlik была только визуализация, нам удалось оперативно все скопировать.
Неужели проекты по миграции с Qlik так просты?
С одной стороны, да. Но с другой, в них есть ряд сложностей. И это не развертывание ХД, хотя этот процесс может быть трудоемким или длительным. Важным моментом при реализации таких проектов является понимание специфики технологии Qlik. Из‑за нее часть процессов необходимо проектировать по‑другому — например, модели данных и работу с правами доступа.
Важным фактором является запуск проекта миграции и обучение пользователей работе с новой системой, так как логика анализа и работы поменяется. Важно заранее продумать визуализацию — будет ли это интерфейс новой BI‑системы от вендора или вы готовы дописывать собственную визуализацию на JS.
Еще один вопрос связан с выбором конкретной технологии — open source или проприетарного решения. Здесь выбор зависит от текущей инфраструктуры компании — если кто‑то работает на технологиях Microsoft, логичнее использовать программные компоненты этого вендора. Но безусловно текущая ситуация в России заставляет все чаще делать выбор в пользу платформ с открытым кодом.
Логика бизнес‑пользователя Qlik в self‑service и цепочках анализа отличается от возможностей текущих BI‑инструментов — российских или других. Но мы понимаем, в чем именно заключаются эти отличия и готовы делиться этими знаниями.
P. S. Отдельная тема — это миграция Qlik NPrinting, но об этом я расскажу в следующей статье.
Источник: Хабр