Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
Всем добрый день. Сегодня встала такая, на мой взгляд, довольно интересная задача: Есть измерение. Например GOOD_DIM - товары. В измерении есть две иерархии: 1. Страны производители. 2. Фирмы поставщики. Задача: необходимо получить результат в виде таблицы, где по одной оси идут страны, по другой - фирмы. Вопрос: Как это сделать? :) Скажем для какой-то конкретной ячейки это будет выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Но это не решение. Что если пользователь хочет получить распределение по всем фирмам и странам? Не генерировать же запрос для каждой ячейки! Возможно, кто-нибудь сталкивался с подобной задачей. Также интересно, как подобные ситуации решаются в других OLAP системах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 18:31 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
Отчёт, конечно, будет дурацкий, будет очень много пустых мест, посколько фирма, по видимому, относится к стране отношением многие к одному (если, конечно, каких-нибудь SCD там не сделано). Но в MicroStrategy проблем не будет - так и покажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 18:38 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
То же самое относится и к Cognos PP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 18:40 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
На всякий случай приведу пример: Есть таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Эта таблица определяет измерение "товары". Соответственно есть две иерархии: Страны и Фирмы. В итоге необходимо получить таблицу: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 19:25 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
Виктор СаковичТо же самое относится и к Cognos PP. В Когносе, по-моему, нет такого опрделения как иерархия. Т.е. там вроде сразу измерения строятся. Или я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 19:26 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
2 Goster: То же самое относится и к Cognos PP. В Когносе, по-моему, нет такого опрделения как иерархия. Т.е. там вроде сразу измерения строятся. Или я ошибаюсь? Измерения в Cognos PP могут содержать одну или несколько иерархий (альтернативные дрилл-дауны). Если в измерении товаров сделать 2 Ваших иерархии в виде альтернативных дрилл-даунов, то можно будет одну иерархию положить в боковик отчета, а другую - в шапку, и мы получим необходимую Вам кросс-таблицу. P.S. А во время OLAP-тусы в Питере, г-н Birkhoff Вам не рассказывал как решать такие задачи в Oracle OLAP? P.P.S. Надо будет возобновить традицию проведения мероприятия OLAP-туса, последнюю из которых я проводил в Москве в ресторане Красная Площадь дом 1 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 19:46 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
По просьбе уважаемого Б. попробовал решить исходную задачу в упрощённом виде на чистом DML. Если глубоко не думать (и не связываться с картами), то получается вот это: Дано. 1. Измерение MYDIM Код: plaintext 1. 2. 3. 4. 5. 6. 2. С двумя иерархиями (Товары-Страны, Товары-Фирмы) Код: plaintext 1. 2. 3. 4. 5. 6. 3. И переменная Код: plaintext 1. Добавляем в AW несколько объектов: 4. Измерения-Алиасы MYCOUNTRY и MYFIRM Код: plaintext 1. 5. Программу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 5*. Либо вот такую программу (смотря что быстрее работает) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 6. Формулу (целевую) Код: plaintext 1. Собственно, всё готово. Тестируем содержимое полученной формулы 7. Устанавливаем статусы (фирмы и страны) Код: plaintext 1. 8. Выводим проверочный отчёт Код: plaintext У меня это корректно работает на тестовой переменной с простыми двухэтажными иерархиями для обоих вариантов программы MYPRG. Подозреваю, что на высоком уровне (там, где всё делается при помощи мышки) всё это попроще. P.S. Похоже, пора мне посмотреть на Когнос ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 15:48 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
2 Георгий Т.: Спасибо, учитель! Знание dml - великая вещь. Пошел читать доку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2006, 10:33 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
2 Георгий Т.: Скажите пожалуйста, а какой смысл здесь имеет выражение Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 18:26 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
Хм... Я понял, что эта конструкция позволяет в программе в формуле определить конкретную итерацию по измерениям. Но не могу найти где она описана и понять как она работает. А есть ли другие варианты получить тот же результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 19:29 |
|
||
|
Кросс иерархий в измернии. Oracle.
|
|||
|---|---|---|---|
|
#18+
Некоторые вещи про Express/DML не описаны в документации (либо я не знаю где именно). И, конечно, вызов программы из тела формулы - штука по определению медленная на больших объёмах. Надо пробовать другие подходы. Например: по-другому проектировать структуры и иерархии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2006, 11:18 |
|
||
|
|

start [/forum/topic.php?fid=49&gotonew=1&tid=1870041]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 348ms |

| 0 / 0 |
