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

问题描述 投票:0回答:1

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

我想知道这是否也可以用 ESB(Camel 或 Mule)来完成? ESB 还提供了哪些 DI 不提供的功能?

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

apache-camel mule pentaho esb data-integration
1个回答
6
投票

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 产品)
© www.soinside.com 2019 - 2024. All rights reserved.