|
|
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
Всем привет, не сочтите за труд, подскажите: Есть таблица check_id, sku_id, qty где check_id - признак чека sku_id -уникальный артикул товара qty - количество Как построить в кубе количество вхождений товаров в чек (строчек в чеке)? В итоге требуется таблица вида количество sku в чеке | Доля % 1 | 30 2 |15 3|10 4|20 5|25 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 16:28 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
Qq, непонятно как вы из одного получаете другое, можно пример данных и расчет, почему 1 количество равно 30%, а 5 равно 25% ? и вообще чего за задача, ABC анализ, market basket? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 18:25 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
что не понятного? 30% с 1 позицией в чеке, 15% с 2, 10% с 3 и т.д. с количеством SKU - тривиально - DistinctCount по полю SKU. а вот с долями посложнее - это уже расчетная мера относительно предыдущего.. и при больших объемах задача становится совсем неудобной для решения в лоб на кубах (подразумевается SSAS MD). расширенный аналог я описывал в Разбить на группы на основе результатов, named set? если задача не подразумевает фильтрации данных по SKU на лету, то я бы смотрел в сторону предварительной трансформации данных на этапе заливки в хранилище, что-то типа: check_id, sku_count. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 22:00 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
ShIgorчто не понятного? 30% с 1 позицией в чеке, 15% с 2, 10% с 3 и т.д. с количеством SKU - тривиально - DistinctCount по полю SKU. а вот с долями посложнее - это уже расчетная мера относительно предыдущего.. и при больших объемах задача становится совсем неудобной для решения в лоб на кубах (подразумевается SSAS MD). расширенный аналог я описывал в Разбить на группы на основе результатов, named set? с долями, фиг с ними, разберусь. Я вот чегото притормозил около distinct count. Не пойму как его к чекам привязать в кубе. Он же будет работать относительно выбранного измерения так? а создавать измерение с номерами чеков в качестве членов это как-то не то, имхо. Или я что-то недопонимаю? ShIgorесли задача не подразумевает фильтрации данных по SKU на лету, то я бы смотрел в сторону предварительной трансформации данных на этапе заливки в хранилище, что-то типа: check_id, sku_count. похоже что я тоже смотрю туда же. Пока это "самый дешевый" способ решения данного вопроса. (я просто подумал вдруг есть какая магия, а я не знаю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 01:19 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
Qq, нет, DC работает не по измерению, а по полю в ТФ. в твоем случае SKU (id, надеюсь оно integer) - количество уникальных SKU в чеке. Это же поле (SKU_id) имеет связь с измерением SKU. А по измерению будешь считать если нужно сделать нестандартный DC. с долями разбираться в этом случае значительно сложнее, т.к. нет отдельного измерения кол-во SKU в чеке, да и DC нигде не хранится, а считается "на лету" - отсюда и сложности. Господа, кто предложит современный способ решения проблемы с удовлетворительной скоростью и гибкостью, а то SSAS MD что-то для этой задачи не подходит, может Tabular, Power Query, Power BI предлагают что-то или для них тоже предварительно данные надо уложить, а то времени на эксперименты нет абсолютно. Но надо понимать, что ТФ это десятки млн записей, а кол-во измерений к ней не меньше сотни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 09:22 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
Было несколько проектов, миграции с многомерной в табличную модель кубов. В многомерной модели часть мер были вынесены в виде физических, со слов заказчика полученный результат дал прирост. Но после миграции на табличную модель, замер производительности на нагрузочной базе выдал более 4х кратное увеличение производительности, при этом все меры выполнены в виде обычной калькуляции. Судить качество исходной многомерной модели я не могу, т.к. c MDX на Вы. По факту, все почему то пишут про некий потолок, мол табличная модель не способна вытянуть большой объем (наверное это относится к 2014 версии), по личному опыту это не так, текущий проект (куб SSAS 2016) составляет две таблицы фактов (110 мил. строк и чуть более 660 мил. строк), измерений около 30, проблем с тормозами нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 09:57 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
IDVT, авторПо факту, все почему то пишут про некий потолок, мол табличная модель не способна вытянуть большой объем (наверное это относится к 2014 версии), по личному опыту это не так, текущий проект (куб SSAS 2016) составляет две таблицы фактов (110 мил. строк и чуть более 660 мил. строк), измерений около 30, проблем с тормозами нет. потому что 600 млн строк это детский объем данных, вы попробуйте лярдов 10 залить в табличную модель, вот тогда и поймете о чем речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 12:55 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 13:04 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
ShIgor.... Но надо понимать, что ТФ это десятки млн записей, а кол-во измерений к ней не меньше сотни. да, но речь не шла о миллиардах. Возможно Вы правы, у меня нет практики работы с табличной модели с выше 1.2 миллиарда строк фактов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 13:07 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
WarAnt, понятно, что кол-во по SKU в чеке, кол-во строк в чеке и кол-во SKU в чеке - разные показатели, но в примере нет номера строки чека, а с первой мерой проблем вообще нет, отсюда и вывод. IDVT, замечательно, а детали миграции расскажете? было-ли что-либо сделано с ТФ (partitions, ccsi)? какой клиент используется? а все меры в калькуляции и DC есть? что с обработкой, сколько времени фулл процесс? железо серьезное? а аналог ROLAP в этом случае какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 14:14 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
детали миграции все зависит от поставленной задачи .... было-ли что-либо сделано с ТФ (partitions, ccsi) обычно заказчик подобные пункты вычеркивает, в дальнейшем алгоритм процессинга формируют своими силами. Секционирование разумеется присутствует, вся информация доступна в инете. Я не знаю что такое ccsi. какой клиент используется Excel, для табличной модели другого нет. а все меры в калькуляции и DC есть Я не знаю что такое DC. Все меры в калькуляции т.к. режим хранения данных во всех проектах InMemory, по факту про DirectQuery сказать особо не чего, нет живой практики с ним. что с обработкой, сколько времени фулл процесс не совсем понятен вопрос, полный процессинг зависит от объема данных и структуры куба, Вы же это сами понимаете. железо серьезное тут более детально к требованиям , но по факту ставят на то чем богаты, возможно потом обновляют по мере собственных нужд. а аналог ROLAP в этом случае какой ROLAP -> DirectQuery ( тут детальнее , я не знаю при каком режиме хранения данных служба SSAS многомерной модели работает с Writeback, в табличной модели этого нет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 15:24 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
IDVT, CCSI - clustered columnstore index DC - distinct count объемы данных Вы же и указали, поэтому ответы на вопросы про обработку и про железо хотелось бы знать применительно именно к этому объему. WB (writeback) отсутствует - это серьезный минус для меня!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 15:34 |
|
||
|
Количество товаров в чеке
|
|||
|---|---|---|---|
|
#18+
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). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 16:09 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=39444678&tid=1858276]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 497ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...