PSQL - Rolle in PAS

<< Click to Display Table of Contents >>

Navigation:  PostgreSQL - Datenbank >

PSQL - Rolle in PAS

Rolle im PAS

PostgreSQL ist die sekundäre Datenbank in PAS. Ich nutze diese Datenbanken unter mehreren Aspekten.

Regelmäßiger direkter Export nach PostgreSQL

Ich exportiere im Rahmen meiner Anwendung regelmäßig Daten aus der Gemstone/S Datenbank in die PostgreSQL. Dort stehen die Daten dann (lesend) dem Kunden via SQL zur Verfügung. Dabei führe ich in Gemstone/S in einer Transaktion die Logik und Objektänderungen in Gemstone aus und bereite gleichzeitig die Daten für den Export in PostgreSQL durch. Der eigentliche Export in die Datenbank wird dann in einem eigenen Gemstone/S Prozeß durchgeführt - der genau nur dieses macht. Durch das Konzept ist die Datenintegrität sichergestellt. Die nach PostgreSQL gespeicherten Daten sind dabei in der Regel angereichert. Keine Foreign Key Relations, sondern nur einfache breitere Tabellen mit zahlreichen Spalten - einfache Datensätze.

Unter der Berücksichtigung der Lizenz benötigt dieses Vorgehen einen weiteren Background-Prozess - aber es braucht eben auch nur ein Gemstone/S die externe Verbindung.

Regelmäßiger indirekter Export nach PostgreSQL

PASLOG ist ein Beispiel für dieses Verfahren. Inhaltlich ähnlich dem Vorgänger, werden die Daten aber als Event aufbereitet und als Telegramm in Gemstone/S zum Versenden gespeichert und in einem anderen Gemstone/S-Prozeß via RabbitMQ an einen externen Prozeß geschickt. Das Senden an RabbitMQ wird von einem eigenen Gemstone/S Prozess durchgeführt. Wenn man RabbitMQ benötigt, dann ist das kein Mehraufwand.

Datenverwaltung in PostgreSQL

Ich habe aber auch bereits Anwendungen geschrieben, bei denen ich die Gemstone/S als Programmierumgebung benutze (Sessions, Kunden, Benutzer, Zugriffsrechte, CRUD, REST), nur um Daten in PostgreSQL bearbeiten zu können.