powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Количество товаров в чеке
13 сообщений из 13, страница 1 из 1
Количество товаров в чеке
    #39444187
Qq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, не сочтите за труд, подскажите:
Есть таблица

check_id, sku_id, qty

где check_id - признак чека
sku_id -уникальный артикул товара
qty - количество

Как построить в кубе количество вхождений товаров в чек (строчек в чеке)?

В итоге требуется таблица вида

количество sku в чеке | Доля %

1 | 30
2 |15
3|10
4|20
5|25
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444251
WarAnt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qq,

непонятно как вы из одного получаете другое, можно пример данных и расчет,
почему 1 количество равно 30%, а 5 равно 25% ?
и вообще чего за задача, ABC анализ, market basket?
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444310
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что не понятного? 30% с 1 позицией в чеке, 15% с 2, 10% с 3 и т.д.

с количеством SKU - тривиально - DistinctCount по полю SKU.
а вот с долями посложнее - это уже расчетная мера относительно предыдущего..
и при больших объемах задача становится совсем неудобной для решения в лоб на кубах (подразумевается SSAS MD).

расширенный аналог я описывал в Разбить на группы на основе результатов, named set?

если задача не подразумевает фильтрации данных по SKU на лету, то я бы смотрел в сторону предварительной трансформации данных на этапе заливки в хранилище, что-то типа: check_id, sku_count.
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444358
Qq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorчто не понятного? 30% с 1 позицией в чеке, 15% с 2, 10% с 3 и т.д.

с количеством SKU - тривиально - DistinctCount по полю SKU.
а вот с долями посложнее - это уже расчетная мера относительно предыдущего..
и при больших объемах задача становится совсем неудобной для решения в лоб на кубах (подразумевается SSAS MD).

расширенный аналог я описывал в Разбить на группы на основе результатов, named set? с долями, фиг с ними, разберусь. Я вот чегото притормозил около distinct count. Не пойму как его к чекам привязать в кубе. Он же будет работать относительно выбранного измерения так? а создавать измерение с номерами чеков в качестве членов это как-то не то, имхо. Или я что-то недопонимаю?

ShIgorесли задача не подразумевает фильтрации данных по SKU на лету, то я бы смотрел в сторону предварительной трансформации данных на этапе заливки в хранилище, что-то типа: check_id, sku_count. похоже что я тоже смотрю туда же. Пока это "самый дешевый" способ решения данного вопроса. (я просто подумал вдруг есть какая магия, а я не знаю)
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444445
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qq,
нет, DC работает не по измерению, а по полю в ТФ. в твоем случае SKU (id, надеюсь оно integer) - количество уникальных SKU в чеке. Это же поле (SKU_id) имеет связь с измерением SKU. А по измерению будешь считать если нужно сделать нестандартный DC.
с долями разбираться в этом случае значительно сложнее, т.к. нет отдельного измерения кол-во SKU в чеке, да и DC нигде не хранится, а считается "на лету" - отсюда и сложности.

Господа,
кто предложит современный способ решения проблемы с удовлетворительной скоростью и гибкостью, а то SSAS MD что-то для этой задачи не подходит, может Tabular, Power Query, Power BI предлагают что-то или для них тоже предварительно данные надо уложить, а то времени на эксперименты нет абсолютно. Но надо понимать, что ТФ это десятки млн записей, а кол-во измерений к ней не меньше сотни.
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444473
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было несколько проектов, миграции с многомерной в табличную модель кубов.
В многомерной модели часть мер были вынесены в виде физических, со слов заказчика полученный результат дал прирост. Но после миграции на табличную модель, замер производительности на нагрузочной базе выдал более 4х кратное увеличение производительности, при этом все меры выполнены в виде обычной калькуляции. Судить качество исходной многомерной модели я не могу, т.к. c MDX на Вы.

По факту, все почему то пишут про некий потолок, мол табличная модель не способна вытянуть большой объем (наверное это относится к 2014 версии), по личному опыту это не так, текущий проект (куб SSAS 2016) составляет две таблицы фактов (110 мил. строк и чуть более 660 мил. строк), измерений около 30, проблем с тормозами нет.
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444678
WarAnt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVT,
авторПо факту, все почему то пишут про некий потолок, мол табличная модель не способна вытянуть большой объем (наверное это относится к 2014 версии), по личному опыту это не так, текущий проект (куб SSAS 2016) составляет две таблицы фактов (110 мил. строк и чуть более 660 мил. строк), измерений около 30, проблем с тормозами нет.
потому что 600 млн строк это детский объем данных, вы попробуйте лярдов 10 залить в табличную модель, вот тогда и поймете о чем речь.
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444685
WarAnt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorчто не понятного? 30% с 1 позицией в чеке, 15% с 2, 10% с 3 и т.д.


