powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Анализ изменения цен по прайслисту
14 сообщений из 14, страница 1 из 1
Анализ изменения цен по прайслисту
    #32255566
GrimReaper777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла задача анализировать изменение цен по прайслистам
Номенклатура товара - порядка 100 000 наименований
Есть факты переоценок - цена указанного товара начиная с указанного дня в указанном магазине
Необходимо показывать цену товара на каждый день, а если выбрана группа товара и/или период больше одного дня то цену средневзвешенную по остаткам.
Даже если не заморачиваться со средневзвешенной а считать среднеарифмитическую в лоб через calculated member - MS AS загибается

Замечу, что это не то же самое что стоимость проданного поделить на количество проданного : во-первых продажи могут быть со скидками, а нам необходимо анализировать полную цену, во-вторых необходимо анализировать изменения цен на товары для которых не было продаж в указанном периоде

В связи с этим вопрос к уважаемым гуру: есть ли какие-то испробованные подходы к решению такой задачи? какие-то компромиссные решения? или такая задача олапу не по зубам?
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32255803
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В связи с этим вопрос к уважаемым гуру: есть ли какие-то испробованные подходы к решению такой задачи? какие-то компромиссные решения? или такая задача олапу не по зубам?

Эта задача - средней сложности. Среднеарифметические цены я могу легко посчитать. Со средневзвешенными дело сложнее, но у меня есть несколько вариантов решения. Подчеркиваю, что вышесказанное справедливо при использовании не MS AS, а Cognos PowerPlay. Если интересно - могу рассказать подробнее.

Номенклатура товара - порядка 100 000 наименований
Есть факты переоценок - цена указанного товара начиная с указанного дня в указанном магазине


Кстати, сколько у Вас примерно магазинов и за какой период времени Вы хотите проводить анализ (несколько лет, последние 6 месяцев, последние 7 дней)?
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32255853
GrimReaper777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта задача - средней сложности. Среднеарифметические цены я могу легко посчитать. Со средневзвешенными дело сложнее, но у меня есть несколько вариантов решения. Подчеркиваю, что вышесказанное справедливо при использовании не MS AS, а Cognos PowerPlay. Если интересно - могу рассказать подробнее.

Расскажите, пожалуйста, подробнее
Период времени - 2 года, анализировать в идеале нужно по любым периодам: подневно, помесячно, понедельно и так далее
Количество магазинов - порядка 60
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32255867
DmitryS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё бы хорошо, если бы не группировка по группам. Если я вас правильно понял, то помогут периодические снэпшоты (это не я, это Кимбалл придумал:-)) - надо множить данные на каждый период анализа. А дальше MDX-ом всё решается. Проблема одна - хранилище пухнет. Кстати, тут поднимался вопрос - сколько данных потянут кубы MS AS. Как выяснилось на днях, 70 млн. фактов на 26 измерениях тянут. Разбито на 5 партиций - всё летает. И процессится нормально. Правда, на весьма достойном железе:-)
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32256248
lubimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO задача не для OLAP, а для SQL
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32256370
DmitryS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача-то, может и для OLAP. Но при решении придётся активно попользовать SQL.:-)
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32256392
GrimReaper777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO задача не для OLAP, а для SQL

то есть единственное решение это набор фиксированных SQL-отчетов с умопомрачительным временем отклика?

Задача-то, может и для OLAP. Но при решении придётся активно попользовать SQL.:-)

а это как? как можно облегчить жизнь на уровне источника данных, подскажите, плиз ?
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32257155
lubimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAP заточен на работу с высокими уровнями агрегации, и когда вычисления производятся на нижних уровнях - все видели резуальтат - эффективность даже ниже, чем SQL.
А тут нет агрегатов, которые бы ускорили работу всей задачи за счет OLAP - так что...
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32257178
GrimReaper777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAP заточен на работу с высокими уровнями агрегации, и когда вычисления производятся на нижних уровнях - все видели резуальтат - эффективность даже ниже, чем SQL.
А тут нет агрегатов, которые бы ускорили работу всей задачи за счет OLAP - так что...


да ... нет в жизни счастья :(
но может быть существует какое-то компромиссное решение, которое с использованием аггрегатов показывало бы некую аппроксимацию искомых данных способную удовлетворить бизнес-пользователей?

с нетерпением жду ответа от Jurii, который утверждает, что эта задача средней сложности
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32257201
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с нетерпением жду ответа от Jurii, который утверждает, что эта задача средней сложности

Постараюсь сегодня ближе к вечеру ответить, работы много, руки не доходят написать развернутый ответ на Ваш вопрос. Я немного поигрался на тестовых данных - результат достигается в том или ином приближении несколькими вариантами. Есть однако очень хитрые подходы к решению этой задачи, если глубоко копнуть - можно и диссертацию написать на тему "Анализ изменения цен с помощью Cognos PowerPlay" :)
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32257509
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с нетерпением жду ответа от 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 и поиграться с ней.
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32258169
GrimReaper777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 по моим прикидкам потребует миллиарды записей в таблице фактов - наше железо такое не потянет, овчинка выделки не стоит
Вобщем, заказчику пришлось отказать, ограничившись просмотром текущей цены для каждого конкретного товара
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32261362
Andrey Savchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что, если попробовать следующий компромисный вариант:

Как правило, анализировать прайс лист нужно с целью определения влияния цены товара на его продажи. Поэтому в куб с продажами, раз уж он все равно существует и хранит данные по конкретному товару на каждый день продаж, добавить еще один показатель - цена товара по прайс листу. Получится, что для конкретной продаваемой(!) модели мы знаем цену по прайс-листу на день продажи.

Итого:
1. Для решения задачи требуется не очень много ресурсов (память и CPU)
2. Бизнес пользователи смогут отслеживать необходимые тенденции.
3. Счастье для разработчиков - задание сделано :)
...
Рейтинг: 0 / 0
Анализ изменения цен по прайслисту
    #32261451
GrimReaper777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Andrey Savchenko

То, о чем Вы говорите - это цены средневзвешенные по продажам без учета скидок
Это действительно легко реализуется в OLAPе , но довольно далеко от первоначальной постановки задачи, как было указано выше
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Анализ изменения цен по прайслисту
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]