Для многих языков есть свои online песочницы, например, для POSTGRES есть условный PostgreSQL Fiddle, также и для аналитического языка DAX хотелось бы побольше подобных инструментов. Существующий dax.do позволяет выполнять запросы условно только на стандартной схеме Contoso, и в век AI хотелось бы иметь инструмент для быстрого выполнения DAX запросов для произвольной схемы данных. Также генерация самой схемы и заполнение её данными также являются трудоемкими, и хотелось бы отдать это всё AI.
Кроме того, сейчас популярны Telegram боты, в связи с этим появилась идея создания Telegram бота для выполнения DAX (и построения простейшего дашборда-таблицы) на произвольной схеме данных, с автоматически сгенерированными данными, своего рода DAX Fiddle. Интересующимся DAX Fiddle — добро пожаловать под кат :)
При исследовании DAX меры в некоторых случаях удобно получить результат, даже без схемы данных и, соответственно, исходных данных. В таком случае может помочь инструмент (например, Telegram бот), который для заданного DAX меры на основе AI восстанавливает схему данных и исходные данные, а также выполняет запрос с мерой на сгенерированных тестовых данных на основе «AI DAX движка», получая своего рода DAX дашборд с исходной мерой.
Рассмотрим в качестве примера простую DAX меру:
Sum = SUMX(sales, sales[price] * sales[quantity])
причем добавим условие анализа по sales[productid]
, т.е. в итоге отправим боту
Sum = SUMX(sales, sales[price] * sales[quantity])
by sales[productid]
Получим следующий результат:

В итоге генерируются исходные данные для таблицы sales, генерируется валидный DAX с SUMMARIZECOLUMNS
и предложенной мерой и строится своего дашборд на основе полученного SUMMARIZECOLUMNS
. Данные в сгенерированном «дашборде» зачастую являются валидными, но периодически могут быть невалидными.
Можно рассмотреть также несколько более сложную меру, и также бот дает неплохой результат и строит своего рода «дашборд».
Month Sales % =
SUM ( sales[amount] )
/ CALCULATE ( SUM ( sales[amount] ), REMOVEFILTERS ( calendar ) )

Стоит отметить, что в боте использовалась всего лишь модель gpt-4o, но результаты можно считать неплохими.
Надеюсь, работа над такими инструментами и сами инструменты вида DAX Fiddle могут быть полезными для аналитиков и разработчиков. Успехов в дашбордах и изучении DAX :)
Автор: koanse