Импортозамещение BI своими руками

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Привет! Сегодня расскажем большую историю: как мы разработали корпоративную платформу отчётности и решили сделать её общедоступной и бесплатной.

Что мы сделали?

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

Зачем мы это сделали?

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

Анализ данных и системы отчётности в нашей компании развивались больше десяти лет по трём направлениям:

  • Суровый SQL. В бизнес-подразделениях давно существуют команды специалистов со знанием SQL. У них есть права в корпоративном хранилище данных, выделенные там зоны — «песочницы» и собственные небольшие сервера БД. С этим богатством ребята пишут запросы, получают и анализируют результаты, выгружают их в Excel и передают коллегам или руководству. Классика!

  • Массовая отчётность. Тысячи сотрудников компании ежедневно используют отчётность фиксированной формы для решения повседневных бизнес-задач. Выгружают данные из корпоративного хранилища данных в Excel и некоторые платные или бесплатные системы отчётности и BI.

  • Настоящий BI. Данные на лету фильтруются, агрегируются и визуализируются с разной степенью интерактивности и взаимозависимости форм. Как сказали бы лет 15 назад: «Полный фарш!», мечта всех аналитиков, выполненная на развитых BI-платформах.

Что делать с первым направлением примерно понятно: вы анализируете запросы пользователей, создаёте таблицы-агрегаты, решаете вопрос управления конкурентной нагрузкой на СУБД. С хорошей промышленной СУБД под хранилищем (кстати, у нас такая) вы можете эффективно решить последнюю задачу стандартными механизмами СУБД. Правда, если хранилище начнёт расползаться по нескольким системам с разной архитектурой, возникнут новые проблемы. Спросите о них у ребят из любой крупной компании. Но об этом в другой раз.

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

А вот развитие массовой отчётности нас не радовало.

Но сначала — не о плохом. У этого вида анализа данных есть ряд особенностей, которые нужно учитывать при планировании его развития:

  • Максимальная массовость. Тысячи пользователей из всевозможных подразделений компании и самых далёких филиалов.

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

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

По старой-доброй традиции в нашей компании, как и во множестве других, массово используется одно очень популярное средство анализа данных. Пусть нас и просили не упоминать в статье проприетарные бренды, но писать на эту тему и не говорить об Excel невозможно. Поэтому мы упоминаем его уже в четвёртый раз. Он остаётся универсальным и мощным BI-средством несмотря на развитие самых разных BI-систем. Это данность, с которой глупо бороться.

Говорят, что отчётность в Excel — это что-то из прошлого века (по факту, кстати, правы), и настало время перемен. Мы не до конца с этим согласны. Менять нужно ситуацию с файловым хаосом. Испытываете сложности с управлением массовой отчётностью и организацией доступа к ней? Лучше устраните их, а не плодите новые трудности от новых инструментов анализа.

Люди хотят и будут использовать Excel, и им нужно оставить эту возможность. Если предложить им альтернативные инструменты, помогать им в их освоении — будет совсем восхитительно. Мы это даже как-то пробовали: стали использовать дорогое BI-средство корпоративного уровня для создания массовой отчётности, вели активную просветительскую работу, но пользователи всё равно предпочитали выгрузить отчёт в Excel и работать с ним там дальше.

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

К этому фундаментальному требованию добавим ещё два: 

  • Низкая стоимость владения.

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

Что мы имели на старте?

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

  1. Файлы Excel с интерфейсом выбора параметров отчёта, реализованным через VBA. Файлы упорядочивались в системе сетевых каталогов, доступ к которым управлялся Windows-доменом.

  2. Отчёты на корпоративном портале, созданном на основе свободно распространяемой системы Jasper Server. Естественно, несколько доработанной: с удобными интерфейсами выбора параметров отчётов и с учётом требований информационной безопасности по разграничению доступа к данным.

  3. Отчёты в дорогой проприетарной BI-системы промышленного класса с ограничением числа пользовательских лицензий. Сотрудники использовали её как параметризированное средство выгрузки Excel-файлов, а не как BI-систему. Хотя мы пытались объяснить, как лучше.

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

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

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

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

Кроме того, и в бесплатных, и в платных системах не выполнялось одно из наших фундаментальных требований — возможность точно реализовать любое требование, без необходимости прибегать к обходным путям. Можно подумать, что если их не могут реализовать системы с многолетним мировым опытом, они у нас какие-то астрономические. Или надуманные, от которых и отказаться не жалко. Но нет: наши требования проистекают из нашего опыта, от которого нельзя отказаться. Вы бы отказались от всего, что много лет строили и чем пользовались в своих хранилищах данных и системах отчётности? Вот и мы не стали отказываться.

Самый простой пример такого требования: пользователь хочет фильтровать выборку по одному из бизнес-ключей (код, номер, название — текстовые поля). Он вставляет перечень этих ключей в соответствующее поле и запускает запрос. Обычно системы отчётности делают это с фильтрацией по данному полю, записывая в WHERE значения, которые указал пользователь. Для некоторых СУБД (у нас как раз такая) эффективнее, когда в запрос попадает перечень суррогатных числовых ключей, играющих важную роль в архитектуре БД. Нам всегда очень не хватало шага преобразования бизнес-ключей в суррогатные перед выполнением запроса — небольшой промежуточный шаг, сильно увеличивающий эффективность обработки запросов базой. И при высоком уровне нагрузки на СУБД это очень важная штука. Спойлер: в своей системе мы это предусмотрели.

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

Что у нас получилось?

Система корпоративной отчётности, которая сегодня выступает центральным корпоративным порталом, обслуживающим тысячи пользователей практически из всех подразделений компании. Название родилось естественным образом — Магрепорт (уверены, объяснять этимологию вам не нужно

Источник: https://habr.com/ru/company/magnit/blog/685604/


Интересные статьи

Интересные статьи

Все помнят цепочки сертификатов и условия соблюдения доверительных отношений. Будем говорить об этом.Сегодня прилетела одна “очень интересная задача”. Пользователям понадобился сайт: https://fgiscs.mi...
Всем привет. Текст состоит из двух частей:1. Небольшая шпаргалка по параметрам настроек по умолчанию;2. Текст о том, почему вообще существование такой шпаргалки может кому-то понадобится.
Субботний вечер омрачен скандалом - сайт не работает, провайдер негодяй, админы - не специалисты, а сервера - решето. Вызов принят, или почему при всей нелюбви к 1С-Битри...
Привет. Некоторое время назад я собрал маленькую паяльную станцию, о которой хотел рассказать. Это дополнительная упрощенная паяльная станция к основной, и конечно не может ее полноценно заменит...
Как обновить ядро 1С-Битрикс без единой секунды простоя и с гарантией работоспособности платформы? Если вы не можете закрыть сайт на техобслуживание, и не хотите экстренно разворачивать сайт из бэкапа...