Лучший способ работы с большим CSV-файлом для быстрой фильтрации, сортировки и извлечения (в памяти?) - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть устаревшая версия c csv с около 1 миллиона записей и размером 1 ГБ. В строке около 300 полей.

Некоторые поля являются денормализованными отношениями «один ко многим», например, для каждого заказа Category_1, Category_2, Category_3,...,Category_20 et c Однако количество полей категорий может быть не более 20 и будет пустым, если категорий меньше 20 или если было более 20 категорий, дополнительные категории были опущены. Значения полей могут быть как "DX001 - Dairy", "CX002 - Cosmetics" Теперь порядок категорий не фиксирован. поэтому DX001 может быть в любом из полей N категорий (Category_1, Category_2, Category_3, Category_N).

Для Amount есть другое поле в долларах. как $1,256.25

Теперь мне нужно сделать такие вещи, как поиск всех заказов, которые имеют категории с "DX001" или "CX002" с суммой> $ 1000, и сортировать их по сумме, а затем экспортировать данные только с этими записями в CSV, для предоставления пользователю через веб-интерфейс.

Какой технологический стек будет наиболее подходящим для решения с быстрой обработкой (несколько секунд, чтобы обработать запросы и сделать CSV доступным) с разумным Стоимость? Лично я работал в огромном масштабе и использовал эластичный поиск в качестве источника данных для проекта с терабайтами данных. Но я лично думаю, что это будет слишком дорого, а также будет излишним для этого варианта использования. Или мне нужно будет импортировать это в традиционную базу данных? Можно ли что-то сделать в памяти, используя для этого python? Я знаком с Python, но могу использовать любой другой язык, если есть решение. Был бы признателен за помощь.

PS: я посмотрел на pandas, но я не смог выяснить, как я буду запрашивать категории путем поиска в каждом из N полей для списка категорий. Так что, если вы знаете, как решить эту проблему в pandas, пожалуйста, дайте мне знать!

Спасибо!

...