tpd*_*pdi 23 java etl embeddable
我正在寻找一个可嵌入的Java ETL,即可以从Java代码调用的Extract Transform Load引擎.
我发现很难找到合适的产品.
我主要看的是将分隔的文本文件加载到数据库表中,并在此过程中进行一些小的转换.
我想要以下功能:
CloverETL允许在XML中指定映射,但数据库连接必须是JNDI名称或指定driverClass,url,dbusername,password等的属性文件.因为我已经javax.sql.Datasource
通过我的依赖注入框架设置了,所以属性文件看起来很痛苦,不健壮的,特别是如果我想在多个环境(dev,test,prod)中工作.
KETL告诉我"我们目前正在全面检修KETL™的文档.因此,只有安装指南已经更新." 诚实,但没有帮助.
八达通现在是"http://www.together.at/prod/database/tdt",正在"正在建设中".
Pentaho 似乎使用与CloverETL相同的"指定driverClass"样式,而不是使用数据源,但Pentaho的文档用于从java代码调用它们的引擎很难找到.
基本上我真的很想能够做这个伪代码:
extractTransformLoad(
getInputFile( "input.csv" ) ,
getXMLMapping( "myMappingFile.xml") ,
new DatabaseWriter( getDatasource() );
Run Code Online (Sandbox Code Playgroud)
有什么建议?
ejb*_*boy 15
披露:我是Scriptella ETL的作者,但我相信这个工具可能对你的情况有用.
它是一个轻量级的开源ETL,与Java进行单线集成.它还支持Spring Framework,并附带内置的 CSV,文本,XML,Excel和其他数据源驱动程序.
<!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>
Run Code Online (Sandbox Code Playgroud)
// Execute etl.xml file
EtlExecutor.newExecutor(new File("etl.xml")).execute();
Run Code Online (Sandbox Code Playgroud)
scriptella [file_name]
Run Code Online (Sandbox Code Playgroud)
使用"spring"
驱动程序和bean的名称来引用数据源.例:
<connection id="spring" driver="spring" url="datasourceBeanName" />
Run Code Online (Sandbox Code Playgroud)添加EtlExecutorBean
到应用程序上下文以执行作业:
<bean id="createDb" class="scriptella.driver.spring.EtlExecutorBean">
<property name="configLocation" value="create-db.etl.xml" />
<property name="progressIndicator"><ref local="progress" /></property>
<property name="autostart" value="true" /> <!-- Etl will be run during app context initialization -->
</bean>
Run Code Online (Sandbox Code Playgroud)有关其他详细信息,请参阅Spring示例.