2017-10-10 206 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,但這隻會增加更多的複雜性)。

爲了我的需要,我要去探索其他選擇,也許只是讓事情保持原樣。