我必须运行春季批处理作业。我必须阅读mongo的大约200万份文档。文档有15个固定字段。它们包含字符串,日期和_id。
我的问题是,处理此问题的最佳方法是什么?只是一步一步完成还是一步步扩展?最佳做法是什么?将200万条记录加载到内存中不是很糟糕吗?我知道通过Apache Spark加载记录时,它会流式传输数据,这很好。但是我没有使用Apache Spark。
答案 0 :(得分:1)
最好的方法是使用面向块的步骤。请参阅文档的chunk-oriented processing部分。
在内存中加载200万条记录不是一个好主意(即使您可以通过向JVM添加更多内存来做到这一点),因为您将有一个事务来处理这200万条记录。如果您的工作崩溃了,比如说在处理了100万条记录后,前半部分的处理将丢失。这个想法是对文档进行分块处理,并为每个块提交一个事务。这种进动是:
希望这会有所帮助。