Was ist eine materialisierte Ansicht?

Eine materialisierte Ansicht ist eine doppelte Datentabelle, die durch die Kombination von Daten aus mehreren vorhandenen Tabellen für einen schnelleren Datenabruf erstellt wird. Stellen Sie sich zum Beispiel eine Einzelhandelsanwendung mit zwei Basistabellen für Kunden- und Produktdaten vor. Die Kundentabelle enthält Informationen wie den Namen und die Kontaktdaten des Kunden, während die Produkttabelle Informationen zu Produktdetails und Kosten enthält. In der Kundentabelle werden nur die Produkt-IDs der Artikel gespeichert, die ein einzelner Kunde kauft. Sie müssen auf beide Tabellen verweisen, um Produktdetails zu Artikeln zu erhalten, die von bestimmten Kunden gekauft wurden. Stattdessen können Sie eine materialisierte Ansicht erstellen, in der Kundennamen und die zugehörigen Produktdetails in einer einzigen temporären Tabelle gespeichert werden. Sie können Indexstrukturen in der materialisierten Ansicht erstellen, um die Leistung beim Lesen von Daten zu verbessern.

Was sind die Vorteile materialisierter Ansichten?

Materialisierte Ansichten sind eine schnelle und effiziente Methode, um auf relevante Daten zuzugreifen. Sie helfen bei der Abfrageoptimierung in datenintensiven Anwendungen. Im Folgenden gehen wir auf einige der wichtigsten Vorteile ein.

Geschwindigkeit

Leseabfragen durchsuchen verschiedene Tabellen und Datenzeilen, um die erforderlichen Informationen zu sammeln. Mit materialisierten Ansichten können Sie Daten direkt aus Ihrer neuen Ansicht abfragen, anstatt jedes Mal neue Informationen berechnen zu müssen. Je komplexer Ihre Abfrage ist, desto mehr Zeit sparen Sie mit einer materialisierten Ansicht.

Einfachheit der Datenspeicherung

Materialisierte Ansichten ermöglichen es Ihnen, komplexe Abfragelogik in einer Tabelle zu konsolidieren. Dies erleichtert Entwicklern Datentransformationen und Codepflege. Komplexe Abfragen werden dadurch einfacher. Sie können auch die Datenunterteilung verwenden, um die Datenmenge zu verringern, die Sie in der Ansicht replizieren müssen.

Konsistenz

Materialisierte Ansichten bieten eine konsistente Ansicht der zu einem bestimmten Zeitpunkt erfassten Daten. Sie können die Lesekonsistenz in materialisierten Ansichten konfigurieren und Daten auch in Mehrbenutzerumgebungen zugänglich machen, in denen die Kontrolle der Parallelität unerlässlich ist.

Materialisierte Ansichten bieten auch dann Datenzugriff, wenn sich die Quelldaten ändern oder diese gelöscht werden. Das bedeutet, dass Sie materialisierte Ansichten im Laufe der Zeit verwenden können, um Berichte über zeitbasierte Daten-Snapshots zu erstellen. Der Grad der Isolierung von Quelltabellen stellt sicher, dass Sie ein höheres Maß an Konsistenz in Ihren Daten haben. 

Verbesserte Zugriffskontrolle

Sie können eine materialisierte Ansicht verwenden, um zu kontrollieren, wer Zugriff auf bestimmte Daten hat. Sie können Informationen für Benutzer filtern, ohne ihnen Zugriff auf die Quelltabellen zu gewähren. Dieser Ansatz ist praktisch, wenn Sie kontrollieren möchten, wer Zugriff auf welche Daten hat und wie viele davon sie sehen und mit denen sie interagieren können.

Was sind die Anwendungsfälle von materialisierten Ansichten?

Sie können in vielen verschiedenen Szenarien von materialisierten Ansichten profitieren. 

Gefilterte Daten verteilen

Wenn Sie aktuelle Daten an viele Standorte verteilen müssen, z. B. an Mitarbeiter im Homeoffice, helfen materialisierte Ansichten. Mithilfe materialisierter Ansichten replizieren und verteilen Sie Daten an viele Standorte. Die Personen, die Zugriff auf Daten benötigen, interagieren mit dem replizierten Datenspeicher, der ihnen geografisch am nächsten ist.

Dieses System ermöglicht Parallelität und verringert die Netzwerkbelastung. Dies ist ein effektiver Ansatz bei schreibgeschützten Datenbanken.

Zeitreihendaten analysieren

Materialisierte Ansichten bieten Momentaufnahmen von Datensätzen mit Zeitstempel, sodass Sie Informationsänderungen im Laufe der Zeit modellieren können. Sie können vorberechnete Datenaggregationen wie monatliche oder wöchentliche Zusammenfassungen speichern. Diese Anwendungen sind für Business-Intelligence- und Berichtsplattformen hilfreich. 

Remote-Dateninteraktion

