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

use*_*567 1 dependency-injection esb pentaho apache-camel mule

我一直在从事一个项目,该项目从各种第三方数据源收集数据并将数据挖掘到我们的数据存储 (DI) 中。为此,我们一直在使用 Pentaho。

我想知道这是否也可以用 ESB(骆驼或骡子)来完成?ESB 带来了哪些 DI 没有提供的其他特性?

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

Mat*_*ich 5

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

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

一些随意的想法:

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