直接使用Java/Groovy还是ETL工具(如Talend等)- 你会使用哪些库?

11
假设你有一个小项目,表面上看起来很适合使用 Talend 等 ETL 工具。但进一步假设,你从未使用过 Talend,并且你不信任通常的“可视化编程”工具,而更愿意用适当的语言和支持库以传统的方式编写所有内容(在漂亮的 IDE 上编写文本!)。那么,有哪些语言模式和支持库可以帮助你远离 ETL 工具的诱惑和陷阱?

1
ETL:抽取、转换、加载。http://zh.wikipedia.org/wiki/ETL - Thilo
1
当我试图做出决定时,我发现这个链接很有帮助:Kimball University: The Subsystems of ETL Revisited - Bradford
5个回答

5
这取决于可交付成果是处理器还是输出本身。如果你只需要提供输出,你不需要维护代码。如果需要维护代码,那么维护工作将由你或其他人负责?如果需要其他人来维护,我会使用Java或给他们Talend。如果它是一次性的代码,我会使用编写起来更容易或更有趣的语言。如果您需要维护它且处理很复杂,则会使用Scala。它具有以下功能:
  • 一些库,用于与数据库交互
  • XML文本
  • 分析器组合器
  • 在其集合包中拥有有趣的特性(map,filter,groupBy,partition等)
  • 当然还可以使用任何现有的Java库。

我已经检查了 Talend 生成的代码... 你确定它在创建后可以维护吗? - yura
@yura,我只是简单地看了一下Talend,并没有亲自使用过。当我说Talend的定义和配置可以被维护时(不一定是生成的代码)。 - huynhjl
好的,我只是想知道您的意见,是否可以使用可视化语言(如Talend或Pentaho)来处理需要长期支持和维护的复杂ETL规则。 - yura

4
我曾经认为“可视化编程”是给那些不会编程的人使用的。然而在一个项目中接触到Talend之后,我意识到这种工具正好适合从A点移动数据到B点并在此过程中进行转换的工作。它是基于组件的软件设计,虽有更加学术的标签。
我仍然认为自己是一位不错的程序员,只需要一个文本编辑器和一个shell提示符就能完成任何事情。但我也成为了Talend的忠实粉丝。
完全披露:我现在在这家公司工作 :-)

4

查看 DataExpress。这是一个基于Scala的跨数据库ETL工具包。


2
我认为这非常适合基于Rails的框架,例如Groovy上的Grails或Scala上的Lift。

0

根据数据库模式的大小,您可以在Hibernate中快速映射所有内容,并仅使用生成的对象模型来完成工作(取决于您需要ETL工具的目的)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接