2017-01-23 2 views
0

Ich bin derzeit dabei, ein potenzielles Entwicklungsprojekt auszuarbeiten, in dem wir eine analytische Lösung zur Unterstützung einer Produktionsanwendung entwickeln werden. Offensichtlich wollen wir Abfragen zu relativ aktuellen Daten durchführen, aber wir wollen nicht das operationelle Risiko, die Hauptdatenbank direkt mit (möglicherweise teuren) analytischen Abfragen abzufragen.Replizieren von PostgreSQL-Daten für Analysen

Um dies zu tun, glaube ich, dass wir das folgende tun möchten:

  • Machen Sie eine Replik einer „Produktion“ PostgreSQL-Datenbank in eine separate „Analytik“ Datenbank
  • Fügen Sie zusätzliche Tabellen/Ansichten etc die "Analytics" -Datenbank, die nur die Analyselösung unterstützt und nicht Teil der Anwendungs-DB ist.
  • Pflegen Sie die Replik Kopie der Produktionsdaten in einem einigermaßen up-to-date Mode (Echtzeit-Replikation nicht unbedingt notwendig, aber nicht mehr als ein paar Sekunden Verzögerung wäre gut) sein

Die Datenbank wird nicht übermäßig groß (es ist eine Web/Mobile-Anwendung mit vielen Benutzern, aber die meisten sind wahrscheinlich nicht gleichzeitig aktiv).

Ist dies wahrscheinlich mit PostgreSQL möglich, und wenn ja, welche ist die beste Strategie/Replikationstechnik?

Antwort

1

Sie können streaming replication nicht dafür verwenden, da Sie keine Tabellen zu einer schreibgeschützten Datenbank hinzufügen können. Sie könnten jedoch die Anforderung überdenken, die zusätzlichen Tabellen nicht zur Produktionsdatenbank hinzuzufügen. Es gibt jedoch andere Replikationstechniken wie Slony, Bucardo oder Londiste.

Eine Sache, die Sie beachten sollten, ist, dass ein Datenmodell, das für eine Online-Transaktionsverarbeitungsdatenbank geeignet ist, normalerweise nicht gut für analytische Anwendungen geeignet ist und Sie möglicherweise mit der Leistung Ihrer analytischen Abfragen ziemlich unzufrieden sind . Für diese ist die normale Sache zu tun, eine Art data warehouse zu bauen, in der Daten in einer mehr denormalized Form, normalerweise in etwas wie einem star schema gespeichert werden.

Aber dafür können Sie “ nicht mehr als ein paar Sekunden Verzögerung ” haben. Überprüfe, ob das wirklich wichtig ist, normalerweise nicht für analytische Anfragen.

+2

Pglogical oder BDR könnte auch Optionen –

+0

Dank für die Antwort, vermutete ich, dass der Fall sein könnte. Beachten Sie, dass die Rohdatentabellen nicht für analytische Abfragen geeignet sind (das ist der Hauptgrund für die zusätzlichen Tabellen ....) – mikera

Verwandte Themen