Materialisierte Ansichten mit Amazon EMR verwenden - Amazon EMR

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.

Materialisierte Ansichten mit Amazon EMR verwenden

Amazon EMR Version 7.12.0 und höher unterstützt die Erstellung und Verwaltung materialisierter Apache Iceberg-Ansichten im Glue-Datenkatalog. AWS Eine materialisierte Ansicht ist eine verwaltete Tabelle, die das vorberechnete Ergebnis einer SQL-Abfrage im Apache Iceberg-Format speichert und schrittweise aktualisiert wird, wenn sich die zugrunde liegenden Quelltabellen ändern. Sie können materialisierte Ansichten verwenden, um Pipelines zur Datentransformation zu vereinfachen und die Abfrageleistung für komplexe analytische Workloads zu beschleunigen.

Wenn Sie mit Spark auf Amazon EMR eine materialisierte Ansicht erstellen, werden die Ansichtsdefinition und die Metadaten im AWS Glue-Datenkatalog gespeichert. Die vorberechneten Ergebnisse werden als Apache Iceberg-Tabellen in Amazon S3 S3-Tabelles-Buckets oder Amazon S3 S3-Allzweck-Buckets in Ihrem Konto gespeichert. AWS Der AWS Glue-Datenkatalog überwacht automatisch Quelltabellen und aktualisiert materialisierte Ansichten mithilfe einer verwalteten Recheninfrastruktur.

So funktionieren materialisierte Ansichten mit Amazon EMR

Materialisierte Ansichten lassen sich über die Iceberg-Unterstützung von Apache Spark in Amazon EMR integrieren. Wenn Sie Ihre Spark-Sitzung für die Verwendung des AWS Glue-Datenkatalogs konfigurieren, können Sie materialisierte Ansichten mithilfe der Standard-SQL-Syntax erstellen. Der Spark-Optimierer kann Abfragen automatisch so umschreiben, dass sie materialisierte Ansichten verwenden, wenn sie eine bessere Leistung bieten, sodass der Anwendungscode nicht manuell geändert werden muss.

Der AWS Glue-Datenkatalog behandelt alle betrieblichen Aspekte der Wartung von Materialized Views, einschließlich:

  • Erkennung von Änderungen in Quelltabellen mithilfe der Metadatenebene von Apache Iceberg

  • Planung und Ausführung von Aktualisierungsvorgängen mithilfe von Managed Spark Compute

  • Feststellen, ob eine vollständige oder eine inkrementelle Aktualisierung auf der Grundlage der Datenänderungen durchgeführt werden soll

  • Speichern vorberechneter Ergebnisse im Apache Iceberg-Format für den Zugriff mit mehreren Engines

Sie können materialisierte Ansichten von Amazon EMR mit denselben Spark-SQL-Schnittstellen abfragen, die Sie für normale Tabellen verwenden. Auf die vorberechneten Daten kann auch von anderen Diensten wie Amazon Athena und Amazon Redshift aus zugegriffen werden.

Voraussetzungen

Um materialisierte Ansichten mit Amazon EMR zu verwenden, benötigen Sie:

  • Ein Konto AWS

  • Ein Amazon EMR-Cluster, auf dem Version 7.12.0 oder höher ausgeführt wird

  • Quelltabellen im Apache Iceberg-Format, registriert im AWS Glue Data Catalog

  • AWS Lake Formation Formation-Berechtigungen, die für Quelltabellen und Zieldatenbanken konfiguriert sind

  • Ein S3 Tables-Bucket oder ein S3-Allzweck-Bucket, der bei AWS Lake Formation registriert ist, um materialisierte View-Daten zu speichern

Konfiguration von Spark für die Verwendung materialisierter Ansichten

Um materialisierte Ansichten zu erstellen und zu verwalten, konfigurieren Sie Ihre Spark-Sitzung mit den erforderlichen Iceberg-Erweiterungen und Katalogeinstellungen. Die Konfiguration hängt davon ab, ob Ihre Quelltabellen und materialisierten Ansichten S3-Tabellen-Buckets oder S3-Allzweck-Buckets verwenden.

Konfiguration für S3-Tabellen

Wenn Sie S3-Tabelles-Buckets für materialisierte Ansichten verwenden, konfigurieren Sie separate Katalogverweise für Ihre Quelltabellen und materialisierten Ansichten:

