Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
Возникла задача анализировать изменение цен по прайслистам Номенклатура товара - порядка 100 000 наименований Есть факты переоценок - цена указанного товара начиная с указанного дня в указанном магазине Необходимо показывать цену товара на каждый день, а если выбрана группа товара и/или период больше одного дня то цену средневзвешенную по остаткам. Даже если не заморачиваться со средневзвешенной а считать среднеарифмитическую в лоб через calculated member - MS AS загибается Замечу, что это не то же самое что стоимость проданного поделить на количество проданного : во-первых продажи могут быть со скидками, а нам необходимо анализировать полную цену, во-вторых необходимо анализировать изменения цен на товары для которых не было продаж в указанном периоде В связи с этим вопрос к уважаемым гуру: есть ли какие-то испробованные подходы к решению такой задачи? какие-то компромиссные решения? или такая задача олапу не по зубам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 11:06 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
В связи с этим вопрос к уважаемым гуру: есть ли какие-то испробованные подходы к решению такой задачи? какие-то компромиссные решения? или такая задача олапу не по зубам? Эта задача - средней сложности. Среднеарифметические цены я могу легко посчитать. Со средневзвешенными дело сложнее, но у меня есть несколько вариантов решения. Подчеркиваю, что вышесказанное справедливо при использовании не MS AS, а Cognos PowerPlay. Если интересно - могу рассказать подробнее. Номенклатура товара - порядка 100 000 наименований Есть факты переоценок - цена указанного товара начиная с указанного дня в указанном магазине Кстати, сколько у Вас примерно магазинов и за какой период времени Вы хотите проводить анализ (несколько лет, последние 6 месяцев, последние 7 дней)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 13:14 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
Эта задача - средней сложности. Среднеарифметические цены я могу легко посчитать. Со средневзвешенными дело сложнее, но у меня есть несколько вариантов решения. Подчеркиваю, что вышесказанное справедливо при использовании не MS AS, а Cognos PowerPlay. Если интересно - могу рассказать подробнее. Расскажите, пожалуйста, подробнее Период времени - 2 года, анализировать в идеале нужно по любым периодам: подневно, помесячно, понедельно и так далее Количество магазинов - порядка 60 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 13:46 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
Всё бы хорошо, если бы не группировка по группам. Если я вас правильно понял, то помогут периодические снэпшоты (это не я, это Кимбалл придумал:-)) - надо множить данные на каждый период анализа. А дальше MDX-ом всё решается. Проблема одна - хранилище пухнет. Кстати, тут поднимался вопрос - сколько данных потянут кубы MS AS. Как выяснилось на днях, 70 млн. фактов на 26 измерениях тянут. Разбито на 5 партиций - всё летает. И процессится нормально. Правда, на весьма достойном железе:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 13:57 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
IMHO задача не для OLAP, а для SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 17:31 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
Задача-то, может и для OLAP. Но при решении придётся активно попользовать SQL.:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 19:17 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
IMHO задача не для OLAP, а для SQL то есть единственное решение это набор фиксированных SQL-отчетов с умопомрачительным временем отклика? Задача-то, может и для OLAP. Но при решении придётся активно попользовать SQL.:-) а это как? как можно облегчить жизнь на уровне источника данных, подскажите, плиз ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2003, 19:33 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
OLAP заточен на работу с высокими уровнями агрегации, и когда вычисления производятся на нижних уровнях - все видели резуальтат - эффективность даже ниже, чем SQL. А тут нет агрегатов, которые бы ускорили работу всей задачи за счет OLAP - так что... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2003, 15:15 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
OLAP заточен на работу с высокими уровнями агрегации, и когда вычисления производятся на нижних уровнях - все видели резуальтат - эффективность даже ниже, чем SQL. А тут нет агрегатов, которые бы ускорили работу всей задачи за счет OLAP - так что... да ... нет в жизни счастья :( но может быть существует какое-то компромиссное решение, которое с использованием аггрегатов показывало бы некую аппроксимацию искомых данных способную удовлетворить бизнес-пользователей? с нетерпением жду ответа от Jurii, который утверждает, что эта задача средней сложности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2003, 15:34 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
с нетерпением жду ответа от Jurii, который утверждает, что эта задача средней сложности Постараюсь сегодня ближе к вечеру ответить, работы много, руки не доходят написать развернутый ответ на Ваш вопрос. Я немного поигрался на тестовых данных - результат достигается в том или ином приближении несколькими вариантами. Есть однако очень хитрые подходы к решению этой задачи, если глубоко копнуть - можно и диссертацию написать на тему "Анализ изменения цен с помощью Cognos PowerPlay" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2003, 15:51 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
с нетерпением жду ответа от Jurii, который утверждает, что эта задача средней сложности Предлагаю следующие варианты решения (буду оперировать терминами Cognos): 1) Создаете в Impromptu запрос, который к таблице фактов по продажам привязывает справочники (товары, магазины и т.п.), а также производит привязку цены из прайс-листа, действующей на момент продажи. Сохраняете этот запрос в формате виртуальной вьюшки. Далее создаете на основе этой вьюшки куб по продажам в ценах прайс-листов, и в кубе будет показатель - выручка делить на количество, то есть - средняя цена продажи (для групп товаров она будет средневзвешенной). 2) Создаете в Impromptu запрос, который к каждой строке прайс-листа привяжет текущий остаток по данному товару на данную дату. После этого создаете куб, цену агрегируете как СРЕДНЕЕ (Average), указываете вес - СкладскойОстаток, а для складского остатка указываете опцию Time Stamp Rollup. Я игрался с небольшим примером - получил интересные результаты, но это надо проверять на больших объемах данных. 3) Создаете в Impromptu запрос, который вместо абсолютного значения цены в прайс-листе вернет изменение по сравнению с предыдущим значением (ДЕЛЬТА). Создаете вычисляемый показатель на основе опции Category Count, который подсчитывает количество товаров (Distinct Count). В OLAP-клиенте используете функцию нарастающего итога от ДЕЛЬТА, и делите это на количество товаров. 4) Создаете с помощью хранимой процедуры гигантскую таблицу фактов, в которой для каждого дня, товара и магазина указана цена и количество. Цену агрегируете как СРЕДНЕЕ (Average), указываете вес - СкладскойОстаток. Это наиболее точный подход, но потребует мощного железа. Можно делать группу кубов в одной модели - 1 куб для каждого месяца или для каждого магазина, тогда все это будет работать быстрее. Скажем так - это не самые оптимальные методы. Чтобы найти оптимальный - надо экспериментировать. Рекомендую заказать ознакомительную версию продуктов Cognos через сайт http://cognos.narod.ru и поиграться с ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2003, 20:19 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
2 Jurii: Спасибо за ответ! Вариант номер 1 - цены средневзвешенные по продажам - об этом я в самом начале писал что это не подходит, это у нас уже есть и это не то же самое что анализ прайслиста Вариант номер 2 - цены средневзвешенные по остаткам на момент переоцеки - это то что я пытался реализовать и столкнулся с проблемой низкой производительности. Такой метод будет неточным, если за период между переоценками остатки сильно менялись, так что в здесь в таблицу фактов придется кроме фактов переоценок добавить еще и все факты изменения остатков И главный недостаток: цена должна учитываться ежедневно То есть например если у нас есть 2 переоценки товара: 1 сентября - 500 р и 6 сентября - 100 р то средняя цена за сентябрь должна составить (5*500 + 25*100)/30 = 166 а не (500 + 100) / 2 = 300 Хотя я не знаю что такое Time Stamp Rollup, в Cognose отработает первая формула или вторая? К варианту 3 та же претензия Вариант номер 4 по моим прикидкам потребует миллиарды записей в таблице фактов - наше железо такое не потянет, овчинка выделки не стоит Вобщем, заказчику пришлось отказать, ограничившись просмотром текущей цены для каждого конкретного товара ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2003, 11:33 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
А что, если попробовать следующий компромисный вариант: Как правило, анализировать прайс лист нужно с целью определения влияния цены товара на его продажи. Поэтому в куб с продажами, раз уж он все равно существует и хранит данные по конкретному товару на каждый день продаж, добавить еще один показатель - цена товара по прайс листу. Получится, что для конкретной продаваемой(!) модели мы знаем цену по прайс-листу на день продажи. Итого: 1. Для решения задачи требуется не очень много ресурсов (память и CPU) 2. Бизнес пользователи смогут отслеживать необходимые тенденции. 3. Счастье для разработчиков - задание сделано :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 15:43 |
|
||
|
Анализ изменения цен по прайслисту
|
|||
|---|---|---|---|
|
#18+
2 Andrey Savchenko То, о чем Вы говорите - это цены средневзвешенные по продажам без учета скидок Это действительно легко реализуется в OLAPе , но довольно далеко от первоначальной постановки задачи, как было указано выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 16:35 |
|
||
|
|

start [/forum/topic.php?fid=49&fpage=404&tid=1873155]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 338ms |

| 0 / 0 |
