我有一段代码(我没有编写)将数百万个 CSV 行读取到 Map,然后对其进行处理。
我到了我只是用完RAM的地步
我的选择是
重写代码,尝试流式传输数据,但是因为某些计算可能需要整个数据集(例如,可能需要数据集中的第一行和最后一行的计算)
编写一个实现
java.util.Map
但会将数据持久保存到数据库中的类只需重写代码并直接从数据库中插入/选择,但我宁愿先尝试#2
所以我突然想到了一个由数据库支持的 Map 的想法,所以在开始编写它之前,我想问一下这个问题是否有众所周知的模式/实现(甚至可能没有 Map)
现在,尽管我喜欢编写代码,但我不喜欢重新发明东西,我更喜欢重用开源代码。
我不太介意存储实现,SQL 或 NoSQL,但它需要允许 Map 自动持久化,并避免将其完全保存在内存中。
有这样一个已知的库/实现吗?这个问题熟悉吗?我是否以正确的方式攻击它?
更新:
根据评论,我将研究这些(较旧但几乎重复的)问题:
如果他们回答了我的问题并且仍然是最新的,则投票关闭这个
更新2:
- 这不是完全重复,我正在寻找数据库支持的持久性,其他问题更广泛(任何基于磁盘的实现)
- 重复并不总是一件坏事,请在投票结束之前阅读 Jeff Atwood 的这篇文章