首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java构建大容量批量数据处理工具

用Java构建大容量批量数据处理工具
EN

Stack Overflow用户
提问于 2014-12-09 06:36:48
回答 3查看 4.7K关注 0票数 2

我正在尝试使用Java构建一个ETL工具。ETL工具用于对大量数据(包括关系数据和其他类型的数据)进行批处理、写入、更新操作。我发现很难选择正确的框架/工具来完成这项任务。

一个简化的典型用例:

  1. 与数据库(源)建立连接
  2. 读取连接两个表的100万条记录
  3. 建立与另一个数据库的连接(目标)
  4. 在目标数据库中更新/写入这100万条记录

我的选择:

  1. 使用普通JDBC。使用JDBC构建一个更高级别的API,以完成数据库之间的数据连接、读取和写入任务。
  2. 使用一些框架,比如Spring或Hibernate。我从未使用过这些框架。我认为Hibernate是为了ORM目的,但我的需求不是ORM。Spring可能有一些批量处理的东西,但是我想知道学习的努力是否真的比我自己做的要少,就像我的选择1一样。
  3. 还有其他选择/框架吗?

上面哪一个最适合我?

Considerations

  1. 我需要选择一个选项,可以给我高水平的表现。我不会介意复杂性或失去灵活性,以支持更多的性能。
  2. 我还不知道像Spring这样的框架,我只知道核心Java。

最近,我做了很多谷歌,但如果你能提供一些“第一手”的意见,我会很感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-09 06:47:15

基于您的使用场景,我建议使用弹簧批。它很容易学习和实现。在高层次上,它包含以下三个重要的组件。

  1. ItemReader:该组件使用从源读取的批处理数据。您已经准备好使用JDBCITeamReader、HibernateItemReader等实现。
  2. 项处理器:该组件用于编写代码,如果需要,该代码将进行一些处理。如果不需要处理,则可以跳过。
  3. Item Writer:此组件用于将数据写入到批处理中。即使对于这个组件,您也可以使用类似于ItemReader的实现。
票数 4
EN

Stack Overflow用户

发布于 2014-12-14 19:32:47

感谢与Spring批处理相关的所有更新。然而,经过一些研究,我决定使用EasyBatch。来自https://github.com/j-easy/easy-batch

Easy是一个旨在用Java简化批处理的框架。它的主要目标是处理诸如读取、过滤、解析和验证输入数据等繁琐任务的样板代码,并让您集中精力处理批处理业务逻辑。

票数 3
EN

Stack Overflow用户

发布于 2016-08-08 06:32:00

试试数据管道,这是一种轻量级的Java ETL引擎。它简单易用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27372819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档