Добрый день. На связи снова Алан Джанибеков.
После ухода иностранных компаний из РФ на рынке BI решений много изменений – появляются новые решения, бесплатное становится платным, платное дорожает. При этом, к сожалению, пока эти решения сильно отстают от любимого нами Power BI.
Политические, моральные и кармические аспекты оставим за скобками и попробуем рассмотреть использование Power BI Report Server в текущих реалиях. Реалии заключаются в том, что есть немало пользователей, обладающих on-premise решением Power BI Report Server, они продолжают использовать или переходят на него. То есть используют Power BI локально внутри серверной инфраструктуры компании. Их практику я подглядел и использую для текущей статьи;)
Аспект законодательства за скобки выносить не стоит, поэтому сразу отмечу, что мы не призываем к пиратству или другому пресечению законов РФ – описываем легальные кейсы.
Итак, несмотря на уход Microsoft беглый поиск по hh.ru показывает, что никуда из российского рынка Power BI не ушёл. Во-первых, облачная версия доступна компаниям с дочерними предприятиями в иностранных юрисдикциях, да и просто читателям блога из других стран. Во-вторых, локальная версия Report Server начала пользоваться большим спросом. А причина тому – 1С.
Да-да, зрение вас не подводит, именно 1С. Раньше мем был смешной, а сейчас уже и не понятно…
Дело в том, что администраторы 1С для ускорения работы баз и создания резервных копий пользовались продуктом MS SQL Server. При покупке некоторых типов лицензий SQL Server, PBI RS становился доступным, поэтому если ваша компания находится на стыке выбора BI решения, уточните у вашего администратора – а вдруг у вас уже есть решение можно не только сэкономить бюджет, но и продолжить пользоваться “почти” привычным решением.
Как вы поняли, речь идет про локальную версию Power BI, которая носит дополнение “Report Server”. Решение разворачивается на сервере компании, разработанные отчеты размещаются там и доступ к ним получают пользователи вашей локальной сети, об этом позже. Разработка отчетов происходит в отдельном приложении, которое отличается от Desktop только отсутствием неокторых опций сохранения.
Полное описание продукта на официальном сайте вместе с документацией. Я же обращу внимания на те отличая, на которые обратил внимание во время работы.
- В глаза сразу бросаются отличия интерфейсов:
В RS появляются папки, аналог рабочих областей:
2. В Report Server отсутствуют панели показателей (дашборды) – возможно кому-то важно, я никогда их не создавал. В целом, для очень сильно нуждающихся можно построить отчет с аналогичным видом.
Если вы впервые увидели, что дашборд и отчет – не одно и тоже – Панели мониторинга для бизнес-пользователей служба Power BI
3. Вероятность того, что вам придётся использовать корпоративный VPN я оцениваю в 100%.
4. Рано или поздно разработчик скажет, что какие-то новые “фишки”, доступные в облачной версии до локальной версии ещё не дошли. Они чаще всего базируются на том, что разработчики уже сделали посредством DAX-костылей;) Поэтому для опытных разработчиков не очень критично.
В целом, обновления для облачной версии выходят каждый месяц, для RS – в январе, мае и сентябре. Однако для серверной версии Power BI требуется полная переустановка. При этом далеко не все администраторы готовы к тому, со всех отделов начнуть звонить с вопросом “где отчёты?”, да и вообще погружаться… Поэтому, есть вероятность, что вы останетесь на той версии, которая была изначально установлена.
5. Вместе с этим – частота возможных обновлений отчёта теперь зависит не от типа лицензии, а от источников данных и того, когда администратор скажет «ну это уже перебор!»;
6. Исчезнет возможность «живых презентаций», когда отчёт можно встроить в Power Point 365 и он кликабелен ;(
7. Отсутствует переход к анализу в Excel – ни разу не видел, чтобы это использовалось;
8. Отсутствие закладок для пользователя – на моём опыте никто их не делал. Однако в целом полезная опция. Позволяла сохранить настройки. Сейчас сохранить настройки и перезагрузить отчёт меня просят по почте и приходится держать меня в штате (:
9. Создание отчетов в браузере для RS отсутствует – я никогда не делал в браузере, не знаю тех, кто делал.
10. Отсутствие динамических запросов в Power Query – вот это может быть неприятно для тех, кто применял. Я использовал параметризацию – она на месте, а изменение запросов данных в зависимости от тех или иных условий… не доводилось.
11. Какие-либо шлюзы на сторону Azure для своего сервера, соответственно, не требуется. Тут жирный плюс.
12. Автоматическое обновление страницы при прямом подключении – тоже может бвызывать сложности, то есть на большой монитор гонку KPI вывести сложнее. Конечно можно – нужен питонист, который напишет скрипт обновления.
13. Рассылка email – было полезным, функция сохранилась только для PBI Report Builder.
14. Невозможность создания семантической модели с последующим её использованием в другом отчёте – моя личная боль. Напомним “семантической моделью” – начала называться модель данных в облаке. В Report Server если вам нужны разные отчёты на одних и тех же данных придётся дублировать отчеты или разделять это навигацией.
Кстати, при дублировании – я крайне настойчиво рекомендую проверить, насколько часто у вас будут идти обновления. Не должно быть так, что эти отчеты обновлялись в одно время с одинаковой частотой – сервер данных будет занят обновлением вашего отчёта. Я рекомендую объяснить это пользователям и использовать один общий отчёт, можно к нему применить разделение по ролям…
15. Связь многие ко многим – я никогда не допускаю наличия таких связей, есть возможность или нет.
16. Возможность «проваливаться» в другой отчёт – было удобно из продаж проваливаться в маркетинг. Сейчас нужно совмещать.
17. Python/R скрипты – я не пишу их, кому-то, наверно, будет не хватать. Хотя подготовить данные и визуализировать ничто не мешает.
Более полный список вы найдёте в документации Compare Power BI Report Server and the Power BI service. Я описал наиболее явные.
Ещё одним удобным “наследием” MS SQL Server для PBI Report Server является наличие связки логина в Active Directory. Разработчики добавляют поле, что позволяет удобно связать USERNAME () и настроить RLS. Если вы хотите настраивать RLS с другими системами логин пользователя в Active Directory тоже лучше указывать в вашей учетной системе, даже если у вас просто набор excel файлов.
Речь о том, как разделить доступ к вашему отчету на уровне разных пользователей. Active Directory (AD – сисадмины часто так и сокращают) – это данные об объектах в сети, в частности локальной сети предприятия. Ваш удаленный рабочий стол (RDP) имеет своё название в AD, и если продуманный 1С-ник создает поле в 1С ЗУП, то при импорте данных, можно это поле использовать для настроек прав доступа к данным построчно (row level security – RLS). Почему? Потому что юзеры будут иметь доступ только со своего RDP, и логиниться они будут под своим логином AD, и доступы к отчету будут даваться по группам AD и конкретным юзерам AD. Даже с телефона (приложения Power BI Доступны для всех мобильных ОС) как правило, установив VPN можно будет зайти. В результате вы сможете предоставить разным сотрудникам доступ к разным листам отчета, но даже в рамках одного листа можно настроить разное отображение в зависимости от роли сотрудника – к примеру, это может быть общий отчет, который просматривают менеджеры из разных регионов.
Про ресурсы. PBI RS – такой же веб сервис, под который нужно выделять ресурсы. И то сколько их нужно, я пока не встречал нигде. Но правило очень простое – стройте качественные модели данных. Это влияет на потребление гораздо сильнее, чем объем данных и даже производительность сервера. Избегайте мер с большим количеством итераций, заменяйте их мерами, которые возможно потребляют много памяти, то есть используют виртуальные таблицы для вычислений. Но это также лучше продумывать на этапе импорта данных. Многие вычисления, к примеру построчное перемножение, можно переложить на SQL и это сильно облегчит работу с данными.
На этом у меня все!
Спасибо, что дочитали. Алан.