In verteilten Datenbanksystemen können Sie materialisierte Ansichten verwenden, um Abfragen mit Daten von Remote-Servern zu optimieren. Anstatt wiederholt Daten aus einer Remote-Quelle abzurufen, können Sie Daten in einer lokalen materialisierten Ansicht abrufen und speichern. Dies reduziert den Bedarf an Netzwerkkommunikation und verbessert die Leistung.

Wenn Sie beispielsweise Daten aus einer externen Datenbank oder über eine API erhalten, konsolidiert eine materialisierte Ansicht diese und hilft bei der Verarbeitung. 

Periodische Stapelverarbeitung

Materialisierte Ansichten sind hilfreich für Situationen, in denen eine regelmäßige Stapelverarbeitung erforderlich ist. Beispielsweise könnte ein Finanzinstitut materialisierte Ansichten verwenden, um Tagesendsalden und Zinsberechnungen zu speichern. Oder es könnte Zusammenfassungen der Portfolio-Performance speichern, die am Ende eines jeden Geschäftstages aktualisiert werden können.

Wie funktionieren materialisierte Ansichten?

Materialisierte Ansichten funktionieren, indem sie die Ergebnisse einer bestimmten Abfrage vorab berechnen und als physische Tabelle in der Datenbank speichern. Die Datenbank führt die Vorberechnung in regelmäßigen Abständen durch, oder Benutzer können sie durch bestimmte Ereignisse auslösen. Administratoren überwachen die Leistung und Ressourcenauslastung materialisierter Ansichten, um sicherzustellen, dass sie weiterhin ihren beabsichtigten Zweck erfüllen.

Hier ist ein allgemeiner Überblick darüber, wie materialisierte Ansichten funktionieren.

Materialisierte Ansicht erstellen

Sie definieren eine Abfrage, die die gewünschten Daten aus einer oder mehreren Quelltabellen abruft, um materialisierte Ansichten zu erstellen. Diese Abfrage kann je nach Bedarf Filterung, Aggregationen, Joins und andere Operationen beinhalten.

Die Datenbank füllt die materialisierte Ansicht zunächst auf, indem sie die definierte Abfrage für die Quelldaten ausführt. Das Ergebnis der Abfrage wird als physische Tabelle in der Datenbank gespeichert, und diese Tabelle stellt die materialisierte Ansicht dar.

Materialisierte Ansicht aktualisieren

Die Daten in einer materialisierten Ansicht müssen regelmäßig aktualisiert werden, um Änderungen der zugrunde liegenden Daten in den Quelltabellen widerzuspiegeln. Die Häufigkeit der Datenaktualisierung hängt vom Anwendungsfall und den Anforderungen ab.

Als Nächstes erläutern wir einige gängige Ansätze für die Datenaktualisierung.

Vollständige Aktualisierung

Die materialisierte Ansicht wird vollständig neu berechnet und mit den neuesten Abfrageergebnissen überschrieben. Dies ist der einfachste Ansatz, kann jedoch ressourcenintensiv sein, insbesondere bei großen materialisierten Ansichten.

Inkrementelle Aktualisierung

Nur die Änderungen an den zugrunde liegenden Daten werden auf die materialisierte Ansicht angewendet. Das kann effizienter sein als eine vollständige Aktualisierung, wenn es um große Datenmengen und häufige Aktualisierungen geht.

Aktualisierung auf Abruf

In einigen Systemen können materialisierte Ansichten bei Bedarf aktualisiert werden, ausgelöst durch bestimmte Ereignisse oder Benutzeranfragen. Dies gibt mehr Kontrolle darüber, wann die Daten aktualisiert werden, erfordert jedoch eine sorgfältige Verwaltung, um sicherzustellen, dass die materialisierte Ansicht auf dem neuesten Stand bleibt.

Technische Variationen in verschiedenen Systemen

Jedes Datenbankmanagementsystem verfügt über unterschiedliche Methoden zum Erstellen einer materialisierten Ansicht.

Datenbankmanagementsystem

So funktionieren materialisierte Ansichten

PostgreSQL

Mit PostgreSQL müssen Sie die materialisierte Ansicht manuell aktualisieren, wodurch die gesamte Ansicht neu berechnet wird. Sie füllen die materialisierte Ansicht genau in dem Moment mit Daten auf, in dem Sie sie erstellen.

MySQL

MySQL unterstützt keine materialisierten Ansichten.

Oracle

Oracle aktualisiert materialisierte Ansichten automatisch, aber Sie haben auch die Möglichkeit, sie bei Bedarf zu aktualisieren. Sie können auch eine SQL-Anweisung schreiben, die die Ansichten zur Aktualisierung auffordert, bevor Ergebnisse geliefert werden.

SQL Server

SQL Server verwendet den Namen „indizierte Ansichten“, da die Materialisierung ein Schritt zur Erstellung eines Indexes einer regulären Ansicht ist. Sie können nur einfache SQL-Abfragen mit ihren indizierten Ansichten ausführen. Sie werden automatisch für den Benutzer aktualisiert.

MongoDB

MongoDB verwendet Aggregationsfunktionen, um eine ähnliche Funktion wie materialisierte Ansichten bereitzustellen, jedoch für eine NoSQL-Umgebung. 