spark-sql \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \ --conf spark.sql.catalog.glue_catalog=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.glue_catalog.type=glue \ --conf spark.sql.catalog.glue_catalog.warehouse=s3://amzn-s3-demo-bucket/warehouse \ --conf spark.sql.catalog.glue_catalog.glue.region=us-east-1 \ --conf spark.sql.catalog.glue_catalog.glue.id=111122223333 \ --conf spark.sql.catalog.glue_catalog.glue.account-id=111122223333 \ --conf spark.sql.catalog.glue_catalog.glue.lakeformation-enabled=true \ --conf spark.sql.catalog.s3t_catalog=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3t_catalog.type=glue \ --conf spark.sql.catalog.s3t_catalog.glue.id=111122223333:s3tablescatalog/my-table-bucket \ --conf spark.sql.catalog.s3t_catalog.glue.account-id=111122223333 \ --conf spark.sql.catalog.s3t_catalog.glue.lakeformation-enabled=true \ --conf spark.sql.catalog.s3t_catalog.warehouse=s3://amzn-s3-demo-bucket/mv-warehouse \ --conf spark.sql.catalog.s3t_catalog.glue.region=us-east-1 \ --conf spark.sql.defaultCatalog=s3t_catalog \ // turn on automatic query rewrite (optional) --conf spark.sql.optimizer.answerQueriesWithMVs.enabled=true

Konfiguration für S3-Allzweck-Buckets

Wenn Sie S3-Allzweck-Buckets verwenden, konfigurieren Sie eine einzelne Katalogreferenz:

spark-sql \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \ --conf spark.sql.catalog.glue_catalog=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.glue_catalog.type=glue \ --conf spark.sql.catalog.glue_catalog.warehouse=s3://amzn-s3-demo-bucket/warehouse \ --conf spark.sql.catalog.glue_catalog.glue.region=us-east-1 \ --conf spark.sql.catalog.glue_catalog.glue.id=111122223333 \ --conf spark.sql.catalog.s3t_catalog.glue.account-id=111122223333 \ --conf spark.sql.catalog.s3t_catalog.glue.lakeformation-enabled=true \ --conf spark.sql.defaultCatalog=glue_catalog \ // turn on automatic query rewrite (optional) --conf spark.sql.optimizer.answerQueriesWithMVs.enabled=true

Aktivierung der inkrementellen Aktualisierung

Um die inkrementelle Aktualisierungsoptimierung zu aktivieren, fügen Sie Ihrer Spark-Sitzung die folgenden Konfigurationseigenschaften hinzu:

spark-sql \ --conf spark.sql.optimizer.incrementalMVRefresh.enabled=true \

Konfigurationsparameter

Die folgenden Konfigurationsparameter steuern das Verhalten der materialisierten Ansicht:

  • spark.sql.extensions— Aktiviert Iceberg Spark-Sitzungserweiterungen, die für die Unterstützung von Materialized Views erforderlich sind.

  • spark.sql.optimizer.answerQueriesWithMVs.enabled— Ermöglicht das automatische Umschreiben von Abfragen zur Verwendung materialisierter Ansichten. Auf true setzen, um diese Optimierung zu aktivieren.

  • spark.sql.optimizer.incrementalMVRefresh.enabled— Aktiviert die inkrementelle Aktualisierungsoptimierung. Auf true setzen, um nur geänderte Daten während Aktualisierungsvorgängen zu verarbeiten.

Erstellen von materialisierten Ansichten

Sie erstellen materialisierte Ansichten mit der SQL-Anweisung CREATE MATERIALIZED VIEW. Die View-Definition spezifiziert die Transformationslogik als eine SQL-Abfrage, die auf eine oder mehrere Quelltabellen verweist.

DLLs

Ansicht erstellen

{ CREATE OR REPLACE MATERIALIZED VIEW | CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] } view_identifier [ view_clauses ] [ schedule_clauses ] AS [ select_statement ] view_clauses = { [ LOCATION location ] | [ PARTITIONED BY (col [, ...]) ] | [ COMMENT view_comment ] | [ SCHEDULE [ REFRESH ] schedule_clause ] } schedule_clause = { EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } }
Anmerkung

