Ist es möglich, eine materialisierte Ansicht mit ihren Daten zu sichern und wiederherzustellen?


10

Ich habe einige schwer zu berechnende materialisierte Ansichten, die ich mithilfe der tatsächlich gespeicherten Daten und nicht durch Neuberechnung sichern und wiederherstellen möchte.

Ist es in PostgreSQL 9.4 möglich?

(Die Alternative besteht darin, tatsächliche Tabellen zu erstellen, diese sind jedoch schwieriger zu "aktualisieren".)


3
Sie können copyeinen Nur-Text-Speicherauszug der Daten (oder eines anderen Exportdienstprogramms) erstellen. Ich bin mir nicht sicher, wie ich es wiederherstellen soll.
a_horse_with_no_name

Sie können die CSV mit der Datenbank psql -c "\ COPY ...." -h some_IP von COPY zu / von einem Remote-Server "leiten", obwohl Sie natürlich die Tabellenstruktur an der Stelle erstellt haben müssen, an der Sie wiederherstellen.
John Powell

Antworten:


7

Nicht wirklich. Sie müssen sich daran erinnern, dass der Befehl pg_dump einfache CREATE TABLE- und INSERT-Anweisungen usw. erstellt. Wenn Sie also pg_restore ausführen, führen Sie nur CREATE- und INSERT-Anweisungen auf dem Server aus, und das Einfügen der Daten erfordert den Befehl "INSERT INTO MATERIALIZED VIEW". Dies wäre nicht sinnvoll, da das Abrufen der Daten über eine Verknüpfung auch die "Integrität" der Ansicht gefährden würde. Sie könnten ungültige Daten in den manuellen Wiederherstellungsprozess einfügen, die die Ansicht sonst nicht zurückgeben würde. Daher bezweifle ich, dass PostgreSQL jemals die manuelle Wiederherstellung materialisierter Ansichtsdaten direkt in der Datenbank unterstützen würde.

Wenn Sie die tatsächlichen Daten sichern müssen, würde ich empfehlen, eine Tabelle anstelle einer materialisierten Ansicht zu verwenden und eine geplante Anweisung DELETE FROM / INSERT INTO für die Tabelle auszuführen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.