Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Количество товаров в чеке / 13 сообщений из 13, страница 1 из 1
25.04.2017, 16:28
    #39444187
Qq
Qq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество товаров в чеке
Всем привет, не сочтите за труд, подскажите:
Есть таблица

check_id, sku_id, qty

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

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

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

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

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

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

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

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

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

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

По факту, все почему то пишут про некий потолок, мол табличная модель не способна вытянуть большой объем (наверное это относится к 2014 версии), по личному опыту это не так, текущий проект (куб SSAS 2016) составляет две таблицы фактов (110 мил. строк и чуть более 660 мил. строк), измерений около 30, проблем с тормозами нет.
...
Рейтинг: 0 / 0
26.04.2017, 12:55
    #39444678
WarAnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество товаров в чеке
IDVT,
авторПо факту, все почему то пишут про некий потолок, мол табличная модель не способна вытянуть большой объем (наверное это относится к 2014 версии), по личному опыту это не так, текущий проект (куб SSAS 2016) составляет две таблицы фактов (110 мил. строк и чуть более 660 мил. строк), измерений около 30, проблем с тормозами нет.
потому что 600 млн строк это детский объем данных, вы попробуйте лярдов 10 залить в табличную модель, вот тогда и поймете о чем речь.
...
Рейтинг: 0 / 0
26.04.2017, 13:04
    #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
26.04.2017, 13:07
    #39444690
IDVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество товаров в чеке
ShIgor.... Но надо понимать, что ТФ это десятки млн записей, а кол-во измерений к ней не меньше сотни.
да, но речь не шла о миллиардах. Возможно Вы правы, у меня нет практики работы с табличной модели с выше 1.2 миллиарда строк фактов.
...
Рейтинг: 0 / 0
26.04.2017, 14:14
    #39444771
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество товаров в чеке
WarAnt,
понятно, что кол-во по SKU в чеке, кол-во строк в чеке и кол-во SKU в чеке - разные показатели, но в примере нет номера строки чека, а с первой мерой проблем вообще нет, отсюда и вывод.

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

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

WB (writeback) отсутствует - это серьезный минус для меня!!!
...
Рейтинг: 0 / 0
26.04.2017, 16:09
    #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
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Количество товаров в чеке / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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