Die view_clauses müssen vor dem select_statement stehen.

Eine materialisierte Basisansicht erstellen

Im folgenden Beispiel wird eine materialisierte Ansicht erstellt, die Bestelldaten nach Kunden aggregiert. Verwenden Sie in der Ansichtsdefinition vollständig qualifizierte Tabellennamen mit dreiteiliger Benennungskonvention:

CREATE MATERIALIZED VIEW customer_orders AS SELECT customer_name, COUNT(*) as order_count, SUM(amount) as total_amount FROM glue_catalog.sales.orders GROUP BY customer_name;

Erstellen einer materialisierten Ansicht mit automatischer Aktualisierung

Um die automatische Aktualisierung zu konfigurieren, geben Sie beim Erstellen der Ansicht einen Aktualisierungszeitplan an. Verwenden Sie dabei vollqualifizierte Tabellennamen mit dreiteiliger Benennungskonvention in der Ansichtsdefinition:

CREATE MATERIALIZED VIEW customer_orders SCHEDULE REFRESH EVERY 1 HOUR AS SELECT customer_name, COUNT(*) as order_count, SUM(amount) as total_amount FROM glue_catalog.sales.orders GROUP BY customer_name;

Erstellen einer materialisierten Ansicht mit katalogübergreifenden Verweisen

Wenn sich Ihre Quelltabellen in einem anderen Katalog als Ihre materialisierte Ansicht befinden, verwenden Sie vollqualifizierte Tabellennamen mit dreiteiliger Benennungskonvention sowohl im Ansichtsnamen als auch in der Ansichtsdefinition:

CREATE MATERIALIZED VIEW s3t_catalog.analytics.customer_summary AS SELECT customer_name, COUNT(*) as order_count, SUM(amount) as total_amount FROM glue_catalog.sales.orders GROUP BY customer_name;

Abfragen materialisierter Ansichten

Nachdem Sie eine materialisierte Ansicht erstellt haben, können Sie sie wie jede andere Tabelle mit den Standard-SQL-SELECT-Anweisungen abfragen:

SELECT * FROM customer_orders;

Automatisches Umschreiben von Abfragen

Wenn das automatische Umschreiben von Abfragen aktiviert ist, analysiert der Spark-Optimierer Ihre Abfragen und verwendet automatisch materialisierte Ansichten, wenn diese die Leistung verbessern können. Wenn Sie beispielsweise die folgende Abfrage ausführen:

SELECT customer_name, COUNT(*) as order_count, SUM(amount) as total_amount FROM orders GROUP BY customer_name;

Der Spark-Optimierer schreibt diese Abfrage automatisch neu, sodass sie die materialisierte Ansicht customer_orders verwendet, anstatt die Tabelle mit den Basisbestellungen zu verarbeiten, vorausgesetzt, die materialisierte Ansicht ist aktuell.

Überprüfung des automatischen Umschreibens von Abfragen

Verwenden Sie den Befehl EXPLAIN EXTENDED, um zu überprüfen, ob eine Abfrage das automatische Umschreiben von Abfragen verwendet:

EXPLAIN EXTENDED SELECT customer_name, COUNT(*) as order_count, SUM(amount) as total_amount FROM orders GROUP BY customer_name;

Suchen Sie im Ausführungsplan nach dem Namen der materialisierten Ansicht in der BatchScan Operation. Wenn der Plan BatchScan glue_catalog.analytics.customer_orders statt glue_catalog.sales.orders anzeigt, wurde die Abfrage automatisch so umgeschrieben, dass sie die BatchScan materialisierte Ansicht verwendet.

Anmerkung

Das automatische Umschreiben von Abfragen benötigt Zeit, bis der Spark-Metadatencache nach dem Erstellen einer materialisierten Ansicht gefüllt ist. Dieser Vorgang ist in der Regel innerhalb von 30 Sekunden abgeschlossen.

Aktualisieren materialisierter Ansichten

Sie können materialisierte Ansichten mit zwei Methoden aktualisieren: vollständige Aktualisierung oder inkrementelle Aktualisierung. Bei der vollständigen Aktualisierung wird die gesamte materialisierte Ansicht anhand aller Basistabellendaten neu berechnet, während bei der inkrementellen Aktualisierung nur die Daten verarbeitet werden, die sich seit der letzten Aktualisierung geändert haben.

