Использование dax.do для произвольной схемы данных на основе перевода DAX в Contoso через Telegram бот

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет, Хабр! В работе Business Intelligence аналитика могут встречаться задачи проверки DAX запроса на произвольной схеме, к которой может не быть доступа. Перевод DAX запроса из исходной схемы в схему, к которой есть доступ и есть возможность выполнения DAX запроса, может занимать некоторое время и требовать определенных усилий. В век AI, безусловно, хочется делать перевод в схему автоматически, при помощи AI. Кроме того, ресурс dax.do является достаточно удобной песочницей для Contoso схемы данных, поэтому такое впечатление, что одним из быстрых решений для анализа и запуска DAX без схемы данных является перевод произвольного DAX в dax.do (например, автоматически при помощи Telegram бота), что позволяет уже дальше смотреть полученный DAX в песочнице dax.do на схеме Contoso без каких-то ограничений. Это позволяет проверить работоспособность DAX на незнакомой схеме за секунды. Интересующимся новыми возможностями DAX песочниц — добро пожаловать под кат :)

Известной песочницей DAX является dax.do, в котором зашита схема Contoso.

Видно, что такая схема способна поддерживать DAX запросы достаточно сложной структуры. В связи с этим, если у нас есть DAX запрос, но нет самой схемы данных, актуальным является перевод DAX запроса в схему данных Contoso для dax.do, тогда можно легко использовать все возможности песочницы dax.do и исследовать DAX, аналогичный исходному, даже без самой исходной схемы.

Ручной перевод DAX в схему Contoso может быть утомительным и рутинным, и выглядит отличной задачей для AI. Соответственно, AI модели решают задачи перевода из одной схемы данных в другую без особенных проблем. Например, Telegram бот «dax.do Fiddle» способен легко решить подобные задачи. Рассмотрим следующий DAX и для перевода в Contoso из dax.do:

EVALUATE
SUMMARIZECOLUMNS (
    Клиент[Количество детей],
    FILTER ( Продажи, Продажи[Количество] > AVERAGE ( Продажи[Количество] ) ),
    FILTER ( Клиент, Клиент[Количество детей] > 1 ),
    "Calculated Количество",
        1 + 2 * CALCULATE (
            SUMX ( Продажи, Продажи[Количество] * RELATED ( Клиент[Количество детей] ) ),
            REMOVEFILTERS ( Продажи[Количество] ),
            FILTER ( Клиент, Клиент[Количество детей] < 4 )
        )
)

Отправим этот DAX в «dax.do Fiddle»

Готово, получили результат за секунды, теперь можно идти в dax.do и работать с полученным DAX, являющимся аналогом исходного DAX.

Видно, что переведенный в Contoso схему DAX запрос валидный и успешно выполняется.

Также можно рассмотреть и несколько более сложный DAX запрос.

DEFINE
    VAR filtered =
        FILTER (
            'факты',
            'факты'[количество] > 0
                && 'факты'[сумма] > 300
                && 'факты'[сумма] < 500
        )
    VAR yearly =
        SUMMARIZECOLUMNS (
            'даты'[год],
            'продукты'[производитель],
            'клиенты'[пол],
            "Продажи",
                SUMX ( filtered, 'факты'[сумма] * IF ( 'факты'[цена] > 0, 0.2, 0.7 ) )
        )
    VAR byYear =
        FILTER ( yearly, YEAR ( TODAY () ) > MAX ( 'даты'[год] ) )
    VAR top2 =
        TOPN ( 2, byYear, [TotalSales], DESC )

EVALUATE
top2
ORDER BY 'продукты'[производитель] ASC

«dax.do Fiddle» также переводит в Contoso для dax.do и этот запрос:

В итоге получаем запрос, который успешно выполняется в dax.do:

Стоит отметить, что в боте использовалась всего лишь модель gpt-4o, результаты можно считать неплохими, возможно, подойдет и более простая модель. Изредка бот может давать невалидный DAX из-за несовпадения типов колонок (строка и число), но зачастую бот решает такие вопросы самостоятельно (как для YEAR(MAX('Date'[Date]))), иначе приходится исправлять вручную, но это в любом случае быстрее, чем обрабатывать запрос полностью вручную.

Надеюсь, работа над такими инструментами и сами инструменты вида «dax.do Fiddle» в форме Telegram бота могут быть полезными для аналитиков и разработчиков, имеющих дело с DAX. Успехов в дашбордах и DAX запросах :)

Источник: https://habr.com/ru/articles/887186/


Интересные статьи

Интересные статьи

Привет, Хабр! Давайте знакомиться! Меня зовут Анна, я работаю методистом в PIX Академии, где мы предлагаем нашим пользователям онлайн- и офлайн-курсы о том, как работать в продуктах PIX. А в ПИКСе мы ...
Обеспечение постоянного доступа к важным файлам и директориям, а также их надежной защиты путем шифрования при передаче – суть работы Rsync. Это кроссплатформенная утилита, подходящая для использ...
Бизнес-смыслы появились в Битриксе в начале 2016 года, но мало кто понимает, как их правильно использовать для удобной настройки интернет-магазинов.
«Битрикс» — кошмар на костылях. Эта популярная характеристика системы среди разработчиков и продвиженцев ныне утратила свою актуальность.
Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода: - можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавле...