我听说“ETL工具”这个术语最近用了很多,并开始深入研究以了解它们。我找到了一个很好的Java开源ETL工具列表here,并开始阅读它们。
但这让我真的感到困惑。
这些工具中的大多数(CloverETL,Pentaho等)都是GUI工具。其中一些,如Smooks,是纯Java框架。我想这是有道理的:一些ETL用户可能是非技术性的和/或想要使用GUI工具来设置转换。其他用户将是想要利用这些工具的原始ETL功能的开发人员。
我的问题:这些GUI工具在纯Java框架上提供了什么好处(附加功能等),反之亦然?像CloverETL和Pentaho这样的“主要播放器”GUI工具 - 它们自称为GUI工具 - 也有Java API,我可以用(以编程方式)完成同样的事情吗?或者他们是纯粹的GUI工具?我无法在任何地方找到Java Docs。(
)答案 0 :(得分:1)
我会说不,使用非GUI工具进行ETL真的没有优势。
在大多数典型情况下,GUI方法对于ETL作业来说效率要高得多,因为这些工具应该为您提供一种快速执行 和的数据任务的方法,而无需编写自定义代码。这是因为ETL平台的哲学只不过是代码生成平台:画布上绘制的任务由工具引擎在机器代码中翻译(理想情况下,以最合适的方式),机器代码直接在引擎盖下执行,没有中间代理。较大的那些具有复杂的客户端 - 服务器架构,但基本思想保持不变。
隐藏此生成代码的深度,取决于平台。有些人,比如Pentaho或Datastage,确实让用户无法访问;其他如Talend(在类中可以轻松嵌入应用程序或直接执行的类中生成java代码)或SAS Data Integration Studio(生成.sas文件)使开发人员可以深入研究生成的代码。但它总是一个留给硬核开发人员的选项,而普通用户几乎不会进入代码来完成她的日常工作。