数据集成软件和ESB有什么区别?

时间:2016-05-26 06:01:14

标签: dependency-injection apache-camel mule pentaho esb

我一直致力于一个项目,该项目从各种第三方数据源收集数据并将矿山收集到我们的数据存储(DI)中。我们一直在使用Pentaho。

我想知道这是否也可以用ESB(Camel或Mule)完成? 还有哪些其他功能可以帮助ESB提供哪些DI?

我已经阅读了很多关于ESB和DI的文章,但没有一篇能够解决这个问题。我还阅读了有关第三方数据源的mule数据连接器。

1 个答案:

答案 0 :(得分:4)

DI(数据集成不依赖注入')或ETL方法往往是长期运行批处理类型的作业,以接近将数据从系统A移动到系统B的解决方案.ESB或轻量级集成方法通常是将任务分解为更小的部分(数据块或每个数据项的单个事件),并允许其他系统订阅数据流 - 通常通过企业消息系统 - 而不必影响系统A ,系统B或现有代码项目。这也意味着项目计划中没有人类依赖性要求。如果系统C出现,它们不一定需要系统B团队的资源来访问数据流

在任何给定的环境中都有合适的用例。但是,根据我的经验(大数据/ MDM最佳实践倾向于同意)是,如果您有一个原始数据流,其他一些系统也希望在某些时候访问数据流。如果能够访问数据流而无需更改组织中的现有代码,系统或其他团队在您的用例中听起来很有用,那么预先设计并使用ESB方法是个好主意。这允许新兴趣的消费者进入,而不必重写现有系统使用的过程。 ESB /轻量级集成系统倾向于比DI / ETL工具更有效地实现该设计模式。

一些随意的想法:

  • ESB支持"一个不良记录问题"允许您将其路由到错误队列以让人类查看它然后重新发布
  • ETL / DI往往具有直线的快乐路径速度优势
  • ETL / DI在经过简单的点对点集成用例后开始变得复杂
  • 恕我直言:ESB擅长支持数据集,服务和数据模型的版本控制。
  • ETL / DI往往为非技术用户提供更成熟的用户界面来执行数据映射任务
  • ESB非常擅长支持运行时系统解耦。如果系统B关闭,数据就会排在队列中,直到它恢复为止。没有长时间运行的阻塞线程或不得不重新启动作业的风险
  • ESB的上升曲线略高一些
  • ETL / DI通常最终导致ESB(大多数供应商同时提供DI和ESB产品)