Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Коллеги! Задался я тут вопросом о том как с помощью разных средств OLAP строить диаграмму Парето. Ежели кто не знает, что это такое, поясню на примере. Нужно развёрнуто ответить на вопрос "Какая доля топовых клиентов даёт какую долю выручки?". В моём случае интересно посмотреть на это с точки зрения сумм кассовых чеков. Соответственно, задача формулируется так: построить график, в котором по оси Х будут укрупнённые группы кассовых чеков, а по Y две величины - доля группы чеков в сумме по всем кассовым чекам и средняя сумма чека. Группы чеков определяем путём разбиения всего множества чеков, отсортированного по убыванию, на N (например 10) интервалов, включающих переменное количество чеков так, чтобы каждая группа добавляла по 1/N к доле итоговой суммы по всем чекам. Таким образом, чеки, входящие в первую группу войдут и во все остальные. В двух словах, по оси Х имеем такие деления - TOP 10%, TOP 20%, TOP 30%... TOP100% чеков, по Y - две кривые, одна возрастает - это доля группы в общей сумме, а другая убывает - это средняя сумма чека. Вот такая задача. Кто как будет решать? 2Jurii: не спешите с рекламированием свойства 20/80 в Cognos PowerPlay. Это задачка, как мне кажется, немного посложнее будет. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 11:00 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Da ne hilaya zadachka, mne kazhetsya tut Data Mining krepko popahivaet. Tut s naletu i bez pol-vedra :-) srazi i ne otvetish. Spasibo za interesnuyu zadachku. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 12:17 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Действительно как подсказывает предыдущий автор -похоже на ДатаМайнинг-кластеризацию, но в данном случае все несколько проще ибо известно относительно чего группировать. У меня подобная задача решается так: SQL-DTS(хотя можно и подцепиться к ОЛАП) смотрю продажи клиентов, далее их группирую по сумме чека итп. И потом уже в олапе делаю member properties - с тем в какую группу топов входит данный клиент, а по этим пропертисам - строю вирт. измерение. Минус нада перепроцессивать измерение и естессно куб, ну и понятно не совсем универсальность плюс - простота к конкретным задачам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 12:38 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Навскидку. Не проверял до конца. В Oracle. Что бы я попробовал сделать. Задача разбивается на подзадачи. 1. Посчитать вклад каждого объекта (сумму чека или еще чего-то) 2. Посчитать нарастающий итог и таким образом выделить интересующие группы 10%, 20% и т.д. 3. Ну а дальше обсчитать средние и доли группы. 4. По результатам нарисовать график. Практически уверен что это можно запихнуть в один SQL запрос, с использованием аналитических функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 15:23 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
2Birkhoff: Посчитать нарастающий итог и таким образом выделить интересующие групп Да, алгоритм вполне прозрачный. Без сомнения. Именно нарастающий итог. Практически уверен что это можно запихнуть в один SQL запрос, с использованием аналитических функций. А нарастающий итог как эскуэлём считать собираетесь? Или в Оракле есть такая функция? А если MS SQL? Ну, и, наконец, вопрос-то стоял о том, как это сделать в OLAP-продукте. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 15:58 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
2 Константин Да, в Oracle есть конструкция типа SUM(Amount_sold) OVER(PARTITION BY YEAR ORDER BY Product , Amount_sold SUM DESC ROWS UNBOUNDED PRECEDING ) которая считает нарастющий итог. Если у нас ROLAP, то запихнув во view такой SQL можно его использовать. Если MOLAP, то подобные задачи удавалось решать с помощью функционала Oracle Express Objects, но возможно это решается и более простым способом. В третьих, обнаружил среди списка новых возможностей Oracle 10g функцию с именем Pareto что-то. Что она делает пока выяснить пока не удалось. Как это сделать в MS SQL не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 16:14 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
2Birkhoff: Да, в Oracle есть конструкция типа SUM(Amount_sold) OVER(PARTITION BY YEAR ORDER BY Product , Amount_sold SUM DESC ROWS UNBOUNDED PRECEDING ) которая считает нарастющий итог. Я очень рад за Oracle. Мне с MS такой функции не хватает. Если у нас ROLAP, то запихнув во view такой SQL можно его использовать. Смотря какой ROLAP. Я вот в своём ROLAPе этот отчёт мышкованием строю без всяческих вьюшек. Чем очень довлолен :) Если MOLAP, то подобные задачи удавалось решать с помощью функционала Oracle Express Objects, но возможно это решается и более простым способом. Возможно, кто-то из форума напишет, как. В третьих, обнаружил среди списка новых возможностей Oracle 10g функцию с именем Pareto что-то. Что она делает пока выяснить пока не удалось. Опять-таки, радует. Пора смотреть в сторону Oracle :) Как это сделать в MS SQL не знаю. Очевидно, писать ХП, которая будет считать нарастающий итог. 2 backfire & Quark: Data Mining тут пока не пахнет, это вы погорячились :) Удачи! С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 16:24 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
2 Константин: 2Jurii: не спешите с рекламированием свойства 20/80 в Cognos PowerPlay. Это задачка, как мне кажется, немного посложнее будет. Если бы я сказал, что свойства 80/20 достаточно для решения этой задачи - это было бы не похоже на ответ эксперта по продуктам Cognos :) Пока что выскажу предположение, что если решать эту задачу с помощью продуктов Cognos, то начинать надо с создания произвольных запросов в Impromptu, и затем возможно использовать эти запросы как источники данных для проектирования аналитической модели PowerPlay. Для более точного ответа я сделаю небольшой тестовый примерчик и расскажу о его результатах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2004, 16:44 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Для более точного ответа я сделаю небольшой тестовый примерчик и расскажу о его результатах. Могу сделать вывод - задача несложная, если ее решать визуальными средствами. Однако написать руками SQL-запрос для ее решения - непросто... В принципе как я понял в ходе реализации тестового примера, для этой задачи вполне достаточно функциональности Query & Reporting. Вот какие шаги надо сделать в Cognos Impromptu: 1) Отсортировать чеки по убыванию по полю Сумма. 2) Использовать функцию Running-Total чтобы получить нарастающим итогом сумму чеков. 3) Поделить результат, полученный на предыдущем шаге на общую сумму чеков, вычисленную с помощью функции Total. 4) Использовать функцию Round-near - округлить отношение, полученное на предыдущем шаге до 1 знака после запятой и умножить этот результат на 100. Таким образом мы проклассифицируем каждый чек - входит ли он в TOP 10%, или в TOP 20%, и т.п. 5) Далее с помощью функции Average и ключевого слова FOR вычисляем среднюю сумму чека для каждого подмножества (для TOP 10%, TOP 20%, и т.п.). 6) С помощью функции Count вычислим, сколько чеков в каждой группе. Шаги 5 и 6 можно сделать и средствами OLAP-сервера PowerPlay. Все функции, которые я перечислил - это стандартные функции Cognos Impromptu. Примерчик я делал на основе DBF-файла, для чистоты эксперимента, чтобы не было вопросов, что в одной СУБД какие-то функции есть, а каких-то нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 10:03 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Юрий, а сколькими записями Вы манипулировали? Можете запостить сюда SQL, который сгенерировал Impromptu? И ещё, Вы предлагаете использовать два продукта для решения этой задачи. А одним нельзя что ли? Примерчик я делал на основе DBF-файла, для чистоты эксперимента, чтобы не было вопросов, что в одной СУБД какие-то функции есть, а каких-то нет Это не очень чистый эксперимент. Я только один раз видел сумасшедшего, который аналитику на больших объёмах данных делал на DBF-файлах. У него расчёты часами длились. Наверняка, у Вас под рукой есть какая-нибудь база данных побольше. Попробуйте повторить свой эксперимент. Интересно понять, насколько это будет работать в реальной жизни. А как Вы думаете, сколько времени данная процедура займёт у Вас на 3-4 миллионах чеков? Вы ведь собираетесь среднее на клиенте считать. Это значит, вы всю базу чеков по сети будете лить на клиентскую станцию. Каковы будут требования к клиентской станции? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 18:17 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Константин, а сколькими записями Вы манипулировали? Я делал этот примерчик на основе 30 записей, неохота было набивать больше :) Можете запостить сюда SQL, который сгенерировал Impromptu? Привожу текст (это диалект Impromptu для баз данных на основе DBF-файлов): select c1 as c1, c2 as c2, RSUM(c2) as c3, c4 as c4, c5 as c5, c6 as c6, c7 as c7 from (select c1 as c1, c2 as c2, c4 as c4, c5 as c5, c6 as c6, XAVG(c2 for c6) as c7 from (select c1 as c1, c2 as c2, c4 as c4, ((RSUM(c2)) / c4) as c5, ((round(((RSUM(c2)) / c4),1,0)) * 100) as c6 from (select c10 as c1, c9 as c2, XSUM(c9) as c4 from (select T1."SUM" as c9, T1."CHECK_ID" as c10 from "cheks2" T1 ) D2 order by c2 desc,c1 asc ) D5 ) D1 order by c2 desc,c1 asc ) D4 И ещё, Вы предлагаете использовать два продукта для решения этой задачи. А одним нельзя что ли? Я не очень глубоко исследовал эту задачу. Уверен что одного Impromptu вполне достаточно, но если использовать Powerplay - будет удобнее покрутить эту аналитическую модель в разных разрезах. Это не очень чистый эксперимент. Я только один раз видел сумасшедшего, который аналитику на больших объёмах данных делал на DBF-файлах. У него расчёты часами длились. В свое время, когда кроме DBase ничего не было, все были сумасшедшими :) Да и сейчас есть много компаний, которые работают на DBF-версиях 1С... Наверняка, у Вас под рукой есть какая-нибудь база данных побольше. Большие базы с чеками есть только у моих клиентов, и я работаю с ними только в офисах клиентов (сейчас этих баз под рукой нет). А как Вы думаете, сколько времени данная процедура займёт у Вас на 3-4 миллионах чеков? Если Impromptu будет работать медленно - я куплю мощный сервер, спроектирую реляционное ХД и настрою на него Microstrategy (у нашей компании есть право пользоваться этим продуктом :) А вообще то я предлагаю Вам потестировать мой подход на Вашей базе данных (заодно посмотрите систему бюджетирования, о которой Вы как-то спрашивали...). Вы ведь собираетесь среднее на клиенте считать Я бы хотел считать среднее на OLAP-сервере PowerPlay, поэтому и упомянул связку Impromptu + PowerPlay. Каковы будут требования к клиентской станции? В наши дни многие клиентские станции будут помощнее серверов, поскольку игрушки сейчас требуют много ресурсов, а фильмы занимают много места на жестком диске :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 18:40 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
2Jurii: А вообще то я предлагаю Вам потестировать мой подход на Вашей базе данных Предлагаете мне воспользоваться Impromptu? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 18:48 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
2 Jurii: Давайте посмотрим на SQL повнимательнее. Мои комментарии прямо в тексте. select c1 as c1, c2 as c2, RSUM(c2) as c3, c4 as c4, c5 as c5, c6 as c6, c7 as c7 from ( select c1 as c1, -- идентификатор чека, непонятно, для чего выбирается, в конечном результате не нужно c2 as c2, -- сумма чека, непонятно, для чего выбирается, в конечном результате не нужно c4 as c4, -- итог по всем чекам, непонятно, для чего выбирается, в конечном результате не нужно c5 as c5, -- доля суммы чека, непонятно, для чего выбирается, в конечном результате не нужно c6 as c6, -- очевидно, ТОП-группа XAVG(c2 for c6) as c7 -- средняя сумма чека для ТОП-группы, вычисляется на клиенте, аналог AVG(c2) GROUP BY c6 from ( select c1 as c1, -- идентификатор чека c2 as c2, -- сумма чека c4 as c4, -- итог по всем чекам ((RSUM(c2)) / c4) as c5, -- доля суммы чека ((round(((RSUM(c2)) / c4),1,0)) * 100) as c6 -- очевидно, округление до ближайшей десятки, from ( select c10 as c1, -- идентификатор чека c9 as c2, -- сумма чека XSUM(c9) as c4 -- наверное, итог по всем чекам, считается на клиенте вместо того, чтобы считать в СУБД from ( select T1."SUM" as c9, T1."CHECK_ID" as c10 from "cheks2" T1 ) D2 order by c2 desc, -- сортировка суммы чеков в порядке убывания c1 asc -- сортировка идентификаторов чеков по алфавиту. Непонятно зачем. Лишняя работа ) D5 ) D1 order by c2 desc, c1 asc ) D4 Основные выводы - всё делается на клиенте. Сомневаюсь в том, что на реальных объёмах данных это будет работать в принципе. Impromptu делает много лишних манипуляций с данными, что должно сказываться на скорости также. Основной вопрос остаётся открытым - где же та скорость, которую продукты Cognos предоставляют при решении сложных аналитических задач? Поскольку, Юрий, Вы считаете эту задачу несложной, что же будет со скоростью в более сложных случаях? Следующий вопрос - а если я захочу сделать drill down чтобы посмотреть на те чеки, которые входят в группу TOP 10% прямо в этом отчёте, как я смогу сделать это с помощью Impromptu? Люди! Как в MS AS такую задачу решают? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 12:43 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
To Константин: Предлагаете мне воспользоваться Impromptu? Я предлагаю Вам для начала только посмотреть, как эксперт по Impromptu и по другим продуктам Cognos настроит Impromptu на Вашу базу данных. Если конечный результат Вам понравится - Вы закупите нужные лицензии, пройдете курс обучения и сами станете экспертом в области Cognos. Напомню, что задачи подобные вашим многократно решались с помощью Impromptu и PowerPlay, и количество записей в базах доходило до 100 миллионов. Давайте посмотрим на SQL повнимательнее. Мои комментарии прямо в тексте. Основные выводы - всё делается на клиенте. Сомневаюсь в том, что на реальных объёмах данных это будет работать в принципе. Impromptu делает много лишних манипуляций с данными, что должно сказываться на скорости также. Разумеется в этом примере все делается на клиенте, поскольку СУБД - файл-серверная. Некоторое время назад я приводил пример SQL-запроса, сгенерированного Impromptu, и у этого запроса было 2 варианта, в зависимости от выбора опции, выполнять ли запрос на сервере или на клиенте. Поскольку запросы генерятся визуальными средствами, то есть сложные случаи, когда стоит зайти в окошко запроса Impromptu, и либо подредактировать его (оптимизировать), либо просто вставить туда собственный и оптимально написанный SQL-запрос. Основной вопрос остаётся открытым - где же та скорость, которую продукты Cognos предоставляют при решении сложных аналитических задач? Поскольку, Юрий, Вы считаете эту задачу несложной, что же будет со скоростью в более сложных случаях? Скорость гарантируется при использовании OLAP-сервера PowerPlay. Например в куб можно закачать 100 миллионов записей, и после этого с высокой скоростью отклика анализировать не только аддитивные выручку, прибыль, количество чеков/строк чеков на кассу/кассира/в час и т.п., но и среднюю цену товаров, сдеднюю стоимость покупок, динамику складских остатков, даже если эти остатки не хранятся в учетной системе и вычисляются OLAP-сервером на основе приходных и расходных документов, количество клиентов и другие показатели типа Distinct Count и т.п. Таким образом хочу сказать, что если задачку можно решить с использованием многомерного OLAP - то все будет быстро. Если же с помощью OLAP задача не решается - приходится использовать ROLAP, и там скорость не всегда предсказуема, зависит от загруженности сервера РСУБД, объема данных и сложности SQL-запросов. а если я захочу сделать drill down чтобы посмотреть на те чеки, которые входят в группу TOP 10% прямо в этом отчёте, как я смогу сделать это с помощью Impromptu? В Impromptu надо указать для поля или группы полей ссылку на смежный отчет (это будет не DrillDown, а DrillThrough). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 14:48 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Я предлагаю Вам для начала только посмотреть, как эксперт по Impromptu и по другим продуктам Cognos настроит Impromptu на Вашу базу данных. Если конечный результат Вам понравится - Вы закупите нужные лицензии, пройдете курс обучения и сами станете экспертом в области Cognos. Напомню, что задачи подобные вашим многократно решались с помощью Impromptu и PowerPlay, и количество записей в базах доходило до 100 миллионов. Спасибо за предложение :)) Я не хочу становиться экспертом по Cognos. Мне хватает того, что я Cognos Certified Professional. Разумеется в этом примере все делается на клиенте, поскольку СУБД - файл-серверная. Некоторое время назад я приводил пример SQL-запроса, сгенерированного Impromptu, и у этого запроса было 2 варианта, в зависимости от выбора опции, выполнять ли запрос на сервере или на клиенте. То есть, Вы утверждаете, что, в случае, например, MS SQL все вычисления будут производиться на нём? Поскольку запросы генерятся визуальными средствами, то есть сложные случаи, когда стоит зайти в окошко запроса Impromptu, и либо подредактировать его (оптимизировать), либо просто вставить туда собственный и оптимально написанный SQL-запрос. Вы имеете в виду, что именно этот конкретный запрос нужно ещё дальше оптимизировать или просто рекламируете свойства Impromptu? Скорость гарантируется при использовании OLAP-сервера PowerPlay. То есть, данную задачу невозможно решить с использованием Cognos PowerPlay? В Impromptu надо указать для поля или группы полей ссылку на смежный отчет (это будет не DrillDown, а DrillThrough). То есть, мне надо придумать, по каким направлениям пользователь захочет делать drill и наделать на все случаи готовых отчётов? А где же OLAP? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 17:07 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
To Константин: Я не хочу становиться экспертом по Cognos. Это Ваше право. Интересно будет узнать через некоторое время, удастся ли Вам создать эффективную аналитическую систему в Вашей компании, используя инструментарий других производителей... То есть, Вы утверждаете, что, в случае, например, MS SQL все вычисления будут производиться на нём? Я не уверен что эту задачу удастся решить на сервере РСУБД на 100% - видимо Impromptu некоторые задачи будет решать "на клиенте". В этом видимо отличие Impromptu от MSTR, которое, если верить Вашим постингам, все расчеты позволяет вести на сервере. Радует однако тот факт, что Impromptu обычно стоит на одном мощном компьютере (зачастую на сервере РСУБД), и выполняет вспомогательную роль, позволяя проектировать, создавать и обновлять OLAP-кубы в PowerPlay, где проблем с производительностью практически нет. Вы имеете в виду, что именно этот конкретный запрос нужно ещё дальше оптимизировать или просто рекламируете свойства Impromptu? Ничего я не рекламирую :) Чтобы понять, нужно ли оптимизировать этот конкретный запрос - надо провести тестирование на большой БД с как минимум миллионами чеков. Пока у меня такой возможности нет. Если же протестировать удастся, то возможны 2 варианта - либо запрос созданный визуальными средствами в Impromptu будет работать достаточно быстро, либо его будет разумно отредактировать. То есть, данную задачу невозможно решить с использованием Cognos PowerPlay? Эта задача для меня не типична, и я не исследовал глубоко, можно ли ее решить одним лишь PowerPlay. Я подумаю на эту тему, но видимо все же придется сделать виртуальную вьюшку в Impromptu и на ее основе проектировать куб в PowerPlay. То есть, мне надо придумать, по каким направлениям пользователь захочет делать drill и наделать на все случаи готовых отчётов? А где же OLAP? Impromptu - это не OLAP-сервер. Это вспомогательный модуль класса Query & Reporting, интегрированный с OLAP-сервером PowerPlay, с системой бюджетирования Cognos Planning и т.п. При этом в Impromptu можно делать произвольные отчеты, но это не будут ОЛАПовские отчеты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 18:30 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Интересно будет узнать через некоторое время, удастся ли Вам создать эффективную аналитическую систему в Вашей компании, используя инструментарий других производителей... Самому интересно :) Вот, диаграмму Парето сваял, чем вполне доволен. Я не уверен что эту задачу удастся решить на сервере РСУБД на 100% - видимо Impromptu некоторые задачи будет решать "на клиенте". Я даже скажу какую - нарастающий итог, поскольку эта функция отсутствует в MS SQL. Соответственно, все миллионы чеков будут литься на ту машину, где стоит Impromptu. Радует однако тот факт, что Impromptu обычно стоит на одном мощном компьютере (зачастую на сервере РСУБД), и выполняет вспомогательную роль, позволяя проектировать, создавать и обновлять OLAP-кубы в PowerPlay, где проблем с производительностью практически нет. Всяко, не будет он работать со скоростью СУБД, которая понимает, что такое параллелизм, например. Да, и даже в пределах одного компьютера через ODBC или подобный интерфейс данные тоже не очень быстро выгрузятся в Impromptu. Словом, у меня очень большие сомнения в масштабируемости этого решения. 30 чеков - не вопрос. С миллионами точно будут проблемы. Эта задача для меня не типична, и я не исследовал глубоко, можно ли ее решить одним лишь PowerPlay. Я подумаю на эту тему, но видимо все же придется сделать виртуальную вьюшку в Impromptu и на ее основе проектировать куб в PowerPlay. Проектировать целый куб для решения одной задачи? Impromptu - это не OLAP-сервер. Это я и так знаю. Пользовался. При этом в Impromptu можно делать произвольные отчеты, но это не будут ОЛАПовские отчеты... Ну, это Вы хватили насчёт произвольных. Вам рассказать про fan trap, раннее связывание и другие грабли, которые лежат в Impromptu на каждом шагу? В общем, я понял для себя, что эта типичная аналитическая задача (хоть она и так нетипична для Вас) не решается на реальных объёмах данных с помощью продуктов Cognos. Люди по MS AS! Как вы решаете эту задачу? У вас эе есть функция вычисления нарастающего итога! С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 18:50 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Константин, Самому интересно :) Вот, диаграмму Парето сваял, чем вполне доволен. Поздравляю Вас :) Однако на мой взгляд эффективной аналитической системой можно назвать ту, к которой имеет доступ широкий круг лиц принимающих те или иные управленческие решения. Я например достигаю этого за счет создания OLAP-кубов и закладывания в них необходимых пользователям аналитических разрезов (измерений) и показателей, и обучая пользователей работе в OLAP-клиенте. А Вы что будете делать после диаграммы Парето (если не секрет :)? Я даже скажу какую - нарастающий итог, поскольку эта функция отсутствует в MS SQL. Соответственно, все миллионы чеков будут литься на ту машину, где стоит Impromptu. Я подумаю над вопросом поиска эффективного решения этой задачи... Да, и даже в пределах одного компьютера через ODBC или подобный интерфейс данные тоже не очень быстро выгрузятся в Impromptu. ODBC я использую только для СУБД Progress, Visual FoxPro и т.п. К СУБД Oracle, MS SQL, Sybase, DB2 и т.п. подключаюсь из Impromptu через прямые драйверы. Проектировать целый куб для решения одной задачи? В этой задаче в источнике данных всего несколько полей. В кубе - несколько измерений и показателей. Проектирование куба в этом случае - несколько движений мышкой и ни одной строчки кода. Тут главное понять, как оптимальнее балансировать нагрузкой между сервером РСУБД и OLAP-сервером... Ну, это Вы хватили насчёт произвольных. Вам рассказать про fan trap, раннее связывание и другие грабли, которые лежат в Impromptu на каждом шагу? Если бы Вы об этом рассказали - это было бы полезно для форума и интересно лично для меня. В общем, я понял для себя, что эта типичная аналитическая задача (хоть она и так нетипична для Вас) не решается на реальных объёмах данных с помощью продуктов Cognos. Прежде чем такое говорить, надо бы протестировать Impromptu на большом объеме данных. Люди по MS AS! Как вы решаете эту задачу? У вас эе есть функция вычисления нарастающего итога! У нас с Вами есть инструментарий для создания произвольных запросов визуальными средствами, а у пользователей MS AS этого нет. Поэтому вряд ли они решали эту задачу (хотя я рад бы ошибиться в этом суждении). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 19:18 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
В ProClarity есть встроенная диаграмма Парето. Она может быть построена для любого измерения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 21:09 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
To Максим Мамаев: В ProClarity есть встроенная диаграмма Парето. Она может быть построена для любого измерения. Это решает задачу на 50% :) Теперь осталось в кубе создать измерение, листья которого - несколько миллионов или десятков миллионов чеков, и применить к этому измерению функциональность Парето... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 09:26 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
2 Jurii: Если ProClarity проводит все вычисления на OLAP-сервере (MDX-запросом), то не вижу в этом проблемы. Если на клиенте - получаем вариант с Impromptu. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 10:29 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Константин, Если ProClarity проводит все вычисления на OLAP-сервере (MDX-запросом), то не вижу в этом проблемы. Если на клиенте - получаем вариант с Impromptu. На основе моего опыта могу сказать, что неразумно обожествлять понятие "сервер", если речь идет об OLAP. Да и MDX-запросы далеко не всегда выполняются на сервере (если верить постингам на форуме, по крайней мере Calculated Members в MS AS вычисляются на клиенте)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 11:43 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
ЭВРИКА! Я подумаю над вопросом поиска эффективного решения этой задачи... Похоже я нашел решение задачи по построению Диаграммы Парето на основе детальных данных по розничным чекам. При этом вся нагрузка перекладывается на OLAP-сервер Cognos PowerPlay (то есть без разницы, хранятся ли чеки в серьезной СУБД типа Oracle или MS SQL Server, или в локальном файле формата DBF, CSV и т.п.). Побочный эффект - строится диаграмма не по точкам TOP10, TOP20 и т.п., а по большему количеству точек (однако если ввести достаточно большое значение параметра - . Итак, приведу алгоритм: 1) В модуле PowerPlay Transformer создаем вычисляемую колонку по следующей формуле: round-near ( "Сумма чека" / 30 , 0 ) Делю я на 30 чтобы например округлить сумму каждого чека до ближайшего доллара, и таким образом - проклассифицировать. Можно делить не на 30 - а на 100, и тогда будет больше интервалов и мы еще больше приблизимся к точкам TOP10, TOP20... Эту колонку перетаскиваем в область измерений. 2) Создаю 3 показателя - сумма чека, средняя сумма чека (то же самое что и сумма, но правило агрегации - по среднему, количество чеков (на основе колонки-счетчика строк, в каждой строке - единичка) - этот показатель полезен, но в начальной формулировке задачи он не требуется 3) В OLAP-клиенте PowerPlay User делаем сортировку по полю Средняя сумма чека, и применяем стандартную функцию вычисления Нарастающий процент от Базы к показателю Сумма чека 4) Переходим в режим Многолинейного графика, и выводим на него оба требуемых показателя. При таком подходе мы не закачиваем в куб чеки - они только читаются в процессе генерации куба. Соответственно в кубе получается совсем мало категорий (листьев) и на среднем по мощности компе закачка в куб будет со скоростью миллион чеков за 2-3 минуты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 13:26 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Dobrogo vremeni sutok! Diagrama Pareto k zapadu ot Odera chasche nazivaetsya ABC-Analysis, posemu ya srazu to i ne prosek o chem rech idet. Vikativayu MDX. Komu interesno. Postroeine ABC-Analysis Diagram: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. Rezultati zaprosa zakativaite v lyubyu Grafiko-Stroitelnuyu programmu i naslazhdaites ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 13:32 |
|
||
|
Диаграмма Парето. Кто как строит?
|
|||
|---|---|---|---|
|
#18+
Как уже говорил Birkhoff в оракле подобная задача решается одим запросом при помощи двух аналитических функций SUM() OVER(PARTITION BY ... ) и RATIO_TO_REPORT( ) OVER(PARTITION BY ...) Писать запрос самому лень, я делал ABC отчет, одним запросом Хомо сапиенс, это возможность мыслить, но не всегда способность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 14:25 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=49&tid=1871566]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 528ms |

| 0 / 0 |
