2017-05-16 2 views
0

Ich habe gerade mit Pentaho Daten-Integration begonnen und war in der Lage, Transformationen/Jobs von UI zu erstellen und sie von der Benutzeroberfläche sowie Pentaho DI Java SDK auszuführen. Außerdem habe ich erfolgreich einen Carte Server eingerichtet, eine Transformation eingereicht und den Status auf der Carte WebUI überwacht.Pentaho-carte-Rest api?

Meine Frage ist:

Does carte-Server stellt auch jede JSON/XML Rest-API, über die kann ich Jobs/Transformation einreichen und ihre Fortschritte überwachen? Im Moment scheint es nur für den Gebrauch durch den Browser entwickelt zu sein.

Dank - Nitin,

+0

Kannst du etwas über die Integration von Carte mit dem Pentaho-Tool erfahren? Wie weiß mein Carte-Server, welcher Job ausgeführt werden soll? Wenn ich versuche, einen Job auszuführen, indem ich auf die Rest-API klicke, erhalte ich den Fehler "Verbindung zum Repository nicht möglich". Ich habe den Slave-Server in der Transformation Registerkarte im Tool konfiguriert –

Antwort

2

Ja, besteht die REST-API.

Die Karte basiert auf einem Jetty-Server, der für die Verwendung in einem Webbrowser gedacht ist, aber es gibt keinen Grund, eine Sende-/Empfangsanforderung wie http://your-server:9090/kettle/status?xml=true zu verhindern.

Allerdings sehe ich zwei Haupthindernisse: Zuerst erhalten Sie HTML, von dem Sie die relevanten Informationen extrahieren müssen. Es ist nicht schwer zu tun, aber es muss von dir gemacht werden.

Zweitens ist die Dokumentation. Die community documentation ist ziemlich kurz, und die EE edition documentation befasst sich nicht mit der Frage. Es gibt eine underground documentation aber ist möglicherweise veraltet (oder es kann eine neuere, die ich weiß nicht existieren).

Sie sind also verpflichtet, in der forum und in den Quellen [Quelle] [5] zu kriechen. Im Paket org.pentaho.di.www finden Sie viele *Servlet.java, die jeweils einer Aktion entsprechen, deren URL am Anfang der Klasse in der Variablen definiert ist.

Zum Beispiel enthält die Klasse org.pentaho.di.www.RunTransServlet.java in Zeile 58: public static final String CONTEXT_PATH = "/kettle/runTrans";, die angibt, dass die URL zum Ausführen einer Transformation http://your-server:9090/kettle/runTrans?... ist. Dann haben Sie jetzt 2 Parameter den Namen der Umwandlung und die Protokollierungsstufe, entweder indem Sie in der HTML-Dokument in den Zeilen 68 bis 145, entweder durch Lesen des Codes der doGet-Methode.

Es ist viel einfacher als es klingt (dank Matt Casters und Jens Bleuel Geschenk in Software-Engineering).

Ich habe selbst eine kleine Ajax-Schnittstelle mit weniger Informationen. Es war, bevor sie dieses CORS Zeug erfanden, also müssen Sie überprüfen, dass das in den Antwortheader geschrieben wird.

Also, wenn Sie mutig genug sind und planen, etwas in dieser Richtung zu tun, halten Sie mich auf dem neuesten Stand und zögern Sie nicht, um Hilfe zu bitten.

+0

Wow !!! Du hast es schön erklärt :) Ich werde diesen Thread definitiv auf dem neuesten Stand halten. Außerdem wird versucht, einen Rest-Api-Wrapper zu implementieren, wenn die Zeit es erlaubt. Nochmals vielen Dank .. –

+1

Das ist nett von dir. Carte ist eine wunderbare Soft von Kettles Jungs. Als Pentaho das Produkt nahm, hatten sie vor, eine bessere, wenn auch kostenpflichtige Version zu machen. Es ist ihnen nicht gelungen, aber Carte ist vergessen. – AlainD