Spring批量处理海量数据
Spring batch to process huge data
我的数据库中有大约 1000 万个 blob 格式的文件,我需要将它们转换并保存为 pdf 格式。每个文件大小大约在 0.5 - 10mb 之间,合并后的文件大小约为 20 TB。我正在尝试使用 spring 批处理来实现该功能。但是我的问题是,当我 运行 批处理时,服务器内存可以容纳那么多数据吗?我正在尝试使用基于块的处理和线程池任务执行器。请建议这种最好的方法是否可以 运行 在更短的时间内处理大量数据的工作
每个文件大小为 0.5 到 10 MB,您提到的方法非常适合分块。您可以通过以下方式获得更多控制权并监控处理过程。
- 根据文件 table.
中的线程池计数(基于您的系统资源)创建分区
- reader 的每个分区步骤将 select 一次只有 1 个文件。
- 您可以根据并行步骤数计算内存并作为 VM 参数给出。
- 根据总并行步骤的内存计算配置提交块。
请参考下面的示例代码。
我的数据库中有大约 1000 万个 blob 格式的文件,我需要将它们转换并保存为 pdf 格式。每个文件大小大约在 0.5 - 10mb 之间,合并后的文件大小约为 20 TB。我正在尝试使用 spring 批处理来实现该功能。但是我的问题是,当我 运行 批处理时,服务器内存可以容纳那么多数据吗?我正在尝试使用基于块的处理和线程池任务执行器。请建议这种最好的方法是否可以 运行 在更短的时间内处理大量数据的工作
每个文件大小为 0.5 到 10 MB,您提到的方法非常适合分块。您可以通过以下方式获得更多控制权并监控处理过程。
- 根据文件 table. 中的线程池计数(基于您的系统资源)创建分区
- reader 的每个分区步骤将 select 一次只有 1 个文件。
- 您可以根据并行步骤数计算内存并作为 VM 参数给出。
- 根据总并行步骤的内存计算配置提交块。
请参考下面的示例代码。