3

我正在从数据库进行典型的读取,并且我将处理并写入具有数百万(> 1000 万)条记录的数据集上的文件步骤。

从设计或架构的角度来看,有什么需要牢记的吗?

还有需要牢记的任何 Java-Batch 特定的编码实践吗?(除了一般的 java 最佳实践)

我在 Websphere liberty 上使用 IBM 的 JSR352 实现。

4

1 回答 1

3
  1. 不要重复读取。如果您确实确保一切都在内存中。想想一级缓存。
  2. 确保您没有 N+1 选择。
  3. 快速网络访问对性能至关重要——想想 10G 网络
  4. 引入并行性。并行化从数据库读取,不要并行化文件访问,除非您知道文件系统上有超过 1 个可以并行工作的磁盘。
  5. 您的数据模型是关系型的吗?是的,请考虑休眠,不考虑 Jdbc 模板。
  6. 大块从数据库中读取。为此分配足够的内存。
  7. 如果您在写入文件之前对数据进行了后处理。并行再做一次。
  8. 如果您有来自数据库的只读操作。你不需要可恢复性。操作完成或失败。如果您不需要为工作选举保留中间状态,这将为您带来额外的性能提升。
于 2016-07-18T11:46:33.290 回答