弹簧批量Vs ETL过程

时间:2014-04-09 12:05:06

标签: architecture spring-batch etl

我有一个产品,用户可以通过该产品创建信息,说明用户详细信息,员工详细信息等。此产品/ Web应用程序主要在Spring和hibernate中开发。

现在,当我将产品销售给公司时,他们正在寻找批量加载工具来加载说用户和公司。

在这种情况下,我可以选择Spring批次(从未使用春季批次但是听说过它)?因为我已经在我的应用程序中使用了Spring,所以我可以使用相同的编码和用于批量加载的业务逻辑实现。

或者我应该选择像Pentaho或informatica这样的ETL工具?在这种情况下,我需要复制我的编码&业务逻辑实现与Pentaho或informatica一起使用。如果我改变核心产品中的任何逻辑,那么我也必须在这里制作它。

哪种方法好,哪种方法最好?

我的想法是haing excel文件,其中包含用户和公司列表,Spring批处理或Pentaho Kettle将把它作为输入并处理数据并将其存储在DB中并告诉用户提交了多少条记录,获得了成功并且失败了。

请说明哪种方法好,为什么?

3 个答案:

答案 0 :(得分:9)

我在工作中使用Spring Batch而且我没有任何ETL工具的经验,所以我对此有偏见。但是,我认为你几乎回答了自己的问题。

你提到Spring Batch将允许你重用现有的业务逻辑(这对我来说已经足够了),并获得汇总统计信息(Spring默认具有此功能)。我也认为,与专有ETL软件开发人员相比,查找,聘用和培训Java开发人员要容易得多。

唯一的缺点是您可能需要扩展框架才能发挥作用。例如,如果您正在接收JSON,则他们目前不支持JSON。

答案 1 :(得分:5)

在这里粘贴可能对其他人有帮助的好链接:

http://www.coderanch.com/t/579152/Spring/Spring-Batch-ETL

  

Spring Batch不会为您解析。你需要收到   文件,流程,验证等。查看mule ESB也是如此   某些文件接收时自动触发   文件夹/目录。

     

另外,对于ETL,请看Talend,我相信它是开源的,可以   转换各种文件。

http://forum.spring.io/forum/spring-projects/batch/62803-batch-vs-etl

  

这是一个非常大的问题,我已经很长很长时间了   以前的讨论,并没有一个硬性规则。一世   不要声称自己是ETL专家,但我已经熟悉了一些   ETL领域的大枪,如Datastage等,虽然很容易   同意Java Batch处理在很多方面类似于ETL   (你的ETL断言类似于读/处理/写入是   合理的)我认为它通常用于BI场景。事实上,如果你   看看Jasper站点,它是他们完整BI堆栈的一个组件,并且   许多其他ETL提供商是相同的。我看到它在数据中使用了很多   仓储方案,它在那里运作良好。大量移动和   数据转换是它闪耀的地方。我见过的问题是   当试图在两者之间应用复杂的业务逻辑时。我不想要   在这里开始任何形式的宗教辩论,这只是我的   经验。 ETL工具就是这样的工具。它几乎归结为   在某些方面打包和自定义,这是一个我不想得到的辩论   进入。但是,如果您有一个充满Java开发人员的公司,   而且很多业务逻辑已经用Java编写   应用程序风格,如Web或集成,它很有意义   使批处理应用程序样式保持相同的技术。 ETL工具   在可用性方面取得了很大进展,但它们仍然公平   大而复杂的工具,并学会有效地使用它们   一段时间我意识到学习Spring Batch的时间不是   完全为零,但我认为很容易同意得到一个   Java人员在Java框架上的速度将会更好   教他们使用工具,我们倾向于编码。成本问题   经常出现,因为ETL通常不是免费的。我知道那里   是一些开源实现,有些是Java,但我   没有在大型生产中使用它们的经验   环境,所以我无法发表评论。

     

这就是我愿意参加一个论坛帖子。我认为ETL   肯定是工具箱中的另一个工具,在某些情况下   可能与自定义批处理解决方案重叠。决定使用哪个   取决于你的特定情况的很多因素。

答案 2 :(得分:4)

当我尝试这两种技术时,使用pentaho ETL的恕我直言会更快,因为你只需要拖放步骤并配置你的输入输出和处理。对于ETL我相信它需要的训练比春批。我自己是java开发人员,我曾经使用pentaho kettle(ETL工具)来处理类似的需求,现在我正在为春天批处理类似的任务和在水壶里工作10分钟的任务考虑到我在实施这两种技术时都是新手,这需要花费大量的时间来完成春季批次。