В 2015 году важной задачей для корпорации «Галактика» стала разработка генератора запросов на языке DAX по заказу корпорации Intel, мирового лидера в области высоких технологий. Подобных решений практически нет на рынке, поэтому в проекте совмещались и исследования, и проектирование новой архитектуры, и программирование в сжатые сроки.\r\nЯзык DAX (Data Analysis eXpressions – выражения для анализа данных) создан компанией Microsoft для автоматизации расчетов в приложении Power Pivot для Excel, табличных моделях Analysis Services и Power BI.\r\nРанее корпорация «Галактика» уже использовала язык DAX в рамках проекта «Галактика BI» при тестировании работы компонент Ranet OLAP и дизайнера панелей мониторинга (Dashboard) «Галактика Бизнес-Монитор» (Ranet Analytics) на табличных моделях Analysis Services. Существующие решения легко и без каких-либо ограничений поддерживают работу с табличными моделями Analysis Services. Однако в ходе тестирования «Галактика Бизнес Монитор» запросы на языке DAX разрабатывались вручную.\r\nЦелью нового проекта стало создание автоматизированного генератора DAX-запросов. При этом должны были быть учтены все варианты использования, связанные произвольной группировкой полей из разных таблиц в запросе и фильтрацией данных, что является не тривиальной задачей. Однако компетенции и практический опыт специалистов корпорации «Галактика» позволили успешно справиться с реализацией этого решения.\r\nПреимущества генератора запросов:\r\n• открытое API обеспечивает простоту встраивания компонент Ranet UI в другие приложения;\r\n• оперирование простыми понятиями (фильтр, колонка) и освобождение разработчиков от необходимости в деталях разбираться с синтаксисом языка DAX;\r\n• автоматическое создание DAX-запросов для анализа данных и формирования отчетов, что экономит время на разработку решений;\r\n• наличие визуального дизайнера DAX-запросов позволяет разработчикам и бизнес-пользователям быстро настраивать аналитические отчеты, постепенно осваивая синтаксис языка DAX.\r\n\r\nПодробное описание проекта\r\nSuccess Stories (Успешный пример)\r\nIntel – генератор DAX-запросов Ranet UI позволяет сэкономить время разработки и сконцентрироваться на создании собственных инновационных решений.\r\nCompany (Компания)\r\nIntel Corporation\r\nIndustry (Отрасль)\r\nHeight Tec (Полупроводники)\r\nProducts used (Используемый продукт)\r\nRanet UI\r\nСейчас Корпорация Галактика – официальный поставщик решений для Корпорации Intel.\r\nOverview (Обзор)\r\nCustomer Profile (Профиль клиента)\r\nКорпорация Intel – крупнейший в мире производитель микропроцессоров и полупроводниковых компонент для промышленного и сетевого оборудования.\r\nBusiness Situation (Бизнес-ситуация)\r\nРазработать программное API для описания структуры макета DAX-запроса в терминах колонок и фильтров, и генерации текста DAX-запроса на основании описанной структуры.\r\nSolution (Решение)\r\nЯзык DAX (расшифровывается как Data Analysis eXpressions – выражения для анализа данных) разработан компанией Microsoft для автоматизации расчетов в приложении Power Pivot для Excel, табличных моделях Analysis Services и Power BI. Большинство функций DAX похожи на функции Excel. Однако, в отличие от Excel, где функции оперируют отдельными ячейками и их диапазономи, в DAX можно обращаться к таблицам и к их колонкам (столбцам). По сути, язык DAX работает с реляционной моделью данных.\r\nТабличные модели Analysis Services становятся очень популярными при разработке приложений для анализа данных, так как поддерживают доступ к данным в режиме In-Memory (или VertiPaq). Этот режим обеспечивает высокую производительность при работе с данными, поскольку доступ к данным выполняется в оперативной памяти, сочетая высокую степень сжатия, алгоритмы сканирования и многопоточную обработку запросов.\r\nПри всей, на первый взгляд, простоте языка DAX, написание текста DAX-запроса – не совсем тривиальная задача. И ее эффективно решает генератор DAX-запросов Ranet UI, который позволяет создавать код DAX-запроса без использования инструментов Microsoft. Его можно использовать для генерации DAX-запросов при разработке клиентских приложений, работающих с табличными моделями Analysis Services.\r\nДля анализа данных и построения отчетов не нужны углубленные знания синтаксиса языка DAX. Достаточно описать программно структуру макета отчета, используя API, предоставляемый Ranet UI. Программное API Ranet UI позволяет создать структуру макета DAX-запроса в терминах областей колонок и фильтров. На основании этой структуры генерируется DAX-запрос.\r\nНо даже программно создать структуру макета DAX-запроса не всегда просто. Поэтому в ходе выполнения проекта был разработан упрощенный визуальный дизайнер DAX-запросов, который представлял DAX запрос в виде дерева и генерировал текст запроса.\r\nПолноценный визуальный дизайнер DAX-запросов будет реализован в ближайшей версии Ranet UI.