我正在寻找一个可嵌入的Java,即可以从Java代码中调用的提取转换加载引擎。
我发现很难找到合适的人选。
我主要研究如何将分隔的文本文件加载到数据库表中,并在此过程中进行一些小的转换。
我想要下列功能:
CloverETL允许在XML中指定映射,但是数据库连接必须是JNDI名称,或者是指定driverClass、url、dbusername、password等的属性文件。由于依赖注入框架已经设置了javax.sql.Datasource,所以属性文件似乎痛苦且不健壮,特别是如果我希望它在几种环境(dev、test、prod)中工作。
凯特尔告诉我:“我们目前正在彻底修改KETL™的文档。正因为如此,只有安装指南已经更新。”诚实但没有帮助。
章鱼现在是"http://www.together.at/prod/database/tdt"“,它正在建造中。
Pentaho似乎使用了与CloverETL相同的“指定CloverETL”风格,而不是使用数据源,但是Pentaho关于从java代码调用引擎的文档很难找到。
基本上,我非常希望能够完成这个伪代码:
extractTransformLoad(
getInputFile( "input.csv" ) ,
getXMLMapping( "myMappingFile.xml") ,
new DatabaseWriter( getDatasource() );有什么建议吗?
发布于 2012-11-07 14:16:24
披露:我是Scriptella ETL的作者,但我相信这个工具可能对你的情况有用。
它是一个轻量级的开放源码ETL,它与Java进行了一条龙集成。它还为CSV、文本、XML、支持Spring框架和其他数据源提供了内置司机。
将CSV文件导入表的示例:
<!DOCTYPE etl SYSTEM "http://scriptella.org/dtd/etl.dtd">
<etl>
<connection id="in" driver="csv" url="data.csv" />
<connection id="out" driver="oracle" url="jdbc:oracle:thin:@localhost:1521:ORCL"
classpath="ojdbc14.jar" user="scott" password="tiger" />
<!-- Copy all CSV rows to a database table -->
<query connection-id="in">
<!-- Empty query means select all columns -->
<script connection-id="out">
INSERT INTO Table_Name VALUES (?id,?priority, ?summary, ?status)
</script>
</query>
</etl>从Java运行:
// Execute etl.xml file
EtlExecutor.newExecutor(new File("etl.xml")).execute();从命令行运行:
scriptella [file_name]与Spring的集成:
"spring"驱动程序和bean的名称引用数据源。示例:EtlExecutorBean添加到应用程序上下文以执行作业:有关更多详细信息,请参见弹簧实例。
发布于 2010-11-24 17:01:39
你认识塔伦德吗?
它是一个基于Eclipse ()的工具,但是您可以通过编写自己的代码或将作业导出到Java类来直接在Java中使用它。
发布于 2010-11-23 02:53:35
这里是所有基于java的开放源码ETL库的列表。我看你已经对其中的几个进行了评估,但还有更多。而且,这似乎是对https://stackoverflow.com/questions/272517/please-recommend-a-powerful-java-based-etl-framework的重复
https://stackoverflow.com/questions/4251336
复制相似问题