弹簧批量Vs ETL过程

SR *_*han 5 architecture etl spring-batch

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

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

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

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

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

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

请建议哪种方法好,为什么?

use*_*265 9

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

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

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


Sag*_*gar 5

由于我已经尝试了这两种技术,恕我直言,使用 pentaho ETL 会快得多,因为您只需要拖放步骤并配置输入输出和处理。对于 ETL,我相信它需要的培训比 Spring Batch 少。我自己是 Java 开发人员,我曾经使用过 pentaho 水壶(ETL 工具)来满足类似的需求,现在我正在为类似的任务和在水壶中花费 10 分钟的任务的 spring 批处理工作大约需要考虑到我在实施时对这两种技术都不熟悉这一事实,因此在春季批次中完成了几个小时。


Oha*_*adR 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批处理在很多方面类似于ETL(您对ETL的断言类似于读/处理/写入是合理的)我认为它通常用于BI场景中.实际上,如果你看一下Jasper站点,它就是它们完整的BI堆栈的一个组件,而且许多其他的ETL提供程序是相同的.我看到它在数据仓库场景中使用了很多,并且它在那里运行得很好.大量移动和数据转换是它闪耀的地方.我在哪里看到的问题是在尝试在两者之间应用复杂的业务逻辑时.我不想在这里开始任何宗教辩论,这只是我的经历.ETL工具就是这样的工具.它在某些方面几乎归结为打包与定制,这是一个我根本不想进入的辩论.但是,如果您有一个充满Java开发人员的公司,并且许多业务逻辑已经用Java编写用于其他应用程序样式(如Web或集成),那么将批处理应用程序样式保持在同一技术中是很有意义的.ETL工具在可用性方面已经走了很长的路,但它们仍然是相当大的复杂工具,学习有效地使用它们需要一些时间.我意识到学习Spring Batch的时间并不完全为零,但我认为它' 很容易同意让Java人员加快Java框架的速度比教他们使用工具更好,我们倾向于编写代码.成本问题通常也会出现,因为ETL通常不是免费的.我知道有一些开源实现,有些是Java,但我没有在大型生产环境中使用它们的经验,所以我无法发表评论.

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