Manuelle vollständige Aktualisierung

So führen Sie eine vollständige Aktualisierung einer materialisierten Ansicht durch:

REFRESH MATERIALIZED VIEW customer_orders FULL;

Nachdem Sie diesen Befehl ausgeführt haben, fragen Sie die materialisierte Ansicht ab, um die aktualisierten Ergebnisse zu überprüfen:

SELECT * FROM customer_orders;

Manuelles inkrementelles Aktualisieren

Um eine inkrementelle Aktualisierung durchzuführen, stellen Sie sicher, dass die inkrementelle Aktualisierung in Ihrer Spark-Sitzungskonfiguration aktiviert ist, und führen Sie dann Folgendes aus:

REFRESH MATERIALIZED VIEW customer_orders;

Der AWS Glue-Datenkatalog bestimmt anhand der Ansichtsdefinition und der Menge der geänderten Daten automatisch, ob eine inkrementelle Aktualisierung möglich ist. Wenn eine inkrementelle Aktualisierung nicht möglich ist, wird der Vorgang auf eine vollständige Aktualisierung zurückgesetzt.

Die Ausführung der inkrementellen Aktualisierung wird überprüft

Um zu überprüfen, ob die inkrementelle Aktualisierung erfolgreich ausgeführt wurde, können Sie die lastRefreshType Tabelleneigenschaften überprüfen, indem Sie die folgenden Befehle ausführen:

SHOW TBLPROPERTIES <mvName>("lastRefreshType")

Dies kann auch erreicht werden, indem Sie die Debug-Protokollierung aktivieren, indem Sie Ihre Spark-Log-Konfiguration ändern:

  1. Öffnen Sie die Spark log4j-Konfigurationsdatei:

    sudo vim /usr/lib/spark/conf/log4j2.properties
  2. Fügen Sie die folgenden Logger-Konfigurationen hinzu:

    logger.spark.name = org.apache.spark.sql logger.spark.level = debug logger.inmemcache.name = org.apache.spark.sql.InMemMvMetadataCache logger.inmemcache.level = off
  3. Suchen Sie nach der Ausführung eines Aktualisierungsvorgangs in der Spark-Ausgabe nach der folgenden Meldung:

    DEBUG RefreshMaterializedViewExec: Executed Incremental Refresh

Materialisierte Ansichten verwalten

Amazon EMR bietet SQL-Befehle für die Verwaltung des Lebenszyklus materialisierter Ansichten.

Beschreibung einer materialisierten Ansicht

So zeigen Sie Metadaten zu einer materialisierten Ansicht an, einschließlich ihrer Definition, ihres Aktualisierungsstatus und des Zeitstempels der letzten Aktualisierung:

DESCRIBE EXTENDED customer_orders;

Eine materialisierte Ansicht ändern

So ändern Sie den Aktualisierungszeitplan einer vorhandenen materialisierten Ansicht:

ALTER MATERIALIZED VIEW customer_orders ADD SCHEDULE REFRESH EVERY 2 HOURS;

Um die automatische Aktualisierung zu entfernen:

ALTER MATERIALIZED VIEW customer_orders DROP SCHEDULE;

Löschen einer materialisierten Ansicht

Um eine materialisierte Ansicht zu löschen:

DROP MATERIALIZED VIEW customer_orders;

Dieser Befehl entfernt die Definition der materialisierten Ansicht aus dem AWS Glue-Datenkatalog und löscht die zugrunde liegenden Iceberg-Tabellendaten aus Ihrem S3-Bucket.

Berechtigungen für materialisierte Ansichten

Um materialisierte Ansichten zu erstellen und zu verwalten, müssen Sie AWS Lake Formation Formation-Berechtigungen konfigurieren. Die IAM-Rolle, die die materialisierte Ansicht erstellt (die Definer-Rolle), erfordert spezielle Berechtigungen für Quelltabellen und Zieldatenbanken.

Erforderliche Berechtigungen für die Definer-Rolle

