Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 SSAS - Объединение 2 мер с разной гранулярностью  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 447
Доброго времени суток, All!
Хочу посоветоваться по следующей задаче применительно к SSAS. Задачу несколько переделал для упрощения.
Есть 2 подразделения, одно ведет учет по дням, другое - по месяцам. События продаж, их атрибуты - одинаковы. Клиенты у подразделений могут пересекаться.
Измерение дат имеет иерархию "Год-Квартал-Месяц-День"
Сейчас есть 2 набора групп мер, одни с гранулярностью "Месяц" для дат, другие - с гранулярностью "День". В однотипных группах мер есть меры, схожие по смыслу. Агрегации - AvgOfChildren и SUM.
Бизнес хочет видеть одну меру, объединяющую оба подразделения. При этом - чтобы на уровне "Месяц" показывались данные обоих, а на уровне "День" - только подразделения с дневным учетом.

Пока сам придумал следующее:
  • Делаю измерение с нужной агрегацией, привязанное к пустому полю и гранулярностью "День" для дат.
  • Через SCOPE определяю на уровне "День", там мера подробного подразделения.
  • Через SCOPE определяю на уровне "Месяц", там - сумма двух мер

    Идея такова - пустая мера имеет явно заданные значения на уровнях "День" и "Месяц", выше - агрегирует сама.

    Вопрос к вам - можно ли улучшить подход? Возможно, такую задачу можно решить иначе, или у вас есть опыт подобного велосипеда.
  • 28 мар 18, 18:49    [21294333]     Ответить | Цитировать Сообщить модератору
     Re: SSAS - Объединение 2 мер с разной гранулярностью  [new]
    Andy_OLAP
    Member

    Откуда: я знаю, что Зенит - чемпион
    Сообщений: 2199
    Ferdipux
    Бизнес хочет видеть одну меру, объединяющую оба подразделения.
    Вопрос к вам - можно ли улучшить подход? Возможно, такую задачу можно решить иначе, или у вас есть опыт подобного велосипеда.

    Можно. Делаете группу мер с простыми единичками SUM для каждого подразделения. То есть прямая regular привязка к каждому подразделению. Далее Scope переопределяете для каждого подразделения эту меру на сумму того, что нужно вывести. И вверх по иерархии подразделений - или по неключевому атрибуту вида подразделения или еще как - все раскладывается так, как нужно, без выкрутасов.
    28 мар 18, 19:17    [21294383]     Ответить | Цитировать Сообщить модератору
     Re: SSAS - Объединение 2 мер с разной гранулярностью  [new]
    Ferdipux
    Member

    Откуда: Москва
    Сообщений: 447
    Andy_OLAP,

    Похоже, есть недопонимание, скорее с моей стороны... Как SCOPE переопределение на объектах подразделений поможет разной гранулярности дат?

    Есть 2 учетных системы у 2-х подразделений. Из них приходят данные, из одной - с указанием дня операции, из другой - с указанием месяца операции.
    Данные нужно показывать в одной группе мер, несмотря на то, что одни данные имеют привязку к дням, другие - к месяцам. Распределять месячные данные на дни не нужно, просто показываем их на уровне месяца.
    В DWH могу данные дополнить кодом подразделения.

    "Группа мер с простыми единичками" и группа мер с полем NULL - это одно и то же?
    29 мар 18, 14:13    [21296243]     Ответить | Цитировать Сообщить модератору
     Re: SSAS - Объединение 2 мер с разной гранулярностью  [new]
    Критик
    Member

    Откуда: Москва / Калуга
    Сообщений: 33336
    Блог
    убедите заказчика, что месячные данные нужно вешать на 1е число - будет проще для всех
    29 мар 18, 14:37    [21296393]     Ответить | Цитировать Сообщить модератору
     Re: SSAS - Объединение 2 мер с разной гранулярностью  [new]
    Andy_OLAP
    Member

    Откуда: я знаю, что Зенит - чемпион
    Сообщений: 2199
    Критик
    убедите заказчика, что месячные данные нужно вешать на 1е число - будет проще для всех

    Не согласен на первое. Лучше на последнее. Сравнивать накопительный план возрастающий равномерно пропорционально дня месяца и накопительный факт и процент выполнения станет проще.
    Когда фильтром выберут последний день месяца - увидят нарастающий итог фактов и месячный план рядом помимо цифр оборотов и прочего за последний день.

    Впрочем, это дело вкуса.
    29 мар 18, 14:40    [21296416]     Ответить | Цитировать Сообщить модератору
     Re: SSAS - Объединение 2 мер с разной гранулярностью  [new]
    StarikNavy
    Member

    Откуда: Москва
    Сообщений: 1844
    +1
    вешаем вторые данные на 1е или 31е (спросите у бизснеса) и ничего ломать не надо
    29 мар 18, 14:42    [21296431]     Ответить | Цитировать Сообщить модератору
     Re: SSAS - Объединение 2 мер с разной гранулярностью  [new]
    Andy_OLAP
    Member

    Откуда: я знаю, что Зенит - чемпион
    Сообщений: 2199
    Ferdipux
    Andy_OLAP,

    Похоже, есть недопонимание, скорее с моей стороны... Как SCOPE переопределение на объектах подразделений поможет разной гранулярности дат?

    Есть 2 учетных системы у 2-х подразделений. Из них приходят данные, из одной - с указанием дня операции, из другой - с указанием месяца операции.
    Данные нужно показывать в одной группе мер, несмотря на то, что одни данные имеют привязку к дням, другие - к месяцам. Распределять месячные данные на дни не нужно, просто показываем их на уровне месяца.
    В DWH могу данные дополнить кодом подразделения.

    "Группа мер с простыми единичками" и группа мер с полем NULL - это одно и то же?

    Да. Одно и то же. Есть простой счетчик "кол-во подразделений". Есть туда же "нужная_бизнесу_мера", NULL идет в 0.
    "Бизнес хочет видеть одну меру, объединяющую оба подразделения. При этом - чтобы на уровне "Месяц" показывались данные обоих, а на уровне "День" - только подразделения с дневным учетом".
    Туда же 1/0 в строку признак для каждого подразделения, какое оно, 1 - месячное, 0 - подневное. Можно 1/2, не важно.

    Далее scope(подразделение.подразделение_ключевое.подразделение_ключевое, нужная_бизнесу_мера);
    scope (тут день);
    this = iif(признак_подразделения = 1, что-то, иначе_другое);
    end scope;
    scope (а вот тут уже месяц);
    this = iif(признак_подразделения = 1, что-то, iif(признак_подразделения = 2, что-то для подневных нужно ставить наверное null, иначе_другое));
    end scope;
    -- а на год и выше вообще ничего не показываем, потому что не знаем, как кошерно, а складывать вверх не хотим
    end scope;
    29 мар 18, 14:44    [21296443]     Ответить | Цитировать Сообщить модератору
     Re: SSAS - Объединение 2 мер с разной гранулярностью  [new]
    Ferdipux
    Member

    Откуда: Москва
    Сообщений: 447
    Andy_OLAP,

    Понял, спасибо!
    29 мар 18, 14:45    [21296450]     Ответить | Цитировать Сообщить модератору
    Все форумы / OLAP и DWH Ответить