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".)
postgresql
materialized-view
pg-dump
Ophir Yoktan
quelle
quelle
copy
einen Nur-Text-Speicherauszug der Daten (oder eines anderen Exportdienstprogramms) erstellen. Ich bin mir nicht sicher, wie ich es wiederherstellen soll.Antworten:
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.
quelle