Was ist der Unterschied zwischen Ansichten und materialisierten Ansichten?

In relationalen Datenbanken ist eine Ansicht eine temporäre Tabelle, die durch Transformieren und Kombinieren der Daten in mehreren Basistabellen erstellt wird. Sie ist eine virtuelle Tabelle, die selbst keine Daten speichert. Stattdessen wird sie durch eine Abfrage einer oder mehrerer Quelltabellen definiert.

Immer wenn ein Benutzer die Ansicht abfragt, berechnet das Datenbankmodul die Ergebnisse dynamisch, indem es die zugrunde liegende Abfrage der Quelltabellen ausführt. Die Daten in einer Ansicht sind immer aktuell, da sie bei jedem Zugriff direkt aus den Quelltabellen abgeleitet werden.

Eine materialisierte Ansicht speichert dagegen die Ergebnisse einer bestimmten Abfrage als physische Tabelle in der Datenbank. Die Daten in der materialisierten Ansicht sind vorberechnet und gespeichert, sodass die Ergebnisse bereits verfügbar sind, ohne dass die Abfrage bei jedem Zugriff auf die Ansicht neu berechnet werden muss.

Die Daten in materialisierten Ansichten sind jedoch nicht immer aktuell. Sie müssen die Aktualisierungshäufigkeit so konfigurieren, dass ein ausgewogenes Verhältnis zwischen Datenaktualität und Abfrageleistung hergestellt wird.

Was sind die Herausforderungen bei materialisierten Ansichten?

Da materialisierte Ansichten eine weitere Datenbankkomponente sind, die es zu berücksichtigen gilt, sollten Sie eine weitere Komplexitätsebene in Bezug auf die Wartung hinzufügen. Sie müssen die Abfrage- und Effizienzvorteile mit potenziellen Speicherkosten und Problemen mit der Datenkonsistenz abwägen.

Sie müssen effektive Regeln erstellen, die Aktualisierungen auslösen, um sicherzustellen, dass Ihre materialisierten Ansichten weiterhin nützlich sind. Das häufige Aktualisieren Ihrer materialisierten Ansichten kann sich auf die Systemleistung auswirken, insbesondere wenn Sie sich bereits in einem Zeitraum erhöhter Anforderungen befinden. Darüber hinaus belegen materialisierte Ansichten beim Replizieren von Daten auch eine beträchtliche Menge an Speicherplatz. Wenn Sie über eine große Datenbank verfügen, die ständig aktualisiert wird, wird der Speicherbedarf materialisierter Ansichten wahrscheinlich erheblich sein. 

Wenn Sie eine materialisierte Ansicht verwenden möchten, müssen Sie klare Aktualisierungsregeln und -zeitpläne festlegen. Sie müssen auch wissen, wie Sie mit Dateninkonsistenzen, Aktualisierungsfehlern und der zusätzlichen Speicherbelastung umgehen können.

Wie kann AWS Ihnen bei Ihren Anforderungen bezüglich materialisierter Ansichten helfen?

Materialisierte Ansichten sind ein leistungsstarkes Tool zur Verbesserung der Abfrageleistung in Amazon Redshift.

Amazon Redshift überwacht kontinuierlich den Workload mithilfe von Machine Learning und erstellt eine neue materialisierte Ansicht, wenn diese nützlich ist. Das Feature „automatisierte materialisierte Ansicht (AutoMV)“ in Redshift bietet dieselben Leistungsvorteile wie von Benutzern erstellte materialisierte Ansichten.

Die AutoMV-Funktion kann Ihnen in vielerlei Hinsicht zugute kommen:

  • Wägen Sie die Kosten für die Erstellung und Aktualisierung materialisierter Ansichten gegen die erwarteten Vorteile bei der Abfragelatenz ab.
  • Überwachen Sie zuvor erstellte AutoMVs und löschen Sie sie, wenn sie nicht mehr nützlich sind.
  • Aktualisieren Sie automatisch und inkrementell unter Verwendung der gleichen Kriterien und Einschränkungen wie bei von Benutzern erstellte materialisierte Ansichten.

Darüber hinaus müssen Entwickler Abfragen nicht überarbeiten, um AutoMV nutzen zu können. Das automatische Umschreiben von Abfragen zur Verwendung materialisierter Ansichten identifiziert Abfragen, die von systemerstellten AutoMVs profitieren können. Diese Abfragen werden automatisch neu geschrieben, um AutoMVs zu verwenden, wodurch die Abfrageeffizienz verbessert wird. 

Beginnen Sie mit materialisierten Ansichten in AWS, indem Sie noch heute ein Konto erstellen.

Weitere Schritte in AWS

Zusätzliche produktbezogene Ressourcen ansehen
Kostenlose Angebote für Datenbank-Services in der Cloud anzeigen 
Registrieren Sie sich für ein kostenloses Konto

Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.

Registrieren 
Mit der Entwicklung in der Konsole starten

Starten Sie mit der Entwicklung in der AWS-Managementkonsole.

Anmelden