Java ETL: schwer, einen geeigneten zu finden
Ich bin auf der Suche nach einem einbettbaren Java ETL, d.h., ein Extract Transform Load engine, die aufgerufen werden können, die aus Java-code.
Mir fällt es überraschend schwer zu finden, ein passender.
Ich bin hauptsächlich auf der Suche zu be-getrennte text-Dateien in Datenbank-Tabellen, mit einigen geringfügigen Transformationen auf dem Weg.
Möchte ich die folgenden Besonderheiten:
- die Fähigkeit zu geben, die einfache mappings extern, e.g -, text-Spalte 5-Spalte in der Datenbank foo, angegebenen xml-mapping-Datei
- die Möglichkeit zu geben, die die Datenbank-Knoten wird ein javax.sql.Datasource
CloverETL ermöglicht mapping werden in XML spezifiziert, aber Datenbank-verbindungen müssen entweder JNDI-Namen oder eine properties-Datei angeben treiberklasse, die url dbusername, Passwort, etc. Da ich schon javax.sql.Datasource
s durch meine dependency injection-framework, properties-Dateien scheinen schmerzhaften und nicht-robuste, besonders wenn ich will, dass das arbeiten in verschiedenen Umgebungen (dev, test, prod).
KETL sagt mir, dass "Wir sind derzeit in den Prozess der komplette überholung unserer Dokumentation für KETL™. Weil dieses, nur die Installations-Anleitung wurde aktualisiert." Ehrlich, aber nicht hilfreich.
Octopus ist jetzt "http://www.together.at/prod/database/tdt", die ist "under construction".
Pentaho scheint die gleichen "angeben treiberklasse" - Stil, die CloverETL tut, sondern vielmehr, dass die Verwendung einer datasource, aber Pentaho Sie in der Dokumentation für den Aufruf Ihrer engine von java-code ist nur schwer zu finden.
Grundsätzlich würde ich wirklich gerne in der Lage sein, dies zu tun, pseudo-code:
extractTransformLoad(
getInputFile( "input.csv" ) ,
getXMLMapping( "myMappingFile.xml") ,
new DatabaseWriter( getDatasource() );
Irgendwelche Vorschläge?
InformationsquelleAutor der Frage tpdi | 2010-11-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Offenlegung: ich bin Autor von Scriptella ETLaber ich glaube, das tool könnte nützlich sein, für Ihren Fall.
Es ist ein leichtes open-source-ETL-mit einem one-liner integration mit Java. Es auch unterstützt das Spring-Framework und kommt mit built-in-Treiber für CSV -, text -, XML -, Excel-und anderen Daten-Quellen.
Beispiel für den Import einer CSV Datei in eine Tabelle:
Ausführen von Java:
Läuft von der Kommandozeile:
Integration mit Spring:
Verwenden
"spring"
Treiber und den Namen der bean-Referenzen-Daten-Quellen. Beispiel:Hinzufügen
EtlExecutorBean
auf den Anwendungskontext, um den job auszuführen:Weitere details finden Sie in der Frühling Beispiel.
InformationsquelleAutor der Antwort ejboy
Wissen Sie,Talend?
Es ist ein Werkzeug basiert auf Eclipse (Talend Open Studio), aber Sie können es verwenden, direkt in Java durch das schreiben Ihrer eigenen code oder durch den Export von Arbeitsplätzen zu Java-Klassen.
InformationsquelleAutor der Antwort Loïc Guillois
Hier ist eine Liste mit allen java-basierte open-source-ETL-Bibliotheken. Ich sehe, Sie haben beurteilt, einige von Ihnen schon, aber es gibt mehr. Auch dies scheint ein Duplikat zu sein von https://stackoverflow.com/questions/272517/please-recommend-a-powerful-java-based-etl-framework
InformationsquelleAutor der Antwort Aravind R. Yarram
CloverETL Engine ist leicht integrierbar sowie erweiterbar ist, so dass Sie können schreiben Sie Ihre eigene Verbindung und stecken Sie es in CLoverETL. Das DBConnection-Objekt wird leicht verändert in CloverETL 3.1, mehr erweiterbar und die Umsetzung der Nachkomme, das nutzt Datenquelle für die Verbindung zur Datenbank wird wie ein Kinderspiel.
InformationsquelleAutor der Antwort Agad