Как Microsoft спрятала целый сервер и как его найти

    — Видишь SSAS-суслика?
    — Нет…
    — И я не вижу. А он есть!

    Суслик SSAS

    (Кадр из к/ф «ДМБ»)

    Поддержка относительно новой табличной (табулярной) модели данных, в противовес устоявшейся многомерной OLAP, встроена в целый ряд продуктов компании Microsoft. Начиная с SQL-сервера (SS) и заканчивая Excel. И если с SS всё понятно – в нём содержится отдельный сепаратный продукт SQL Server Analysis Services (SSAS). А как же решена поддержка языка DAX-запросов и прочей табулярной функциональности в Power BI, SharePoint или Excel? Поищем «суслика» на примере Power BI Desktop.

    Думаю, многие замечали, что при установке на компьютер Power BI Desktop, параллельно разворачиваются структуры папок Microsoft SQL Analysis Services (SSAS) Это опциональный серверный компонент, входящий в состав высших редакций SQL-сервера от Microsoft (в частности редакций Enterprise и Business Intelligence). Он отвечает (как легко догадаться из названия) за аналитическую функциональность и, в частности, создание OLAP-кубов и доступ к ним, а, начиная с 2012-й версии, и за полноценную поддержку новой идеологии многомерных хранилищ данных – табулярной (или табличной) модели данных. Этого «зверька» придумали для поддержки поколоночного хранения данных (в отличие от стандартного для OLTP строкового хранения) и работы со всем набором данных в оперативной памяти (in-memory). Чуть более подробно тут.

    Структура рабочих папок

    Структура рабочих папок Power BI Desktop (Stand-alone установка)

    Включение в десктопный софт серверных компонентов выглядит достаточно логично с точки зрения разработки и главное дальнейшей поддержки единообразия табулярной модели данных, общей и для флагманского серверного продукта, и для десктопной среды разработки и даже для Excel. В частности в Power BI Desktop просто интегрировали серверное ядро SSAS, отвечающее за поддержку этой самой табулярной модели и DAX-запросов к данным. При запуске приложения Power BI Desktop стартует движок xVelocity (в девичестве vertiPaq) встроенный в сервер SSAS, который и выполняет всю черновую работу по обслуживанию DAX-запросов, распределению нагрузки, управлению памятью и передачу результатов рендеру, который уже и отображает результаты в виде графиков, гистограмм, сводных таблиц (matrix) и других визуальных элементов, доступных в среде Power BI.

    Структура PBI


    Что нам даёт это знание внутренней кухни? А то, что подобная модульная структура позволяет использовать Power BI Desktop в качестве тестового сервера аналитики без необходимости развёртывания полноценной среды SQL сервера c Microsoft Analysis Services. И без соответствующей лицензионной нагрузки (т. е. бесплатно). Безусловно, этот подход нельзя использовать в промышленных решениях. Однако для быстрого развёртывания тестовой инфраструктуры и проверки построенной модели данных ничего лучше и не придумаешь.

    Советы домашнему мастеру


    Для определения актуального номера порта, на котором запустился локальный «карманный» Analysis Services проще всего использовать потрясающий бесплатный инструмент, «швейцарский нож» для любого DAX-хакера DAX Studio.
    При подключении из DAX Studio к вашей модели данных (при этом необходимый PBIX-файл должен быть открыт в Power BI Desktop) в статусной строке приложения отобразятся параметры подключения (как на рисунке ниже), которые можно использовать, для доступа к этой модели данных из других приложений, например из Excel или другого экземпляра Power Bi Desktop локально или по сети.

    image

    Номер порта при каждом следующем запуске PBI Desktop будет меняться. В моём примере это 52308. В вашем случае это будет, скорее всего, какое-то другое число из пула портов Power BI Desktop.

    Для повторного подключения к этой модели данных потребуется уже не только случайно назначаемый номер порта, но и случайно генерируемое в виде GUID имя базы. Номер порта получается по методике, описанной выше, а идентификатор нужной БД (GUID модели данных) можно получить, сформировав в DAX Studio следующий SQL-запрос:

    select * from $SYSTEM.DBSCHEMA_CATALOGS

    В столбцах
    CATALOG_NAME и DATABASE_ID

    будет требуемое имя-GUID.

    Локальное решение


    По ссылке (123kB) доступен для скачивания разработанный мной PBIX-файл, который формирует список всех загруженных в память моделей данных (включая и встроенную в этот файл). Т. е. в списке будет столько строк, сколько PBIX-файлов запущено.
    Обновлено:версия доработана для совместимости с августовским релизом PBI Desktop.

    Disclaimer: Данный файл может быть использован только для демонстрационных целей и тестирования, предоставляется «как есть», со всеми багами, ошибками и прочая, на 90% сформирован через интерфейс Power Query / PowerPivot и не может служить хорошим примером для обучения программированию под Power BI.

    PBIX-AS_interface

    Интерфейс программы


    Для настройки, после нажатия на кнопку [Изменить запросы], следует изменить параметр
    USER_NAME
    и, возможно,
    WORK_FOLDER
    .
    image


    Советы домашнему мастеру


    Power BI Desktop может быть развёрнут на локальном компьютере в двух разных режимах:

    1. Stand-alone приложение
    2. Приложение Windows Apps

    Первое скачивается с сайта https://powerbi.com и устанавливается в пару кликов как самое обычное приложение. Второе устанавливается через магазин Microsoft Store по поиску «Power BI»

    Бинарный код приложения в обеих вариантах один и тот же только в первом случае вам придётся самостоятельно следить за выходом новых версий приложения, релизы которого Microsoft печёт как блины. Штатная частота обновлений Power BI Desktop один раз в месяц, Power BI Reporting Services в среднем один раз в квартал.

    Установка через Microsoft Store избавит вас от контроля за обновлениями версий ПО, но есть небольшой (но отличный от нуля) шанс, что в обновлённой версии вы неожиданно столкнётесь с какими-либо проблемами, которых не наблюдалось в предыдущем релизе.

    Лично я на всякий случай держу обе редакции, регулярно пополняя личную коллекцию ежемесячными релизами PBI Desktop, чтобы иметь возможность откатиться на предыдущий.

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


    Думаю (при наличии достаточного интереса со стороны сообщества) продолжу эту тему на примере конкретных use cases.

    Юрий Колмаков (McCow)

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Как вы используете модель данных Power BI?
    Поделиться публикацией
    Комментарии 18
      +1
      Прочитал 3 раза. Третий раз вслух и по слогам. Проголосовал. Понял, что я не одинок. Автор, скажите пожалуйста, зачем оно вот это всё нужно и для чего используется? Из поста я понял, что можно посмотреть имя пользователя и его рабочую папку. Вопрос «Зачем?» остался. Видимо не с того Вы начали повествование.
        0
        Mylistryx, во-первых, спасибо, что уделили столько внимания моему посту.
        Во-вторых, теперь я уже вижу это по голосованию, что рассматриваемая тема — достаточно узкая. И нацелена в основном на специалистов использующих BI in-memory, в частности майкрософтовский, в нестандартном режиме.
        Думаю, вы правы, надо привести какой-нибудь более-менее приближенный к жизни кейс. Т.к., конечно, это не про папки, в которые разворачивается служба SSAS, а про работу с большими данными и, условно, аналитическими кубами.
          +1
          Нужно просто релевантные заголовки статьям давать
            –1

            evnuh, бесспорно, нужно. Только как это относится к этой статье? Спрятала MS код и функциональность своего аналитического сервера? Спрятала. Помогает статья его найти (чтобы использовать по назначению)? По крайней я нашёл и описал способ, как это сделать.
            Возможно найдётся кто-то, кто опишет это более доходчиво, чем я.

              +1
              Вы пишете узкоспециализированную статью, а заголовок дали как для популярной статьи широкого профиля. Ни по заголовку, ни по хабам статьи, ни по вступлению совершенно не понятно, о чем вообще речь.
                0

                Regis, да, мне многому ещё предстоит научиться. Но буду стараться.
                А вот может подскажите, куда лучше было разместить? Я три раза менял хабы, хотел, как лучше…

                  0
                  Как минимум уберите хабы «Визуализация данных» и «DIY». Ваша статья к ним не относится (посмотрите их содержимое).
                    0
                    Да, Regis, Вы правы, хоть это и статья для «самоделкиных», положить в хабровский DYI было ошибкой.
                    Что касается визуализации данных — то это решение хоть и «для этого», но всё же не «про это», верно.
                    А по поводу заголовка, спасибо за комплимент.
                      0
                      Можете подсказать хорошие курсы или литературу по Microsoft BI (где пишут просто о сложном)?
                        0
                        Несмотря на то, что этой теме уже несколько лет, в России курсы по Power BI только начали появляться. Есть более старые курсы, посвящённые языкам DAX и M (Power Query). Тут выбор, на сегодняшний день чуть побольше.
                        Если дружите с английским могу порекомендовать обучаться по англоязычным источникам. Из зарубежных авторов мои личные фавориты и признанные специалисты в этом направлении: Chris Webb, Alberto Ferrari, Marco Russo.
                          +1
                          Этих товарищей я знаю с них и начинал, еще меня просвещали Mike Girvin из канала excelisfun и curbal хотя с английским и плохо, но их понимал. По DAX и M вопросов нет.

                          Мне больше интересны возможности/как развернуть/настроить/администрировать BI, а это как по мне SQL Server с Integration Services (дата лейки), а потом уже ssrs, analysis services с DAX. Может есть еще что то не могу сказать что в теме.

                          Я начал знакомство с Integration Services и понял что базу 1С с его помощью и экономическим образованием я не скоро преобразую в нужные дата лейки. Ну и пока что забил… пока время и интерес не появится для более плотного знакомства.

                          Задавая вопрос надеялся что по этой теме есть что то на ютубе у интересного блогера или где «пишут просто о сложном» вот у Alberto Ferrari & Marco Russo хорошо объясняется как вести расчеты, а как же остальное, помимо DAX?
                            0
                            VipeRock, думаю, что это специфические кейсы, которые, надеюсь, можно было бы рассматривать в качестве отдельный статей на хабре (если окончательно не заминусуют :)).
                            А что-то близкое к вашему запросу я видел на канале «Guy in a Cube» на youtube. Но он ИМХО заточен под англоговорящую аудиторию.
                    +1
                    Вот очень много интересных статей про новые технологии, про что то, что упростит работу и прочее, но никто не пишет, а назачем это вообще собственно нужно.
                    Для примера приведу composer. Я разобрался с ним, только тогда, когда у меня возникла острая необходимость. Все статьи, которые я до этого встречал были только про создание своих пакетов или типа того. Или типа: «немного магии ииии… все работает». Что, зачем и почему — никто не расписывал.
                    Так что мне кажется начать стоило с описания что это такое и зачем это вообще нужно. Ну а дальше уже как в анекдоте про контрацептив и глобус, рассказать аудитории, что такое глобус. Ну а если на описание не будет фидбека, то наверное не стоит и тратить свое время и рассказывать как это настраивать, просто не та ЦА.
                    Все написано по личным убеждениям.
                  +1
                  Учёным удалось разрушить 10% раковых клеток? Удалось. «УЧЁНЫЕ ВЫЛЕЧИЛИ РАК!».
            0
            А зачем подсаживаться на закрытые платные продукты, когда аналитика в clickhouse супербыстрая, да и с колонками там всё настолько хорошо, насколько может быть?

            А ещё его можно одинаково на компьютере разработчика и в адском продакшене использовать.
              0
              amarao, Георгий, давайте порассуждаем, выпустила бы коммерческая компания Яндекс clickhouse в 2016 году под свободной лицензией, если бы другая коммерческая компания Microsoft за несколько лет до этого не просела бы в своих лицензиях на аналитику? Вплоть до нуля. Лично я считаю, что здесь конкуренция только во-благо, согласны?
              И, потом, clickhouse немного про другое. Всё-таки и эксель и Power BI — это «карманная» аналитика «из коробки». «Карманная» в данном случае не значит плохая или слабая. Думаю она покрывает не менее 80% запросов бизнес-пользователей.
              Так что «пусть расцветают все цветы».
              +1
              Выходит можно из Excel к PBIX модели обращаться по адресу порта? Интересно, конечно. Очевидное полезное следствие — можно использовать утилиту PP Utilities в Excel. Другого применения не вижу. И, в модели Power Pivot на Excel к сожалению не поддерживается двусторонняя кросс-фильтрация таблиц.
                0
                azhkhanov, точно, можно обратиться по адресу машины, номеру порта и скрытому имени БД. Т.е., например, становится возможным развернуть локально такую-же инфраструктуру как в облачном сервисе PBI. Для целей тестирования. Можно придумать и другие способы использования (стараясь не нарушать лицензию). Постараюсь описать это в следующей статье.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое