用Java构建大批量数据处理工具 - java

Closed. This question needs to be more focused。它当前不接受答案。

想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。

3年前关闭。

Improve this question

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

简化的典型用例:

与数据库建立连接(源)
读取100万条记录并连接两个表
与另一个数据库(目标)建立连接
更新/写入目标数据库中的那100万条记录

我的选择:

使用普通的JDBC。使用JDBC构建更高级别的API,以完成与数据库之间的数据连接,读取和写入的任务。
使用诸如Spring或Hibernate之类的框架。我从未使用过这些框架。我认为Hibernate是出于ORM的目的,但我不是ORM的一种要求。 Spring可能有一些批处理功能,但我想知道学习这种方法实际上是否比我在选项1中自己做的少。
还有其他选择/框架吗?

以上哪一个最适合我?

注意事项

我需要选择一个可以提高性能的选项。我不会介意复杂性或为了提高性能而失去灵活性。
我还不知道任何像Spring这样的框架。我只知道核心Java。

最近,我做了很多谷歌搜索,但是如果您能给我一些“第一手”的意见,我将不胜感激。

java大神给出的解决方案

根据您的使用情况,我建议Spring Batch。这是很容易学习和实现的。从高层次上讲,它包含以下3个重要组成部分。

ItemReader:此组件用于从源读取批处理数据。您已经准备好使用JDBCITeamReader,HibernateItemReader等实现。
项目处理器:此组件用于编写JAVA代码,如果需要,它将进行一些处理。如果不需要处理,则可以跳过。
Item Writer:此组件用于批量写入目标数据。即使对于此组件,您也可以使用类似于ItemReader的实现。

用Java封装对象? - java

private中的Java提供类级别的封装。可以封装一个对象吗?还是这样做徒劳?例如,如果我们将一个类定义为 public class Person { private String ssn; private ArrayList<Person> friends = new ArrayList<Person>(); public voi…

使用TDD和Java开发的开源项目 - java

Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以使为on-topic。 5年前关闭。 Improve this question 我正在寻找一个项目:1)包括测试在内的可用资源。2)已/已严格使用TDD开发。3)用Java和JUnit…

Tomcat找不到直接放置在classes文件夹下的类 - java

我有以下JSP:<%@ page import="foo.*" %> <html> <body> The page count is: <%=Counter.getCount()%> </body> </html> 我在包Counter中有一个foo类,该类存储在: …

JTable所有列右对齐 - java

有没有一种方法可以同时对齐jtable中的所有列?使用这个:DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer(); rightRenderer.setHorizontalAlignment( JLabel.RIGHT ); JTAB_TABLE.getColumnMod…

Swing-典型桌面应用程序中的并发 - java

这可能是一个广泛的问题,但我想知道单用户桌面应用程序通常在何处使用并发。您如何发现理想情况下(在设计阶段)并发问题?附注:从操作系统理论上来说,并发问题通常发生在无法共享资源(例如打印机)的情况下。不过,我仍然对在编程级别上可能发生的情况感到迷惑。 java大神给出的解决方案 Event Dispatch thread与其他逻辑之间的Swing中可能存在线程…