spring 批量Vs ETL过程[关闭]

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

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

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

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

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

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

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

回答(3)

2 years ago

由于我已经尝试了这两种技术,使用pentaho ETL的恕我直言将会更快,因为您只需要拖放步骤并配置输入输出和处理 . 对于ETL我相信它需要的培训少于 spring 批次 . 我自己是java开发人员,我曾经使用过pentaho水壶(ETL工具)用于类似的要求,现在我正在为类似的任务进行 spring 批处理,并且在水壶中花费10分钟的任务需要大约考虑到我在实施这两项技术时都是新手这一事实,我在 Spring 季批量做了几个小时 .

2 years ago

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

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

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

2 years ago

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

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肯定是工具箱中的另一个工具,在某些情况下可能与自定义批处理解决方案重叠 . 决定使用哪个取决于关于你的特定场景的很多因素 .