2017-10-10 209 views
1

目前,我们正在使用Apache-CamelETL,那就是,我们每天服用/来自不同数据库的每周/每月的出口,执行所需的操作,然后某处公布结果供其他数据库摄取。Apache Camel和Apache Airflow是否重叠?它们是如何比较的?

最近我看到一个Apache-Airflow谈话,在我看来,它可以做的工作,骆驼是只是做容易。更容易我的意思是它看起来会更自我记录,因此更容易维护。我对么?而为什么两者之间没有比较,就像Camel and Mule之间有比较?

回答

3

这取决于您想要解决的问题的类型。 Apache Camel是一个企业集成框架,它实现了众所周知的公认的企业集成模式,为类型well known problems提供特定的解决方案。

Apache的气流并没有实现这些集成模式,因此将在解决这些特定类型的问题不太有用。

我与骆驼的经验,经常被误作为一个通用的平台,以解决非企业集成问题,从而导致处理不必要的开销和框架的限制。

使用您的ETL问题为例,我认为Apache的骆驼是不必要的,除非你正在做某种形式的Message Routing或将担保/受益于使用的集成解决方案,如骆驼数据Message Transformation。 Apache Camel为这些众所周知的集成问题提供的解决方案是将Apache Camel用于另一种工具或手动完成的真正益处。

TLDR;为了回答你的问题,Apache Camel是解决特定类型集成问题的企业集成框架,而Apache Airflow则不是。这可能就是为什么两者之间没有比较 - 从某种意义上说,它们是苹果和橘子。

虽然你可能能够做一些在这两个同样的事情,Apache的骆驼也会有复杂的集成解决方案开箱即用的气流不会。

+0

当你烘烤蛋糕时,苹果和橘子是完全不同的东西,但是当你只想让健康的东西粘在你的午餐盒中时,它们几乎可以互换。 ETL可以同时使用骆驼和Airflow,我知道骆驼有许多功能不适用于我们的任务,并且如果我们使用更合适的工具,我们遇到的一些问题可能会被遗漏。我试图把这个答案。 – Ivana

+0

我个人的观点是要避免像骆驼这样的瘟疫,除非你想要在四分之一的时间内完成简单的事情,并且没有它时可以忍受痛苦(JMS,SFTP,JDBC,HTTP,SOAP,文件处理等)。只有2年的企业骆驼使用价值0.02美元。如果我有选择,我会选择任何其他图书馆(甚至是手卷),然后再使用骆驼作为上述项目。如果你还想要强大的单元测试覆盖率,避免避免避免,除非你愿意花费一生的时间来搞清楚如何单元测试'路线'和通过骆驼怪癖。 –

+0

不够公平,您认为最简单的文件处理方法是作为ETL的一部分,它可以很好地与java协同工作,并且与平台无关吗? – Ivana

1

Apache Camel和Apache Airflow是为不同目的而编写的。前者作为企业集成框架,后者作为以编程方式编写,安排和监控工作流程的平台,这就是为什么它们并不总是相互比较的原因。

Apache Camel 可以将用于ETL:将ETL视为集成操作数据库和数据仓库的过程,并将ETL数据处理过程中的每一步都视为一条消息。

难道是容易执行,我们现在正在做的任务,如果我们换了风量?那么,一般来说,一个框架适合某个特定公司的需求取决于现场设置的方式。在我们的例子中,我们选择了Java,我们希望我们的进程在Windows机器和Linux上运行。比较然后变成:

  • 骆驼的主要优点是,我们已经在使用它,它是Java,甚至还有一个Spring引导自动配置。 主要的缺点是很难保持:理解什么时候和为什么发生,很难。这不是Camel作为企业集成框架所具有的功能而直接导致的,而是因为它不是为简化工作流程而量身定制的。
  • 气流是专门针对调度相互关联的作业编写的,它甚至有一个GUI来简化这项任务。 对我们来说,它需要额外的安装,它可能不适用于我们的开箱即用的Java witten作业(我知道它可能来自python的call java,但这只会增加更多的复杂性)。

为了我的需要,我要去探索其他选择,也许只是让事情保持原样。