2015 году важной задачей для корпорации «Галактика» стала разработка генератора запросов на языке DAX по заказу корпорации Intel, мирового лидера в области высоких технологий. Подобных решений практически нет на рынке, поэтому в проекте совмещались и исследования, и проектирование новой архитектуры, и программирование в сжатые сроки.
Язык DAX (Data Analysis eXpressions – выражения для анализа данных) создан компанией Microsoft для автоматизации расчетов в приложении Power Pivot для Excel, табличных моделях Analysis Services и Power BI.
Ранее корпорация «Галактика» уже использовала язык DAX в рамках проекта «Галактика BI» при тестировании работы компонент Ranet OLAP и дизайнера панелей мониторинга (Dashboard) «Галактика Бизнес-Монитор» (Ranet Analytics) на табличных моделях Analysis Services. Существующие решения легко и без каких-либо ограничений поддерживают работу с табличными моделями Analysis Services. Однако в ходе тестирования «Галактика Бизнес Монитор» запросы на языке DAX разрабатывались вручную.
Целью нового проекта стало создание автоматизированного генератора DAX-запросов. При этом должны были быть учтены все варианты использования, связанные произвольной группировкой полей из разных таблиц в запросе и фильтрацией данных, что является не тривиальной задачей. Однако компетенции и практический опыт специалистов корпорации «Галактика» позволили успешно справиться с реализацией этого решения.
Преимущества генератора запросов:
- открытое API обеспечивает простоту встраивания компонент Ranet UI в другие приложения;
- оперирование простыми понятиями (фильтр, колонка) и освобождение разработчиков от необходимости в деталях разбираться с синтаксисом языка DAX;
- автоматическое создание DAX-запросов для анализа данных и формирования отчетов, что экономит время на разработку решений;
- наличие визуального дизайнера DAX-запросов позволяет разработчикам и бизнес-пользователям быстро настраивать аналитические отчеты, постепенно осваивая синтаксис языка DAX.
Подробное описание проекта
Success Stories (Успешный пример)
Intel – генератор DAX-запросов Ranet UI позволяет сэкономить время разработки и сконцентрироваться на создании собственных инновационных решений.
Company (Компания)
Intel Corporation
Industry (Отрасль)
Height Tec (Полупроводники)
Products used (Используемый продукт)
Ranet UI
Сейчас Корпорация Галактика – официальный поставщик решений для Корпорации Intel.
Overview (Обзор)
Customer Profile (Профиль клиента)
Корпорация Intel – крупнейший в мире производитель микропроцессоров и полупроводниковых компонент для промышленного и сетевого оборудования.
Business Situation (Бизнес-ситуация)
Разработать программное API для описания структуры макета DAX-запроса в терминах колонок и фильтров, и генерации текста DAX-запроса на основании описанной структуры.
Solution (Решение)
Язык DAX (расшифровывается как Data Analysis eXpressions – выражения для анализа данных) разработан компанией Microsoft для автоматизации расчетов в приложении Power Pivot для Excel, табличных моделях Analysis Services и Power BI. Большинство функций DAX похожи на функции Excel. Однако, в отличие от Excel, где функции оперируют отдельными ячейками и их диапазономи, в 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.