【发布时间】:2015-09-17 07:47:44
【问题描述】:
我有 4 个大 .tab 文件,其中一个为 6GB,其他为 10GB。 6GB 文件包含有关某个地区的动物的信息,其他 3 个文件包含与 6GB 文件中存在的每只动物相关的其他重要信息。
我需要编写一个程序,根据一些用户输入从这些大文件中生成小数据集。
我从 6GB 文件中逐行读取动物的数据,如果它们通过某些标准,它们将存储在 ArrayList 中,否则省略。
现在对于 ArrayList 中的每个动物,我需要一遍又一遍地检查其他 3 个文件,以便进一步过滤它们并最终生成所使用的小数据集。但截至目前,获取一个包含 1500 条动物记录的小型数据集大约需要 7 个小时的运行时间。罪魁祸首是,对于我选择到 ArrayList 中的每种动物,我需要在数据提取过程的不同步骤中多次查找其他 3 个文件
我已经为此用 Java 编写了代码。但是这个程序非常慢。我使用缓冲阅读器来访问这些文件。但我正在寻找可以在 Java 中使用的其他工具和技术,并制作这个高效且可用的系统。
我曾考虑在 SQL 或 NoSQL 数据库中推送数据,但在我采取措施提高性能之前,我需要专家的建议来指导我正确的方向。
提前致谢
【问题讨论】:
-
你真的应该去找一个数据库。
标签: java bufferedreader large-files data-extraction