问题 直接Java / Groovy与ETL工具(Talend / etc) - 您将使用哪些库?


假设您有一个小项目,表面看起来像是Talend之类的ETL工具的良好匹配。

但进一步假设,你从未使用Talend,而且,你不相信“视觉编程”工具,而是宁愿用老式的方式编写所有东西(在一个漂亮的IDE上的文本!),并在适当的语言和支持的帮助下库。

有哪些语言模式和支持库可以帮助您远离ETL工具诱惑/陷阱?


8338
2018-03-12 01:07


起源

ETL:提取,转换,加载。 en.wikipedia.org/wiki/Etl - Thilo
当我尝试做出这个决定时,我发现此链接很有用: 金博尔大学:重新审视ETL的子系统 - Bradford


答案:


这取决于可交付物是处理器还是输出本身。如果您只需要提供输出,则无需维护代码。如果代码需要维护,那么你会维护它还是其他人?

如果有人需要维护我会使用Java或给他们Talend。

如果它是一次性代码,我会使用编程更容易或更有趣的代码。

如果你需要维护它并且处理很复杂,我会使用Scala。它有:

  • 一些图书馆 与数据库交互
  • xml文字
  • 解析器组合器
  • 它的集合包中有趣的功能(map,filter,groupBy,partition,...)
  • 当然还有任何其他现有的Java库。

5
2018-03-12 14:52



我检查了Talend生成的代码......你确定它可以在创建后维护吗? - yura
@yura,我只是简单地看了看 拓蓝 并没有亲自使用它。当我的意思是可以维护Talend定义和配置(不一定是生成的代码)。 - huynhjl
好的,我只是想知道您的观点是否可以将视觉语言(如Talend或Pentaho)用于需要长期支持和维护的复杂ETL规则。 - yura


我曾经认为“视觉编程”适合那些无法编程的人。然后我在一个项目中接触到Talend,我意识到这种类型的工具完全适合这项工作,当涉及将数据从A移动到B,并在此过程中对其进行转换。它是面向组件的软件设计,由更具学术性的标签。

我仍然认为自己是一个体面的程序员,可以做任何事情,然后是一些文本编辑器和shell提示符。但我也成了Talend的忠实粉丝。

完全披露:我现在为公司工作:-)


4
2017-09-09 14:03





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


4
2018-06-08 11:10





我认为这与Rails启发的框架非常匹配,例如Grails on Groovy或Lift on Scala。


2
2018-03-12 04:32





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


0
2018-03-12 01:44