埋め込み可能な Java ETL、つまり Java コードから呼び出すことができる Extract Transform Load エンジンを探しています。
適切なものを見つけるのは驚くほど難しいと思います。
私は主に、区切りテキスト ファイルをデータベース テーブルにロードすることを検討していますが、途中でいくつかの小さな変換を行います。
以下の機能が欲しいです。
- 単純なマッピングを外部から指定する機能。たとえば、テキスト列 5 からデータベース列 foo への指定、xml マッピング ファイルの指定
- データベース ノードに javax.sql.Datasource を与える機能
javax.sql.Datasource
CloverETL ではマッピングを XML で指定できますが、データベース接続は JNDI 名か、 driverClass 、url、dbusername、パスワードなどを指定するプロパティ ファイルのいずれかである必要があります。特にこれをいくつかの環境(開発、テスト、本番)で動作させたい場合は、堅牢ではありません。
KETL は、「現在、KETL™ のドキュメントを完全に見直しているところです。このため、インストール ガイドのみが更新されました。」と語っています。正直ですが、役に立ちません。
Octopus は現在、「http://www.together.at/prod/database/tdt」であり、「構築中」です。
Pentahoは、データソースを使用するのではなく、CloverETL と同じ「specify driverClass」スタイルを使用しているようですが、Java コードからエンジンを呼び出すための Pentaho のドキュメントは見つけるのが難しいだけです。
基本的に、私はこの疑似コードを実行できるようにしたいと思っています:
extractTransformLoad(
getInputFile( "input.csv" ) ,
getXMLMapping( "myMappingFile.xml") ,
new DatabaseWriter( getDatasource() );
助言がありますか?