Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Warum wird meine materialisierte Ansicht für meinen Amazon Redshift-Cluster nicht aktualisiert?
Meine materialisierte Ansicht wird für meinen Amazon Redshift-Cluster nicht aktualisiert.
Kurzbeschreibung
Die folgenden Szenarien verhindern oder verursachen lange Abschlusszeiten für eine Aktualisierung einer materialisierten Ansicht in Amazon Redshift:
- Berechtigungsfehler verhindern Operationen REFRESH MATERIALIZED VIEW.
- Die gleichzeitig ausgeführten Operationen VACUUM und TRUNCATE der Basistabelle blockieren eine Aktualisierung und geben den folgenden Fehler zurück: „Invalid operation: Materialized view mv_name could not be refreshed as a base table changed physically due to vacuum/truncate concurrently. Please try again“.
- REFRESH MATERIALIZED VIEW kann nicht aktualisiert werden.
- Aktive Workloads blockieren automatische Aktualisierungsaktivitäten.
Lösung
Hinweis: Verwende für Amazon Redshift Serverless-Cluster die SYS-Überwachungsansichten anstelle der Systemansichten (STL, STV, SVL, SVV), die in bereitgestellten Clustern verwendet werden. Weitere Informationen findest du unter Systemansichtszuordnung für die Migration zu SYS-Überwachungsansichten.
Berechtigungsfehler REFRESH MATERIALIZED VIEW
Um eine Operation REFRESH MATERIALIZED VIEW für eine materialisierte Ansicht auszuführen, musst du der Eigentümer sein. Du musst außerdem das SELECT-Privileg für die zugrunde liegenden Basistabellen und das USAGE-Privileg für das Schema haben.
Für vollständige Neuberechnungsvorgänge benötigst du das CREATE-Privileg für das Schema. Weitere Informationen zur Definition von Rechten findest du unter GRANT.
Weitere Informationen zur automatischen Aktualisierung findest du unter Automatisches Aktualisieren einer materialisierten Ansicht.
Der folgende Fehler tritt auf, wenn REFRESH MATERIALIZED VIEW und VACUUM zur gleichzeitigen Ausführung in der Basistabelle übermittelt werden: „Invalid operation: Materialized view mv_name could not be refreshed as a base table changed physically due to vacuum/truncate concurrently. Please try again;“.
Nachdem der Vorgang abgeschlossen ist, sende den Befehl REFRESH MATERIALIZED VIEW erneut.
Die Aktualisierung REFRESH MATERIALIZED VIEW schlägt fehl
Die folgenden Operationen können dazu führen, dass eine Aktualisierung materialisierter Ansichten fehlschlägt:
- Du benennst eine Spalte um oder lösche sie.
- Du änderst den Typ einer Spalte.
- Du änderst den Namen einer Basistabelle oder eines Schemas.
Hinweis: Materialisierte Ansichten können unter diesen Bedingungen abgefragt, aber nicht aktualisiert werden. Die Einschränkungen gelten auch dann, wenn die Spalte in der materialisierten Ansicht nicht verwendet wird.
Beispiel für Fehlermeldungen:
- Detail: Procedure <mv_sp_*****_2_1> does not exist.
- column <column name> does not exist.
- DETAIL: schema "<schema name>" does not exist.
- ERROR: Materialized view <my name> is unrefreshable as a base table was renamed.
Um die Aktualisierungsaktivität der materialisierten Ansicht anzuzeigen, verwende SVL_MV_REFRESH_STATUS für einen von Amazon Redshift bereitgestellten Cluster oder SYS_MV_REFRESH_HISTORY für einen Amazon Redshift Serverless-Cluster.
Verwende STV_MV_INFO, SYS_MV_STATE oder SYS_MV_REFRESH_HISTORY, um herauszufinden, ob die Daten in der materialisierten Ansicht veraltet sind und um Informationen zum Status der materialisierten Ansicht anzuzeigen.
Wenn eine materialisierte Ansicht nicht aktualisiert werden kann, lösche sie und erstelle sie neu, um die aktuellen Daten beizubehalten.
Lang andauernder Vorgang REFRESH MATERIALIZED VIEW
Der Befehl REFRESH MATERIALIZED VIEW wird als normale Abfrage im Cluster ausgeführt.
Gehe wie folgt vor, um die Ausführung der Abfrage zu überprüfen:
- Verwende STV_INFLIGHT, um aktive Abfragen der Daten zu überprüfen.
- Verwende STV_WLM_QUERY_STATE, um den aktuellen WLM-Abfragestatus zu überwachen.
- Verwende STV_EXEC_STATE, um aktive Abfragen und Abfrageschritte auf Rechenknoten zu überprüfen.
Verwende die folgenden Systemansichten, um die Operationen ** REFRESH MATERIALIZED VIEW** zu überwachen:
- Verwende STV_LOCKS, um aktuelle Aktualisierungen der Tabellen in der Datenbank anzuzeigen.
- Um die Serviceklassenkonfiguration für WLM anzuzeigen, verwende STV_WLM_SERVICE_CLASS_CONFIG.
- Verwende SVL_MV_REFRESH_STATUS, um festzustellen, ob die materialisierte Ansicht schrittweise oder vollständig aktualisiert wurde.
Wenn die Leistung von REFRESH MATERIALIZED VIEW langsam ist, findest du weitere Informationen unter Verbesserung ](https://docs.aws.amazon.com/redshift/latest/dg/query-performance-improvement-opportunities.html) der [ Abfrageleistung.
Versteckter Aktualisierungsstatus während aktiver Workload
Amazon Redshift räumt den Workloads Vorrang vor der automatischen Aktualisierung ein. Diese Priorisierung kann die automatische Aktualisierung stoppen, um die Leistung des Workloads aufrechtzuerhalten, und Aktualisierungen einiger materialisierter Ansichten verzögern. In einigen Situationen ist möglicherweise ein vorhersehbares Aktualisierungsverhalten für die materialisierten Ansichten erforderlich.
Gehe wie folgt vor, um ein vorhersehbares Aktualisierungsverhalten zu ermöglichen:
- Führe REFRESH MATERIALIZED VIEW manuell aus.
- Plane Aktualisierungen über die Amazon Redshift Scheduler-API oder -Konsole.
- Themen
- Analytics
- Tags
- Amazon Redshift
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor 6 Monaten