Текущее время: Вт, июл 29 2025, 19:15

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Чт, фев 27 2014, 14:59 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, июн 25 2007, 22:27
Сообщения: 95
Пол: Мужской
Всем привет!
Размышляю над проектированием структуры данных... было бы интересно послушать мнения.
Задачка совершенно логичная и простая, но нормального решения придумать не получается. Заранее извиняюсь за многабукв.
Итак:
Ритейл, есть чековые данные. К каждой строчке чека может быть привязано несколько (!) сработавших по ней скидок или рекламных акций. Ну например, на один и тот же проданый товар сработала одна сезонная, вторая какая-нибудь по уценке, а третья - предъявленная на кассе подарочная карта.
В ряде отчетов нужно фильтровать продажи по любой рекл.акции. При этом сумму, разумеется, нужно выводить целиком - т.е. если продали нечто за 100 р с учетом трех скидок, то выводим сумму продажи 100, а не 33,33.
Собственно, вопрос - как организовать в BW такую штуку?

Есть несколько вариантов разной степени кривизны:
1. В одном месте держим сумму продаж по каждому чеку, в другом месте держим связку "№ чека, № строки, код акции". В кубах или в DSO, неважно. Дальше соединяем одно с другим через инфосет. Простой штатный бивишный способ, но на нормальных объемах данных он не работает в принципе. Получается джойн таблицы позиций чеков с самой собой, однозначно не взлетит.

2. Размножать строку чека столько раз, сколько акций к ней привязано и записывать каждую акцию в отдельную строчку, в один и тот же признак. Но тогда для суммы продажи нужно включать спецагрегацию по признаку рекл.акции, чтобы не задваливалась сумма продажи, а это тоже не самое лучшее решение (т.к. оно в принципе возможно только для одного признака, плюс влияет на агрегаты)

3. Организационно ограничить количество этих акций, зарезервировать 3-4 поля в строке чека и складывать их туда. Самый простой способ, строка остается одна, просто добавляется пара новых признаков. Но даже в этом случае возникает непростая фильтрация в бексе - нужно вводимую переменную повестить на какой-то один признак акции, а все остальные экзитами из этой вводимой заполнять. Ну и плюс начинаются стандартные базары "как же так, такая крутая система не должна иметь таких ограничений".

4. Держать в одном и том же кубе несколько строк под каждую позицию чека, в одной строке держать сумму продаж, в остальных держать инфу по акциям и нулевую сумму продаж. Тоже не прокатывает, т.к. фильтровать по акции нужно именно сумму продаж.

5. Аналогично варианту 1, но соединять не через инфосет, а через мультикуб, а дальше навешивать константы выбора в бексе (чтобы побороть отсутствие признака акции в одном из кубов). Пытался делать такие решения, пришел к убеждению, что мультикубом такая задача не решается.

Интересно, что в стандартном кубе 0RPA_C01, который заполняется из экстрактора POSDM, на этот счет не предусмотрено ничего. Просто признак акции, просто показатель суммы продаж. Но при этом сам POSDM вполне позволяет передать в него несколько скидок по каждой строке чека. Как они борятся с возможными задвоениями (и борятся ли) - я не понял.

