В 2015 году важной задачей для корпорации «Галактика» стала разработка генератора запросов на языке DAX по заказу корпорации Intel, мирового лидера в области высоких технологий. Подобных решений практически нет на рынке, поэтому в проекте совмещались и исследования, и проектирование новой архитектуры, и программирование в сжатые сроки.
Ранее корпорация «Галактика» уже использовала язык DAX в рамках проекта «Галактика BI» при тестировании работы компонент Ranet OLAP и дизайнера панелей мониторинга (Dashboard) «Галактика Бизнес-Монитор» (Ranet Analytics) на табличных моделях Analysis Services. Существующие решения легко и без каких-либо ограничений поддерживают работу с табличными моделями Analysis Services. Однако в ходе тестирования «Галактика Бизнес Монитор» запросы на языке DAX разрабатывались вручную.
Целью нового проекта стало создание автоматизированного генератора DAX-запросов. При этом должны были быть учтены все варианты использования, связанные произвольной группировкой полей из разных таблиц в запросе и фильтрацией данных, что является не тривиальной задачей. Однако компетенции и практический опыт специалистов корпорации «Галактика» позволили успешно справиться с реализацией этого решения.
Преимущества генератора запросов:
-
открытое API обеспечивает простоту встраивания компонент Ranet UI в другие приложения;
-
оперирование простыми понятиями (фильтр, колонка) и освобождение разработчиков от необходимости в деталях разбираться с синтаксисом языка DAX;
-
автоматическое создание DAX-запросов для анализа данных и формирования отчетов, что экономит время на разработку решений;
-
наличие визуального дизайнера DAX-запросов позволяет разработчикам и бизнес-пользователям быстро настраивать аналитические отчеты, постепенно осваивая синтаксис языка DAX.
Табличные модели Analysis Services становятся очень популярными при разработке приложений для анализа данных, так как поддерживают доступ к данным в режиме In-Memory (или VertiPaq). Этот режим обеспечивает высокую производительность при работе с данными, поскольку доступ к данным выполняется в оперативной памяти, сочетая высокую степень сжатия, алгоритмы сканирования и многопоточную обработку запросов.
При всей, на первый взгляд, простоте языка DAX, написание текста DAX-запроса – не совсем тривиальная задача. И ее эффективно решает генератор DAX-запросов Ranet UI, который позволяет создавать код DAX-запроса без использования инструментов Microsoft. Его можно использовать для генерации DAX-запросов при разработке клиентских приложений, работающих с табличными моделями Analysis Services.
Для анализа данных и построения отчетов не нужны углубленные знания синтаксиса языка DAX. Достаточно описать программно структуру макета отчета, используя API, предоставляемый Ranet UI. Программное API Ranet UI позволяет создать структуру макета DAX-запроса в терминах областей колонок и фильтров. На основании этой структуры генерируется DAX-запрос.
Но даже программно создать структуру макета DAX-запроса не всегда просто. Поэтому в ходе выполнения проекта был разработан упрощенный визуальный дизайнер DAX-запросов, который представлял DAX запрос в виде дерева и генерировал текст запроса.
Полноценный визуальный дизайнер DAX-запросов будет реализован в ближайшей версии Ranet UI.
© Галактика, 2016
© Издание 12NEWS (ИП Маринин А.Л.), 2016