首页 > 解决方案 > 使用大型 csv 文件进行快速过滤、排序和提取的最佳方式(在内存中?)

问题描述

我有一个带有大约 100 万条记录和 1gb 大小的旧版静态 csv。每行大约有 300 个字段。

一些字段是非规范化的一对多关系,例如每个订单Category_1, Category_2, Category_3,...,Category_20等但是类别字段的数量最多可以是 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 可用)且成本合理的解决方案?就我个人而言,我从事过大规模的工作,并使用 elasticsearch 作为我的数据源,用于一个包含 TB 级数据的项目。但我个人认为这对于这个用例来说成本太高,而且太过分了。还是我需要将其导入传统数据库?可以为此使用python在内存中完成某些事情吗?因为我熟悉 Python,但如果有可用的解决方案,也可以采用任何其他语言。将不胜感激一些帮助。

PS:我查看了 pandas,但我无法弄清楚如何通过在 N 个字段中的每个字段中搜索类别列表来查询类别。所以如果你知道如何在熊猫中解决这个问题,请告诉我!

谢谢!

标签: pythonpandascsvelasticsearchin-memory-database

解决方案


推荐阅读