Die Definiererrolle muss über die folgenden Lake Formation Formation-Berechtigungen verfügen:

  • Für Quelltabellen — SELECT- oder ALL-Berechtigungen ohne Zeilen-, Spalten- oder Zellenfilter

  • In der Zieldatenbank — CREATE_TABLE-Berechtigung

  • Über den AWS Glue-Datenkatalog — GetTable und CreateTable API-Berechtigungen

Wenn Sie eine materialisierte Ansicht erstellen, wird der ARN der Definiererrolle in der Ansichtsdefinition gespeichert. Der AWS Glue-Datenkatalog übernimmt diese Rolle bei der Ausführung automatischer Aktualisierungsvorgänge. Wenn die Definer-Rolle den Zugriff auf Quelltabellen verliert, schlagen Aktualisierungsvorgänge fehl, bis die Berechtigungen wiederhergestellt sind.

Zugriff auf materialisierte Ansichten gewähren

Um anderen Benutzern Zugriff auf die Abfrage einer materialisierten Ansicht zu gewähren, verwenden Sie AWS Lake Formation, um die SELECT-Berechtigung für die Materialized View-Tabelle zu erteilen. Benutzer können die materialisierte Ansicht abfragen, ohne direkten Zugriff auf die zugrunde liegenden Quelltabellen zu benötigen.

Ausführliche Informationen zur Konfiguration von Lake Formation-Berechtigungen finden Sie unter Gewähren und Widerrufen von Berechtigungen für Datenkatalogressourcen im AWS Lake Formation Developer Guide.

Überwachung von Materialized View-Vorgängen

Der AWS Glue-Datenkatalog veröffentlicht Metriken und Protokolle für Aktualisierungsvorgänge von Materialized Views auf Amazon CloudWatch. Sie können den Aktualisierungsstatus, die Dauer und das verarbeitete Datenvolumen anhand von CloudWatch Metriken überwachen.

Aktualisierungsmetriken anzeigen

So zeigen Sie die Aktualisierungsmetriken für materialisierte Ansichten an:

  1. Öffnen Sie die CloudWatch Konsole.

  2. Wählen Sie im Navigationsbereich Metriken aus.

  3. Wählen Sie den Glue-Namespace.

  4. Filtern Sie Metriken nach dem Namen der materialisierten Ansicht.

Alarme einrichten

Um Benachrichtigungen zu erhalten, wenn Aktualisierungsvorgänge fehlschlagen oder die erwartete Dauer überschreiten, erstellen Sie CloudWatch Alarme für Materialized View-Metriken. Sie können EventBridge Amazon-Regeln auch so konfigurieren, dass automatische Antworten auf Aktualisierungsereignisse ausgelöst werden.

Beispiel: Vollständiger Workflow

Das folgende Beispiel zeigt einen vollständigen Workflow für die Erstellung und Verwendung einer materialisierten Ansicht in Amazon EMR.

  1. Stellen Sie über SSH Connect zu Ihrem primären EMR-Clusterknoten her.

  2. Erstellen Sie eine Basistabelle mit Beispieldaten:

    spark-sql \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \ --conf spark.sql.catalog.glue_catalog=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.glue_catalog.type=glue \ --conf spark.sql.catalog.glue_catalog.warehouse=s3://amzn-s3-demo-bucket/warehouse \ --conf spark.sql.catalog.glue_catalog.glue.region=us-east-1 \ --conf spark.sql.catalog.glue_catalog.glue.id=111122223333 \ --conf spark.sql.catalog.glue_catalog.glue.account-id=111122223333 \ --conf spark.sql.catalog.glue_catalog.glue.lakeformation-enabled=true \ --conf spark.sql.defaultCatalog=glue_catalog \ --conf spark.sql.optimizer.answerQueriesWithMVs.enabled=true CREATE DATABASE IF NOT EXISTS sales; USE sales; CREATE TABLE orders ( id INT, customer_name STRING, amount DECIMAL(10,2), order_date DATE ); INSERT INTO orders VALUES (1, 'John Doe', 150.00, DATE('2024-01-15')), (2, 'Jane Smith', 200.50, DATE('2024-01-16')), (3, 'Bob Johnson', 75.25, DATE('2024-01-17'));
  3. Erstellen Sie eine materialisierte Ansicht:

    CREATE MATERIALIZED VIEW customer_summary AS SELECT customer_name, COUNT(*) as order_count, SUM(amount) as total_amount FROM glue_catalog.sales.orders GROUP BY customer_name;
  4. Fragen Sie die materialisierte Ansicht ab:

    SELECT * FROM customer_summary;
  5. Fügen Sie zusätzliche Daten in die Basistabelle ein:

    INSERT INTO orders VALUES (4, 'Jane Smith', 350.00, DATE('2024-01-18')), (5, 'Bob Johnson', 100.25, DATE('2024-01-19'));
  6. Aktualisieren Sie die materialisierte Ansicht:

    REFRESH MATERIALIZED VIEW customer_summary FULL;
  7. Überprüfen Sie die aktualisierten Ergebnisse:

    SELECT * FROM customer_summary;

