Amazon Redshift wird UDFs ab dem 1. November 2025 die Erstellung von neuem Python nicht mehr unterstützen. Wenn Sie Python verwenden möchten UDFs, erstellen Sie das UDFs vor diesem Datum liegende. Bestehendes Python UDFs wird weiterhin wie gewohnt funktionieren. Weitere Informationen finden Sie im Blogbeitrag
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
REFRESH MATERIALIZED VIEW
Aktualisiert eine materialisierte Ansicht.
Wenn Sie eine materialisierte Ansicht erstellen, spiegelt ihr Inhalt den Zustand der zugrundeliegenden Datenbanktabelle(n) zu diesem Zeitpunkt wider. Die Daten in der materialisierten Ansicht bleiben unverändert, auch wenn Anwendungen Änderungen an den Daten in den zugrundeliegenden Tabellen vornehmen.
Um die Daten in einer materialisierten Ansicht zu aktualisieren, können Sie jederzeit die Anweisung REFRESH MATERIALIZED
VIEW
verwenden. Wenn Sie diese Anweisung verwenden, identifiziert Amazon Redshift Änderungen, die in der oder den Basistabellen stattgefunden haben, und wendet diese Änderungen dann auf die materialisierte Ansicht an.
Weitere Hinweise zu materialisierten Ansichten finden Sie unter Materialisierte Ansichten in Amazon Redshift.
Syntax
REFRESH MATERIALIZED VIEW mv_name [ RESTRICT | CASCADE ]
Parameter
- mv_name
-
Der Name der zu aktualisierenden materialisierten Ansicht.
- RESTRICT
-
Optionales Schlüsselwort. Aktualisiert die angegebene materialisierte Ansicht, nicht jedoch die abhängigen materialisierten Ansichten. Die Standardeinstellung, wenn weder RESTRICT noch CASCADE angegeben sind.
- CASCADE
-
Optionales Schlüsselwort. Aktualisiert die angegebene materialisierte Ansicht und alle ihre abhängigen materialisierten Ansichten.
Nutzungshinweise
Nur der Besitzer einer materialisierten Ansicht kann eine REFRESH MATERIALIZED
VIEW
-Operation für diese Ansicht ausführen. Darüber hinaus muss der Besitzer über SELECT-Berechtigungen für die zugrunde liegenden Basistabellen verfügen, um erfolgreich ausführen zu können REFRESH
MATERIALIZED VIEW
.
Der Befehl REFRESH MATERIALIZED VIEW
wird als Transaktion von sich selbst ausgeführt. Die Amazon-Redshift-Transaktionssemantik wird befolgt, um zu bestimmen, welche Daten aus Basistabellen für den Befehl REFRESH
sichtbar sind oder wann die durch den Befehl REFRESH
vorgenommenen Änderungen für andere Transaktionen sichtbar gemacht werden, die in Amazon Redshift ausgeführt werden.
-
Für inkrementelle materialisierte Ansichten verwendet
REFRESH MATERIALIZED VIEW
nur die Zeilen der Basistabelle, die bereits festgeschrieben wurden. Wenn der Aktualisierungsvorgang nach einer DML-Anweisung (Data Manipulation Language) in derselben Transaktion ausgeführt wird, sind Änderungen dieser DML-Anweisung nicht sichtbar, um zu aktualisieren. -
Für eine vollständige Aktualisierung einer materialisierten Ansicht zeigt
REFRESH MATERIALIZED VIEW
alle Basistabellenzeilen an, die für die Aktualisierungstransaktion sichtbar sind, entsprechend der üblichen Amazon-Redshift-Transaktionssemantik. -
Abhängig vom Eingabeargumenttyp unterstützt Amazon Redshift weiterhin die inkrementelle Aktualisierung für materialisierte Ansichten für die folgenden Funktionen mit bestimmten Eingabeargumenttypen: DATE (Zeitstempel), DATE_PART (Datum, Uhrzeit, Intervall, Zeitzone), DATE_TRUNC (Zeitstempel, Intervall).
-
Die inkrementelle Aktualisierung wird auch für eine materialisierte Ansicht unterstützt, bei der sich die Basistabelle in einem Datashare befindet.
Einige Operationen in Amazon Redshift interagieren mit materialisierten Ansichten. Einige dieser Vorgänge erzwingen möglicherweise einen Vorgang vom Typ REFRESH MATERIALIZED VIEW
, um die materialisierte Ansicht vollständig neu zu berechnen, auch wenn die Abfrage, die die materialisierte Ansicht definiert, nur die SQL-Features verwendet, die sich für eine inkrementelle Aktualisierung eignen. Beispiel:
-
Im Hintergrund ausgeführte Bereinigungsoperationen können blockiert werden, wenn materialisierte Ansichten nicht aktualisiert werden. Nach einem intern definierten Zeitraum kann eine Bereinigungsoperation ausgeführt werden. Bei dieser Bereinigungsoperation werden alle abhängigen materialisierten Ansichten bei der nächsten Aktualisierung zur Neuberechnung markiert (auch wenn sie inkrementell sind). Weitere Informationen zu VACUUM finden Sie unter VACUUM. Weitere Hinweise zu Ereignissen und Statusänderungen finden Sie unter STL_MV_STATE.
-
Einige vom Benutzer initiierte Operationen für Basistabellen zwingen eine materialisierte Ansicht dazu, bei der nächsten Ausführung einer REFRESH-Operation vollständig neu berechnet zu werden. Beispiele für solche Operationen sind eine manuell aufgerufene VACUUM-Operation, eine klassische Größenänderung, eine ALTER DISTKEY-Operation, eine ALTER SORTKEY-Operation und eine Operation zum Kürzen. Automatische Operationen können in einigen Fällen auch dazu führen, dass eine materialisierte Ansicht bei der nächsten Ausführung eines REFRESH-Vorgangs vollständig neu berechnet wird. Beispielsweise kann ein automatischer Vakuumlöschvorgang zu einer vollständigen Neuberechnung führen. Weitere Hinweise zu Ereignissen und Statusänderungen finden Sie unter STL_MV_STATE.
Kaskadierende Aktualisierung
Die Option CASCADE aktualisiert die angegebene materialisierte Ansicht und all ihre abhängigen materialisierten Ansichten in der Reihenfolge ihrer Abhängigkeit: Die Basisansicht steht REFRESHed vor der MVs obersten Ansicht ( MVs topologische Reihenfolge). Auf diese Weise können Sie einen verschachtelten Satz von materialisierten Ansichten mit einem einzigen Befehl aktualisieren.
Die Option RESTRICT (die Standardoption, wenn weder RESTRICT noch CASCADE angegeben sind) aktualisiert nur die angegebene materialisierte Ansicht.
Bei Verwendung der Option CASCADE gelten die folgenden Regeln:
-
Nur der Besitzer der materialisierten Ansicht oder ein Superuser kann den Befehl ausführen.
REFRESH MATERIALIZED VIEW ... CASCADE
-
Wenn eine der materialisierten Ansichten in der Kaskade nicht aktualisiert werden kann, wird der gesamte kaskadierende Vorgang beendet.
Die Funktion zur kaskadierenden Aktualisierung wird nur für MVs verschachtelte, auf lokalen und gestreamten materialisierten Ansichten unterstützt. Materialisierte Ansichten mit anderen Quelltypen wie Spectrum oder Data Sharing werden im Kaskadenmodus nicht unterstützt. CASCADE führt die Aktualisierung in einer einzigen Transaktion für alle verschachtelten Objekte aus. MVs
Inkrementelle Aktualisierung für materialisierte Ansichten in einem Datashare
Amazon Redshift unterstützt automatische und inkrementelle Aktualisierungen für materialisierte Ansichten in einem Consumer-Datashare, wenn die Basistabellen gemeinsam genutzt werden. Inkrementelle Aktualisierung ist ein Vorgang, bei dem Amazon Redshift Änderungen in der Basistabelle oder den Basistabellen identifiziert, die nach der vorherigen Aktualisierung vorgenommen wurden, und nur die entsprechenden Datensätze in der materialisierten Ansicht aktualisiert. Weitere Informationen zu diesem Verhalten finden Sie unter CREATE MATERIALIZED VIEW.
Einschränkungen für die inkrementelle Aktualisierung
Amazon Redshift unterstützt derzeit keine inkrementelle Aktualisierung für materialisierte Ansichten, die mit einer Abfrage mit einem der folgenden SQL-Elemente definiert sind:
-
OUTER JOIN (RIGHT, LEFT oder FULL).
-
Set-Operationen: UNION, INTERSECT, EXCEPT, MINUS.
-
UNION ALL, wenn es in einer Unterabfrage vorkommt und eine Aggregatfunktion oder eine GROUP BY-Klausel in der Abfrage vorhanden ist.
-
Aggregatfunktionen: MEDIAN, PERCENTILE_CONT, LISTAGG, STDDEV_SAMP, STDDEV_POP, APPROXIMATE COUNT, APPROXIMATE PERCENTILE sowie bitweise Aggregatfunktionen.
Anmerkung
Die Aggregatfunktionen COUNT, SUM, MIN, MAX und AVG werden unterstützt.
-
DISTINCT-Aggregatfunktionen, wie DISTINCT COUNT, DISTINCT SUM usw.
-
Fensterfunktionen.
-
Eine Abfrage, die temporäre Tabellen für die Abfrageoptimierung verwendet, z. B. das Optimieren allgemeiner Unterausdrücke.
-
Unterabfragen
-
Externe Tabellen, die in der Abfrage, die die materialisierte Ansicht definiert, auf die folgenden Formate verweisen.
-
Delta Lake
-
Hudi
Die inkrementelle Aktualisierung wird für materialisierte Ansichten unterstützt, die in anderen als den oben aufgeführten Formaten definiert wurden. Weitere Informationen finden Sie unter Materialisierte Ansichten externer Data-Lake-Tabellen in Amazon Redshift Spectrum.
-
-
Veränderbare Funktionen, wie Datum-Uhrzeit-Funktionen, RANDOM und nicht-STABLE benutzerdefinierte Funktionen.
-
Einschränkungen in Bezug auf die inkrementelle Aktualisierung für Zero-ETL-Integrationen finden Sie unter Überlegungen bei der Verwendung von Zero-ETL-Integrationen mit Amazon Redshift.
-
Zugreifen auf Tabellen aus mehr als einer Datenbank.
Weitere Informationen zu Einschränkungen bei materialisierten Ansichten, einschließlich der Auswirkungen von Hintergrundoperationen wie VACUUM auf Aktualisierungsvorgänge in materialisierten Ansichten, finden Sie unter Nutzungshinweise.
Beispiele
Das folgende Beispiel aktualisiert die materialisierte tickets_mv
-Ansicht.
REFRESH MATERIALIZED VIEW tickets_mv;
Im folgenden Beispiel werden die products_mv
materialisierte Ansicht und alle ihre abhängigen materialisierten Ansichten aktualisiert:
REFRESH MATERIALIZED VIEW products_mv CASCADE;