Вопрос концептуальный. Когда сформируется рабочий концепт, буду шерстить форум и прочее уже самостоятельно.
Дано: Есть массив данных за месяц, порядка 3 миллионов строк (это склад, комплектация заказов). Нужные нам данные в массиве есть: вес товара, объём товара, шт (сколько было в заказе), фактическое время (которое было потрачено на подбор конкретно этого товара).
Задача 1: сформировать трёхмерный "куб параметров/значений": 1 сторона штуки, 2 сторона вес, 3 сторона объём. "Внутри" куба значения времени на подбор (каждое такое значение времени выбирается либо как медиана всех исторических значений с конкретными вес/объём/шт, либо просто среднее по ним).
Задача 2: имеется план какие конкретно заказы нужно будет комплектовать завтра (скажем 1000 заказов, от 10 до 50 разных товаров в каждом). По каждому товару в заказе есть вес товара, объём товара, шт (сколько будет в заказе). Нужно определить сколько времени нужно будет потратить на сбор заказов исходя из статистики, которая была преобразована в "куб данных" по первой задаче.
Вопросы: 1 Это, возможно, банальные задачи, как они решаются наиболее эффективно сейчас? Какими инструментами кроме Excel (например, Питончик и какой-нибудь Pandas) это нормально было бы сделать?
2 Если Excel, то это PowerQuery, затем делать несколько таблиц, затем выбор значений по нескольким параметрам. Это было на форуме, правда в 2011-12 годах, может сейчас это эффективнее решается?
vlad000 написал: 3 млн. строк на мой взгляд даже для Power Pivot многовато..
Позвольте задать вопрос. А на основании какого опыта сделан подобный вывод? 64бит Power Pivot и с 30 миллионами строк справляется, было бы памяти достаточно. Сами по себе вопросы темы несколько странные. Скорее всего лучше плясать от того, как предполагается видеть результаты и их использовать. Вполне возможно, что лучшим решением будет и Qlik, предложенный Игорем. А может и Power BI Desktop. Он и мощь Python, включая Pandas, позволяет задействовать.
Буду смотреть Qlik Sense Desktop. Складская система SAP.
Цели же таковы: получить единичные нормы времени на подбор одного типа товара. Товары, соответственно разные по весу, объёму, количеству штук, зоне хранения. А затем по этим единичным нормам нужно считать будущие заказы - сколько времени должен занимать сбор заказа. Желательно с высокой степенью автоматизации.
Начну сегодня разбираться в Qlik Sense Desktop, но хорошо ли он подходит для этих целей (просто пока не разобрался ещё)? Может есть условно готовые решения для таких или подобных случаев?
Я такие задачи не решаю, но возможно как-то так можно сделать - первую задачу сделать отдельно, результат (время на каждую штуку) выгрузить в файл qvd. Для второй задачи загружаете этот qvd, затем список заказов - на выходе можно получить что угодно, если сделаете связь этих двух таблиц например по коду товара. Объёмы ограничены только системой - бывает памяти и по 30 гигов отъедает, когда в одном проекте одновременно обрабатывается много больших таблиц (у нас её 60 в облаке).
Андрей VG написал: Позвольте задать вопрос. А на основании какого опыта сделан подобный вывод? 64бит Power Pivot и с 30 миллионами строк справляется, было бы памяти достаточно.
При построения куба в PP до 1,5 млн строк файл Excel потолстел помнится до 250 мб.(правда там и столбцов было более 10). Работал стабильно, всю визуализацию отображал как положено. Здесь вопросов нет! Вопросы возникают при обновлении и построении новых ETL, (выбросы, зависания и чудеса) Хранителями выступали файлы .xlsx Насколько я вник в ситуацию ТС, куб должен быть обновляемым из некой БД.. то зачем его строить в Excel, при наличии сервера с данными. Я бы клонил к созданию представления данных на самом сервере и затем уже выгружал его в PP без лишних очисток по пути..
vlad000 написал: Я бы клонил к созданию представления данных на самом сервере
- вот это мы делаем сами ночью шедулером в Qlik так, как нам нужно (и всегда мы оперативно можем что-то подкорректировать) - получаем из xlsx/csv/баз/1С в структурированный файл/файлы то, что нужно уже для других наших задач, которые можно выполнять позже тоже шедулером или по запросу уже не нагружая выборками базы.