Было бы интересно послушать другие варианты решения, а также конструктивную критику тех, которые я перечислил.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Чт, фев 27 2014, 16:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Я бы выбрал аналог варианта 3.
Делается поле в котором акции складываются по кодам, например "/1001/1324/2023/", так с фильтром решается просто -- маской */1324/*, текст можно аналогичным образом склеивать. Чтобы пользователи поменьше были недовольны, можно предложить формировать ключ акции по определенным правилам, например первые две цифры -- год, и, соответственно, маска */14++/* -- выбирает все акции 14-го года.

Если пользователям не понравится -- то делать по записи на каждую акцию, суммы везде одинаковые, настроить агрегацию так, чтобы суммы не складывались (вариант 2).

_________________
Глаза боятся, а руки крюки


Последний раз редактировалось G Чт, фев 27 2014, 17:07, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Чт, фев 27 2014, 16:55 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Вс, янв 11 2009, 14:41
Сообщения: 902
Откуда: Москва
Пол: Мужской
Я бы шел по второму варианту. Не очень понятны сомнения по поводу применимости только к одному признаку (ну да, к акции применяем, а к чему еще может потребоваться?!) и проблемы с агрегатами. Вот если бы акций было очень много, то тогда да, были бы проблемы, а так - непонятно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, фев 28 2014, 09:55 
Специалист
Специалист

Зарегистрирован:
Чт, фев 24 2005, 17:48
Сообщения: 160
Откуда: Красногорск
2 вариант...
причем бы оставил цену товара без скидки, т.е. скидка = #, а значение скидки (не в процентном выражении) писал бы либо с минусом либо с соседний показатель. Да строк получиться больше... но зато гибче...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, фев 28 2014, 09:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
ToliK написал(а):
2 вариант...
причем бы оставил цену товара без скидки, т.е. скидка = #, а значение скидки (не в процентном выражении) писал бы либо с минусом либо с соседний показатель. Да строк получиться больше... но зато гибче...

Комбинация 2 и 3+ -- как раз и, если надо, можно и строк поменьше отобразить и для анализа данных удобно.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, фев 28 2014, 12:56 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, июн 25 2007, 22:27
Сообщения: 95
Пол: Мужской
Я, собственно, тоже размышляю над вариантами 2 и 3.

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


G написал:
Я бы выбрал аналог варианта 3.
Делается поле в котором акции складываются по кодам, например "/1001/1324/2023/",

Вот это, кстати, прикольная идея, я не подумал. Но тут есть риск упереться в размер кода этого общего поля. И в размер текста тоже. Поскольку id акции в ERP 10 символов, то это достаточно реально. Этот вопрос не стоял бы, если бы была 7.4, но у меня 7.3.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, фев 28 2014, 13:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Насчет способа 3+: Если код 10 символов, то в ключ BW можно запихать 5-6 акций, этого достаточно.
Насчет способа 2: Количество строк можно увеличивать при необходимости. Т.е. кидая в развёртку аналитику "акция", а можно и не кидать. Или Вы по поводу куба беспокоитесь, а не по поводу отчета? Тогда агрегат можно сделать. Спецагрегация тоже делается по признаку "акция".

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, фев 28 2014, 13:21 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 05 2014, 12:22
Сообщения: 13
G написал:
Делается поле в котором акции складываются по кодам, например "/1001/1324/2023/", так с фильтром решается просто -- маской */1324/*, текст можно аналогичным образом склеивать.

А что будет с производительностью такого фильтра при наполнении куба до нескольких млн записей?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, фев 28 2014, 14:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Нормально будет :)

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, фев 28 2014, 14:22 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, дек 23 2008, 17:09
Сообщения: 315
Выскажу имхо. Сейчас в задаче смешаны кони и люди. Нужно садиться с заказчиком, проговаривать аналитику и выходить на решение, когда именно рекламная акция - одна. Это общепринятая практика, насколько я знаю. Иначе маркетологам либо невозможно будет определить какая именно "акция" побудила покупателя совершить покупку, либо они все равно будут вынуждены держать в голове ту самую главную акцию. Скидочные сертификаты, дисконтные/накопительные карты - персонализированы и условно бессрочны, они логичней лягут в какой-нибудь признак "Скидка". Решения об уценке ввиду дефектов или сроков годности могут принимать на уровне конкретных магазинов без участия маркетологов центрального офиса - т.е. объединять это в один признак тоже, вроде, нелогично. Подарочный сертификат на сумму - это, скорее, ближе к признаку "Способ оплаты". Сезонные скидки настолько стабильны и обширны по охвату, что называть их акцией - скорее маркетинговая уловка для покупателя, а не признак для анализа, отфильтровывать их можно месяцем/группой товаров.
И за размножение строк поддержка точно спасибо не скажет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, фев 28 2014, 15:17 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Вс, янв 11 2009, 14:41
Сообщения: 902
Откуда: Москва
Пол: Мужской
Тогда уж разумнее было бы делать отдельный куб без детализации до чека с ограниченным количеством аналитик (чтобы существенно сократить кол-во строк)

Акция
Материал
Завод
...другие важные аналитики

и с уже агрегированными показателями

Сумма по чекам
Кол-во чеков
...другие важные показатели

и для анализа маркетологами использовать только его.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, фев 28 2014, 16:38 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, июн 25 2007, 22:27
Сообщения: 95
Пол: Мужской
Online написал(а):
Выскажу имхо. Сейчас в задаче смешаны кони и люди.

Теоретически - согласен с правильностью такого подхода и пытался по нему идти.
Практически - это сложно. По ряду причин, опять же - как технических, так и политических.
Технические состоят, например, в том, что в ERP это все _уже_ свалено в одну кучу. Могу сейчас ошибиться в деталях, но если в CRM заводят какую-нибудь фигню типа "купи сегодня на 10000 и тогда ты получишь бумажку, которую потом отоваришь на 1000, если успеешь" - то это валится в тот же самый PromoID, в котором лежат обычные рекламные акции. Причем валится как факт выдачи бумажки, так и факт ее использования. Ну вот устроена она так, и никто не будет это менять только из-за того, что у меня инфосет на больших объемах не работает. Потом, недостаточно ведь просто видеть способ оплаты "подарочная карта", нужно же фильтровать по конкретной (в НГ одна серия, на 8 марта вторая и т.д).
А политические состоят в том, что заказчик сам не знает, можно ли методологически разнести их на разные понятия и оставить именно рекламную акцию единственной. И поэтому старается перевести обсуждение в плоскость "вы заложите возможность множественных, т.к. при переходе на новую аналитическую систему мы хотим заложить на будущее универсальность, расширяемость и т.д.".


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пн, апр 21 2014, 23:38 
Начинающий
Начинающий

Зарегистрирован:
Пт, авг 31 2012, 12:50
Сообщения: 14
Пол: Мужской
Решусь поднять тему.

В итоге к какому-то конкретному решению удалось придти? Может поделитесь опытом?

PS: А как вам вариант, аналогичный предложенному murmur, только вместо отдельного куба с ограниченным набором аналитик просто иметь ДСО, в котором хранить связку чека и рекламных акций. Отчет построить на мультике объединяющим это ДСО вместе с кубом с агрегированными показателями, в Bex QD использовать константу выбор на показателях суммы.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Задачка по проектированию структуры данных в BW, не могу найти нормальное решение.
СообщениеДобавлено: Пт, апр 25 2014, 15:49 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, фев 16 2006, 15:46
Сообщения: 451
Откуда: Россия
Задача решается тем, что на каждую рекламную акцию заводится свой атрибут, была она или нет.

Скажем, есть семь возможных акций. Это 2^7, то есть всего-то 127 комбинаций. Мы можем сделать признак рекламная акция от 0 до 127 и грузить его в куб. У него уже будут атрибуты "Скижка пенсионерам" "Карта любимого покупателя" и так далее.

_________________
Ян Владимирович,
http://www.vladimirovich.net


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB