假设你有一个小项目,表面上看起来很适合使用 Talend 等 ETL 工具。但进一步假设,你从未使用过 Talend,并且你不信任通常的“可视化编程”工具,而更愿意用适当的语言和支持库以传统的方式编写所有内容(在漂亮的 IDE 上编写文本!)。那么,有哪些语言模式和支持库可以帮助你远离 ETL 工具的诱惑和陷阱?
这取决于可交付成果是处理器还是输出本身。如果你只需要提供输出,你不需要维护代码。如果需要维护代码,那么维护工作将由你或其他人负责?如果需要其他人来维护,我会使用Java或给他们Talend。如果它是一次性的代码,我会使用编写起来更容易或更有趣的语言。如果您需要维护它且处理很复杂,则会使用Scala。它具有以下功能: 一些库,用于与数据库交互 XML文本 分析器组合器 在其集合包中拥有有趣的特性(map,filter,groupBy,partition等) 当然还可以使用任何现有的Java库。
我曾经认为“可视化编程”是给那些不会编程的人使用的。然而在一个项目中接触到Talend之后,我意识到这种工具正好适合从A点移动数据到B点并在此过程中进行转换的工作。它是基于组件的软件设计,虽有更加学术的标签。我仍然认为自己是一位不错的程序员,只需要一个文本编辑器和一个shell提示符就能完成任何事情。但我也成为了Talend的忠实粉丝。完全披露:我现在在这家公司工作 :-)