春季启动批处理-过滤大数据的最佳方法



我正在编写一个spring-boot批处理应用程序,我对处理大数据的最佳方式感到困惑。我有一个包含数百万用户ID的输入文件,我需要从另一个表中删除这些ID。我不认为查询每个用户ID是个好主意,但目前我没有不同的解决方案。不幸的是,这些用户ID非常随机,无法排序。有人能给我建议最好的方法吗?数据库是Oracle。

您可以将文件加载到临时表中,然后删除不在其中的ID,类似于:

DELETE FROM ORIGINAL_TABLE WHERE ID NOT IN (SELECT ID FROM TEMPORARY_TABLE).

这将比查询文件中的每个ID以检查其存在性并在必要时删除它执行得更好。

如果你真的需要使用SpringBatch,你可以为此创建一个两步作业:第一步是面向区块的,并将文件加载到临时表中,第二步是执行删除查询的简单tasklet。我将添加第三步,移除临时桌子并清理东西。

最新更新