Überlegungen und Einschränkungen

Beachten Sie Folgendes, wenn Sie materialisierte Ansichten mit Amazon EMR verwenden:

  • Materialisierte Ansichten erfordern Amazon EMR Version 7.12.0 oder höher.

  • Quelltabellen müssen Apache Iceberg-Tabellen sein, die im AWS Glue-Datenkatalog registriert sind. Apache Hive-, Apache Hudi- und Delta Lake-Tabellen der Linux Foundation werden beim Start nicht unterstützt.

  • Quelltabellen müssen sich in derselben AWS Region und demselben AWS Konto wie die materialisierte Ansicht befinden.

  • Alle Quelltabellen müssen von AWS Lake Formation verwaltet werden. Reine IAM-Berechtigungen und hybrider Zugriff werden nicht unterstützt.

  • Materialisierte Ansichten können nicht auf AWS Glue Data Catalog-Ansichten, Multidialektansichten oder andere materialisierte Ansichten als Quelltabellen verweisen.

  • Die Rolle des View Definers muss vollen Lesezugriff (SELECT- oder ALL-Berechtigung) auf alle Quelltabellen haben, ohne dass Zeilen-, Spalten- oder Zellfilter angewendet werden.

  • Materialisierte Ansichten stimmen letztendlich mit Quelltabellen überein. Während des Aktualisierungsfensters können Abfragen veraltete Daten zurückgeben. Führen Sie die manuelle Aktualisierung aus, um sofortige Konsistenz zu gewährleisten.

  • Das minimale automatische Aktualisierungsintervall beträgt eine Stunde.

  • Die inkrementelle Aktualisierung unterstützt eine eingeschränkte Teilmenge von SQL-Vorgängen. Die Viewdefinition muss ein einziger SELECT-FROM-WHERE-GROUP BY-HAVING-Block sein und darf keine Mengenoperationen, Unterabfragen, das DISTINCT-Schlüsselwort in SELECT oder Aggregatfunktionen, Fensterfunktionen oder Joins außer INNER JOIN enthalten.

  • Die inkrementelle Aktualisierung unterstützt keine benutzerdefinierten Funktionen oder bestimmte integrierte Funktionen. Nur eine Teilmenge der integrierten Funktionen von Spark SQL wird unterstützt.

  • Beim automatischen Umschreiben von Abfragen werden nur materialisierte Ansichten berücksichtigt, deren Definitionen zu einer eingeschränkten SQL-Teilmenge gehören, ähnlich den Beschränkungen für inkrementelle Aktualisierungen.

  • Vollständige Aktualisierungsvorgänge überschreiben die gesamte Tabelle und sorgen dafür, dass vorherige Snapshots nicht mehr verfügbar sind.

  • Bezeichner, die andere Sonderzeichen als alphanumerische Zeichen und Unterstriche enthalten, werden in CREATE MATERIALIZED VIEW-Abfragen nicht unterstützt.

  • Spalten in materialisierten Ansichten, die mit dem Präfix __ivm beginnen, sind für die Verwendung durch das System reserviert. AWS behält sich das Recht vor, diese Spalten in future Versionen zu ändern oder zu entfernen.

  • Die Klauseln SORT BY, LIMIT, OFFSET, CLUSTER BY und ORDER BY werden in Definitionen materialisierter Ansichten nicht unterstützt.

  • Regions- und kontenübergreifende Quelltabellen werden nicht unterstützt.

  • Nichtdeterministische Funktionen wie rand () oder current_timestamp () werden in Definitionen materialisierter Ansichten nicht unterstützt.