да его мне такая мысль в голову не пришла.
но все равно вопрос, речь в итоговом результате идет про что про количество товаров и про количество строк товаров?
я могу продать 10 одинаковых товаров в одном чеке в виде одной строки с quantity =10
1|12345|10
а могу продать 10 разных товаров в одном чеке с quantity =1
1|12340|1
1|12341|1
1|12342|1
1|12343|1
1|12344|1
1|12345|1
1|12346|1
1|12347|1
1|12348|1
1|12349|1
а могу продать один и тот же товар в чеке в виде 10 строк с quantity =1
1|12345|1
1|12345|1
1|12345|1
1|12345|1
1|12345|1
1|12345|1
1|12345|1
1|12345|1
1|12345|1
1|12345|1
это будет три разных ситуации, и вот тут вопрос, как в этом случае должен выглядеть результат?

если считать по количеству SKU то
для первого чека, 1
для второго чека 10
для третьего чека 1
если считать по количеству товара в чеке то
для всех чеков 10
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444690
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor.... Но надо понимать, что ТФ это десятки млн записей, а кол-во измерений к ней не меньше сотни.
да, но речь не шла о миллиардах. Возможно Вы правы, у меня нет практики работы с табличной модели с выше 1.2 миллиарда строк фактов.
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444771
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WarAnt,
понятно, что кол-во по SKU в чеке, кол-во строк в чеке и кол-во SKU в чеке - разные показатели, но в примере нет номера строки чека, а с первой мерой проблем вообще нет, отсюда и вывод.

IDVT,
замечательно, а детали миграции расскажете? было-ли что-либо сделано с ТФ (partitions, ccsi)? какой клиент используется? а все меры в калькуляции и DC есть? что с обработкой, сколько времени фулл процесс? железо серьезное? а аналог ROLAP в этом случае какой?
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444821
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
детали миграции
все зависит от поставленной задачи ....
было-ли что-либо сделано с ТФ (partitions, ccsi)
обычно заказчик подобные пункты вычеркивает, в дальнейшем алгоритм процессинга формируют своими силами. Секционирование разумеется присутствует, вся информация доступна в инете. Я не знаю что такое ccsi.
какой клиент используется
Excel, для табличной модели другого нет.
а все меры в калькуляции и DC есть
Я не знаю что такое DC. Все меры в калькуляции т.к. режим хранения данных во всех проектах InMemory, по факту про DirectQuery сказать особо не чего, нет живой практики с ним.
что с обработкой, сколько времени фулл процесс
не совсем понятен вопрос, полный процессинг зависит от объема данных и структуры куба, Вы же это сами понимаете.
железо серьезное
тут более детально к требованиям , но по факту ставят на то чем богаты, возможно потом обновляют по мере собственных нужд.
а аналог ROLAP в этом случае какой
ROLAP -> DirectQuery ( тут детальнее , я не знаю при каком режиме хранения данных служба SSAS многомерной модели работает с Writeback, в табличной модели этого нет)
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444834
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVT,

CCSI - clustered columnstore index
DC - distinct count
объемы данных Вы же и указали, поэтому ответы на вопросы про обработку и про железо хотелось бы знать применительно именно к этому объему.

WB (writeback) отсутствует - это серьезный минус для меня!!!
...
Рейтинг: 0 / 0
Количество товаров в чеке
    #39444882
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CCSI - clustered columnstore index DirectQuery - однозначно колоночные индексы дадут результат
InMemory - я сомневаюсь, что будет существенный прирост, ведь в типичной структуре измерения обычно всегда процессятся с флагом "Full", а на секции фактов достаточно и PK (по которому секционирована таблица).
distinct countт.е. есть ли функция в DAX'е?-есть, или речь про физические меры..
объемы данных Вы же и указали, поэтому.... Полный процессинг куба с чуть менее 1.2 миллиарда строк таблицы фактов занимал около 4 часов, но это был MSSQL 2014 Ent., по железу даже не помню (честно говоря и не знал скорее всего).
к примеру: две таблицы фактов 110 мил. строк и чуть более 660 мил. строк, измерений около 30, полный процессинг занимает чуть более 2х часов на MSSQL 2016 Dev. По железу:
CPU - Xeon E5-2623 3GHz * 2
DDR3-2400 (60GB на одну виртуалку)
Диски обычные SATA (табулярка InMemory).
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Количество товаров в чеке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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