Главное Авторские колонки Вакансии Вопросы
82 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Миграция с Power BI на Visiology: как мы перевели сложнейшую аналитику без потери бизнес-логики

Мы рискнули перенести сложный отчет с нетривиальной семантикой из Power BI в Visiology. Рассказываем, где пришлось пересобрать модель данных, писать JavaScript вместо пары кликов и почему результат все равно того стоил.
Мнение автора может не совпадать с мнением редакции

Честно говоря, когда мы затевали этот эксперимент, у нас были сомнения. Не из серии «получится или нет», а скорее — насколько будет больно. Идея взять сложный отчет с нетривиальной семантической моделью, различными визуализациями и метриками и просто «перенести» его в другую систему звучит... ну, слегка наивно.

Но задача была понятная: проверить на практике, можно ли переехать на Visiology и не потерять ключевую аналитику. Не в теории, а вот прямо руками.

Спойлер: точь-в-точь не получится. Но (и это важно!) все бизнес-задачи мы в итоге закрыли. Иногда элегантно, иногда через костыли, но закрыли.


пример страницы отчета в Power BI

пример страницы отчета в Visiology

Что и зачем переносили

Рабочий отчет для отделов трейд-маркетинга, продаж и полевой команды. Отчет, где видно, выполняют ли мерчандайзеры план визитов, есть ли товар на полке, как мы выглядим относительно конкурентов, прайс-мониторинг, анализ рабочего времени сотрудников — инструмент, на который бизнес реально опирается при принятии решений. Источником выступает PostgreSQL, которую наполняет вендор.

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

Архитектура — пришлось думать по-другому

Первое, что выбило из колеи, — подход к модели данных. В Power BI у нас была классическая история: несколько таблиц фактов, несколько таблиц измерений, связи между ними. Схема «созвездие». В Visiology — только «звезда» (хотя на момент написания статьи Visiology уже умеют и в «созвездие». Это мы будем тестировать следующим).

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

Что это значит на практике. Например, в Power BI у нас были Визиты → Анкеты → Вопросы в анкетах и ответы на них. В Visiology такое сделать, увы, было нельзя. Пришлось отказаться от привычной нормализованной модели и собрать набор витрин — агрегированных, заранее подготовленных. Да, это менее гибко. Да, где-то появляется дублирование. Да, поддержка становится тяжелее.

Но! После того как модель была правильно собрана, она начала работать стабильно и предсказуемо. И самое главное — позволила получить все нужные показатели.

Стоит также заметить, что Power Query Editor в Power BI имеет существенно более глубокий функционал. С другой стороны, Visiology позволяет делать SQL-преобразования, чего Power BI делать не дает. Если не углубляться в детали, то пользователю без знания SQL будет крайне проблематично преобразовать таблицу. При решении данной задачи все преобразования, а также все витрины с данными были созданы SQL-запросами. Если вы привыкли делать ETL в Power Query, будьте готовы разочароваться.

Визуализация — не всегда «из коробки», но решаемо

С визуализацией ситуация похожая. Если вы привыкли к Power BI, то поначалу будет ощущение, что «чего-то не хватает». Где-то нет привычных настроек, где-то нужно писать код. И да, иногда это раздражает. Например, хочется сделать градиент в bar chart’ах, и выясняется, что нужно лезть в JavaScript (потратили около часа на поиск решения, что в Power BI делается в пару кликов).

Понятно, что когда решение найдено, то в следующий раз применить его будет легко, но где и как искать — не всегда очевидно.

Хочешь добавить подпись на «бублик» — а это превращается в маленькое исследование: зайди в документацию, найди, что для создания подписей к «бублику» нужен отдельный синтаксис. В какой-то момент мы поймали себя на мысли: «Серьезно? Ради того чтобы добавить % от тотала, пришлось проделать столько действий?»

Хочешь зайти в магазин, как Power BI, и скачать себе визуал-календарь? Увольте, сударь, будьте любезны повторить функционал через сводную таблицу.

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

Но в конце концов находится решение — и оно работает. Понятно, что когда делаешь задачу впервые, всё происходит медленно. Мы убили 2 часа, чтобы раскрасить bar chart (я совсем не знаком с JS). Неприятно, знаете ли.

Не можем оставить без внимания поддержку Visiology. Тут вопросов нет — строгие 10 из 10. Помогают быстро и по делу, накидывают варианты решения задачи, всегда с примерами. Отдельное спасибо ребятам.

В итоге все нужные визуализации были реализованы. Не всегда самым коротким путем, но без потери функциональности.

DAX от Visiology — ограничения есть, но это не конец

Самый чувствительный момент — язык расчетов. Если вы работали с DAX в Power BI, то знаете, насколько он мощный. В Visiology он есть, но... скажем так, не в полном объеме.

Надо заметить, что многие функции у Visiology не реализованы, а некоторые реализованы с неполным функционалом. Но все задачи решили, кроме одной. Сейчас расскажем.

Нужно было посчитать модальную цену — самую частую.

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

В Power BI — одна мера, и всё работает при любых фильтрах, в любых разрезах. В Visiology это просто сделать нельзя.

Мы долго пытались решить это «красиво». Не получилось. И вот здесь пришлось принять важную мысль: иногда нужно не бороться с инструментом, а поменять подход. Пришлось вынести расчеты на уровень витрин. Это менее гибко, а скорее даже очень костно: для каждого разреза нужна отдельная витрина. Но главное — оно работает, хоть и с ограничениями, и дает корректный результат для бизнеса.

А что с производительностью? На выбранном датасете Visiology отлично справилась с задачей: наибольшая таблица имеет около 30 млн строк. Просадок по скорости работы замечено не было. Иногда даже получили прирост, так как решения, которые закрывались мерами в Power BI, пришлось закрыть предрассчитанными витринами в Visiology.

Выводы

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

Реализуемо? Определенно да.

Visiology не позволяет просто взять и скопировать Power BI один в один. И если вы заходите с таким ожиданием — будет больно. Но если смотреть на задачу иначе — не «повторить инструмент», а решить бизнес-задачу — то всё встает на свои места.

Да, где-то нужно пересобрать витрины данных. Да, где-то приходится искать обходные пути. Да, иногда приходится думать там, где просто не ожидаешь подвоха.

Но в итоге:

  1. все ключевые метрики считаются;
  2. вся аналитика доступна;
  3. все сценарии использования закрыты.

И это, на наш взгляд, главное.

Visiology — это не российская версия Power BI, это другой инструмент. Внешне похожи, но дьявол кроется в деталях. Понятное дело, что Power BI — это стандарт в аналитике де-факто, но в текущих реалиях Visiology — замечательная альтернатива. Visiology — зрелое решение, которое реально способно тянуть сложную аналитику. Инструмент однозначно рабочий.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.