vivekananda
I'm new here

SolR JDBC als externe Datenquelle einbinden

Hallo,

Wir würden in einem Kundenprojekt gerne den SolR JDBC als externe Datenbank in FirstSpirit einbinden. In vorrausgegangenen E-Mail Anfragen, haben wir als Antwort erhalten, dass dies FirstSpirit zwar offiziell nicht unterstützt, wir das aber mal probieren können.

Folgende Dinge haben wir gemacht:

- Wir haben den Solr JDBC Treiber als Modul in FS installiert

- Wir haben im Register Datenbank eine neue angelegt und folgendermaßen konfiguriert:

# SolR

jdbc.DRIVER=org.apache.solr.client.solrj.io.sql.DriverImpl

jdbc.URL=jdbc:solr://localhost:9983/?collection=master_fox_us_Product_flop

jdbc.layerclass=jdbc.layerclass=de.espirit.or.impl.postgres.PostgreSQLLayer // hier liegt das Problem begraben

module=SolrJDBC

Wir haben Postgre als Layer gewählt, da der SolrJDBC eine solche simuliert.

Der Verbindungstest ist anschließend erfolgreich.

Mit dem SQuirrelSQL-Client lassen sich SQL-Befehle erfolgreich ausführen (um Fehler dort auszuschließen).

Leider lässt sich anschließend in FS kein Datenbankschema aus einer externen Datenbank erzeugen (das Dropdown ist leer). Das manuelle nachbauen des Schemas schlägt mit einer Unsupported.Operation Fehlermeldung fehl.

Nach aktuellem Teststand, scheitert es daran, dass FS nur für die offiziell unterstützten Datenbanken eine Layer-Klasse anbietet (im Package de.espirit.or.impl).

Hat hierfür noch jemmand eine Idee? Gibt es die Möglichkeit einen eigene DB-Layer Klasse hinzuzufügen?

vielen Dank

Mathias Weklak

0 Kudos
4 Replies
marza
I'm new here

Hallo Mathias,

was genau für Informationen wollt ihr aus der Solr-Instanz einlesen? Vielleicht könnt ihr auch in Modul mit der neuen Data Access API erstellen und die JDBC-Queries selber schreiben? So hättet ihr volle Kontrolle. Externe Systeme mit beliebigen Schnittstellen wie einer REST-API wurden so bereits integriert.

Siehe http://www.e-spirit.com/odfs52/plugin-entwickl/universelle-erw/datenzugriff/ .

Viele Grüße

Marian

0 Kudos

Hallo Marian,

ja, die Umsetzung mit DAP ist die Fallbackvariante.

Wir hatten vorher bereits per Mail schon eine Anfrage zum direkten Einbinden des SolRs als externe Datenquelle per JDBC gestellt. Da wurde uns eben mitgeteilt, dass wir das ja mal probieren können.

Wir haben es probiert, mit dem Ergebnis, dass auf Grund des fehlenden passenden Datenbanklayers kein Schema aus externer Datenquelle in FS erstellt werden kann.

Deshalb wollte ich wissen, ob es hierzu eine Lösung / Workaround gibt, oder ob man per Modul oder so einen Costomdatenbanklayer hinzufügen kann.

Der Vorteil wäre die maximale Flexibilität einer Datenquelle.

Wir tippen bereits darauf, dass dies nicht der Fall ist und die Fallbackvariante mit DAP umgesetzt werden muss.

vielen Dank soweit

viele Grüße

Mathias Weklak

0 Kudos

Hallo Mathias,

ich habe mir den Code des PostgreSQLLayer angesehen und sehe aktuell nicht, warum es nicht mit einer anderen Datenbank im Postgres-Kompatibilitätsmodus funktionieren sollte. Am Ende abstrahiert diese Layer-Klasse nur den SQL-Dialekt. Leider habe ich noch nicht mit SolR gearbeitet. Ich gehe aber davon aus, dass es dort die Möglichkeit gibt, zu Debuggingzwecken die abgesendeten Queries zu loggen. Eventuell hilft das dabei, herauszufinden was kaputt geht. Eventuell kannst du die so abgesendeten Queries selbst noch einmal mit SQuirrelSQL abschicken.

Außerdem fiel mir beim Ansehen des Codes auf, dass es noch einige Trace-Loggings gibt, die eventuell aufschlussreich sein können um herauszufinden was nicht funktioniert. Du müsstest lokal den Loglevel hochsetzen können in den Server-Einstellungen.

Ich kann natürlich nicht versprechen dass das zum Ziel führt, und der DAP-Ansatz sollte auf jeden Fall funktionieren...

Viele Grüße,

Lena

0 Kudos
neumann
Crownpeak employee

Hallo Matthias,

besteht das Problem immer noch, bzw. ist diese Frage noch offen?

Benötigst Du weitere Hilfe oder konnte Dir die Antwort von Lena bereits weiterhelfen?
In diesem Fall wäre es super, wenn Du diese als "richtige Antwort" entsprechend markierst.

Sollte es bereits eine Lösung geben, wäre es toll, wenn Du diese hier bereitstellen könntest.

Viele Grüße

Emre

0 Kudos