Materialisierte Ansichten
Was ist eine materialisierte Ansicht?
Eine materialisierte Ansicht ist ein Datenbankobjekt, das die Ergebnisse einer Abfrage als physische Tabelle speichert. Im Gegensatz zu üblichen Datenbankansichten, die virtuell sind und ihre Daten aus den zugrunde liegenden Tabellen beziehen, enthalten materialisierte Ansichten vorberechnete Daten, die nach einem Zeitplan oder bei Bedarf inkrementell aktualisiert werden. Diese Vorberechnung von Daten ermöglicht kürzere Reaktionszeiten bei Abfragen und eine bessere Leistung in bestimmten Szenarien.
Materialisierte Ansichten sind besonders nützlich, wenn komplexe Abfragen oder Aggregationen häufig durchgeführt werden, sich die zugrunde liegenden Daten jedoch selten ändern. Durch die Speicherung der vorberechneten Ergebnisse kann die Datenbank die wiederholte Ausführung komplexer Abfragen vermeiden, was die Antwortzeiten verkürzt.
Ähnliche Themen erkunden
Ist Datenmaterialisierung dasselbe wie eine materialisierte Ansicht?
Auch wenn die Begriffe „Datenmaterialisierung“ und „Materialisierte Ansicht“ miteinander verwandt sind, bezeichnen sie unterschiedliche Konzepte. Was bedeutet also „materialisiert“ in diesem Zusammenhang?
Datenmaterialisierung bezeichnet das Konzept, berechnete Daten dauerhaft auf einem physischen Medium, etwa einer Festplatte, zu speichern. In der Regel basiert sie auf einer virtuellen oder logischen View und verfolgt ein klares Ziel: die Performance beim Datenzugriff deutlich zu verbessern.
In gewisser Hinsicht ähnelt Datenmaterialisierung dem Caching, denn beide Verfahren speichern Daten so, dass sie schneller und effizienter abgerufen werden können. Der zentrale Unterschied liegt jedoch in der Nutzung: Caching dient der kurzfristigen, temporären Speicherung möglichst nah am Nutzungspunkt, während materialisierte Daten in der Regel eine längere Lebensdauer haben und einem klar definierten Aktualisierungsplan folgen.
Mit dieser Definition der Datenmaterialisierung lässt sich nun auch der Zusammenhang zum Konzept der materialisierten Ansichten besser verstehen.
Eine materialisierte Ansicht ist eine spezielle Form der Datenmaterialisierung, die in relationalen Datenbanken verwendet wird, um die Ergebnisse einer Abfrage dauerhaft zu speichern – für schnelleren Zugriff.
Im Kontext von Data Warehouses geht es bei der Materialisierung vor allem um Bequemlichkeit. Wenn Daten gespeichert werden, richtet sich die Wahl des Speicherformats in der Regel danach, wie die Daten ursprünglich strukturiert sind. Beim späteren Auslesen kann dieses Format jedoch ungeeignet sein – etwa, weil es eine schnelle Abfrage erschwert.
Nehmen wir an, Sie verfügen über einen großen Datensatz, aus dem regelmäßig nur ein bestimmter Teil abgefragt werden soll. Wenn Sie diesen Teil bei jeder Abfrage erneut aus dem Gesamtdatensatz extrahieren müssen, kann das unnötig viel Zeit in Anspruch nehmen, denn die Abfrage wird jedes Mal auf dem gesamten Datenbestand ausgeführt, obwohl nur ein kleiner Ausschnitt benötigt wird.
In einem solchen Fall wäre das Erstellen einer materialisierten Ansicht vorteilhaft. Diese würde im Voraus mit den benötigten Daten befüllt und könnte so konfiguriert werden, dass sie entweder automatisch oder bei Änderungen an den zugrunde liegenden Quelldaten aktualisiert wird.
Vergleich von Datenbankobjekten: materialisierte Ansichten vs. Ansichten
An dieser Stelle ist es sinnvoll, zunächst den Begriff „Ansichten“ zu definieren und dann zu erklären, wie sich materialisierte Ansichten davon unterscheiden. Sowohl Ansichten als auch materialisierte Ansichten sind Datenbankobjekte, die Daten in einem bestimmten Format oder als Ergebnis einer bestimmten Abfrage darstellen. Sie unterscheiden sich jedoch erheblich in Bezug auf Speicherung, Performance und Anwendungsfälle (die wir später ausführlicher untersuchen werden).
Beim Vergleich zwischen einer Ansicht und einer materialisierten Ansicht ist ein entscheidender Aspekt, dass es sich bei einer Ansicht um eine virtuelle Tabelle handelt, die auf dem Ergebnis einer SQL-Abfrage basiert. Die Ansicht speichert die Daten nicht selbst, sondern ruft sie bei jeder Abfrage dynamisch aus den zugrunde liegenden Tabellen ab.
In diesem Punkt unterscheidet sie sich deutlich von einer materialisierten Ansicht. Ein zentrales Merkmal der Definition von „materialisiert“ ist der Aspekt der Datenspeicherung. Konkret handelt es sich bei einer materialisierten Ansicht um ein Datenbankobjekt, das die Ergebnisse einer Abfrage physisch speichert.
Das bedeutet: Im Gegensatz zu einer regulären Ansicht ruft eine materialisierte Ansicht die Daten nicht dynamisch ab. Stattdessen speichert sie das Ergebnis der Abfrage und wird in regelmäßigen Abständen aktualisiert, um Änderungen in den zugrunde liegenden Tabellen zu berücksichtigen. Dadurch verbessert sich die Abfrageperformance deutlich, und Rechenressourcen werden effizienter genutzt.
Auch wenn die Speicherung als Hauptunterschied zwischen Ansichten und materialisierten Ansichten gilt, zeigt die folgende Tabelle, wie sich dieser Unterschied auf verschiedene Eigenschaften der beiden Datenbankobjekte auswirkt:
Feature | Ansehen |
Materialisierte Ansicht |
---|---|---|
Datenspeicherung |
Speichert keine Daten (virtuelle Tabelle) |
Speichert Daten physisch (vorab berechnete Ergebnisse) |
Datenabruf |
Ruft Daten dynamisch aus Basistabellen ab |
Ruft Daten aus gespeicherten Ergebnissen ab |
Performance |
Langsamer bei komplexen Abfragen |
Schneller bei komplexen Abfragen |
Aktualität der Daten |
Immer aktuell |
Kann veraltet sein; erfordert Aktualisierung |
Speicherplatz |
Kein zusätzlicher Speicherplatz benötigt |
Benötigt zusätzlichen Speicherplatz |
Anwendungsfall |
Vereinfachung komplexer Abfragen, Sicherheit |
Leistungsverbesserung, Snapshot-Daten |
Was sind die Vor- und Nachteile von materialisierten Ansichten in Datenbanken?
Materialisierte Ansichten bieten mehrere Vorteile, aber auch eine Reihe von Einschränkungen in Datenbanken, auch auf der Databricks Plattform. Ein fundiertes Verständnis der Vor- und Nachteile hilft Anwendern dabei, den richtigen Zeitpunkt und Kontext für den effektiven Einsatz von Materialized Views zu bestimmen.
Vorteile von materialisierten Ansichten
-
Verbesserte Abfrageleistung
Einer der Hauptgründe für die Erstellung von materialisierten Ansichten besteht darin, die Abfrageleistung zu verbessern. Sie erreichen das im wesentlichen auf zwei Wegen: durch Beschleunigung der Datenabfrage und Entlastung der Basistabellen.
Da sie vorausberechnete Ergebnisse speichern, entfällt die Notwendigkeit, Daten neu zu berechnen und eine Abfrage (oder Verknüpfung in einer Abfrage) jedes Mal zu lösen. Dies beschleunigt die Abfrageausführung erheblich, insbesondere bei komplexen und ressourcenintensiven Abfragen oder solchen, die häufig aufgerufen werden.
Diese Art der Speicherung von Daten reduziert auch die Anzahl der direkten Abfragen an Basistabellen. Das minimiert die Belastung dieser Tabellen und führt zu einer allgemeinen Verbesserung der Datenbankleistung.
-
Effiziente Ressourcennutzung
Es ist nicht immer sinnvoll, bei jedem Zugriff eine vollständige Abfrage auszuführen – insbesondere dann, wenn dies langsam und ineffizient wäre. Durch das Vorberechnen und Speichern der Ergebnisse optimieren materialisierte Ansichten den Ressourceneinsatz: Sie reduzieren den Bedarf an wiederholten Berechnungen und Datenverarbeitung. Dadurch sparen sie Zeit und Kosten.
-
Bietet Schnappschüsse von Daten
Materialisierte Ansichten bieten eine Momentaufnahme der Daten zu einem bestimmten Zeitpunkt. Das kann besonders hilfreich sein, wenn Sie nachvollziehen möchten, wie sich Ihr Datensatz im Zeitverlauf verändert hat – etwa für Reporting, Analysen oder die Auswertung historischer Daten.
-
Konsolidierung von Daten
Wenn Sie Daten aus einer Vielzahl verschiedener Quellen zusammenführen müssen, wie beispielsweise während eines ETL -Prozesses, sind materialisierte Ansichten eine hervorragende Option. Sie können verwendet werden, um Daten aus mehreren Tabellen und Datenbanken zu aggregieren und zu konsolidieren, und bieten eine einfache, einheitliche und effiziente Möglichkeit, auf integrierte Daten zuzugreifen.
-
Hilft, komplexe Berechnungen zu vereinfachen
Komplexe Aggregationen, Verknüpfungen und Berechnungen können alle vorberechnet und in materialisierten Ansichten gespeichert werden. Auch das trägt dazu bei, Rechenaufwand zu senken – und macht Datenabfragen und -analysen schneller und einfacher.
Einschränkungen materialisierter Ansichten
-
Speicher-Overhead
Ein Nachteil von materialisierten Ansichten ist ihr zusätzlicher Speicherbedarf, da sie die vorab berechneten Daten physisch speichern müssen. Je nach eingesetzter Speicherlösung, Größe der Ansicht und Häufigkeit der Aktualisierungen kann dieser Mehraufwand zu nicht unerheblichen Kosten führen.
-
Aktualisierungs-Overhead
Materialisierte Ansichten bieten einen statischen Schnappschuss, daher müssen Sie inkrementelle Aktualisierungen durchführen, um sicherzustellen, dass Sie die aktuellste Ansicht entsprechend den Änderungen in den zugrunde liegenden Daten sehen. Die Aktualisierung kann in regelmäßigen Intervallen erfolgen oder an bestimmte Ereignisse geknüpft werden, die festlegen, wie oft eine materialisierte Ansicht aktualisiert wird. In jedem Fall ist eine klare Strategie erforderlich, die festlegt, wie häufig eine Aktualisierung erfolgt. Zudem müssen entsprechende Logik und Ressourcen bereitgestellt werden, um die Daten zuverlässig neu zu berechnen und ihre Aktualität sicherzustellen.
-
Abwägungen in puncto Performance
Leider kann der Prozess der Aktualisierung einer materialisierten Ansicht die Gesamtleistung Ihrer Datenbank beeinträchtigen. Das kann besonders auffällig sein, wenn die Aktualisierung ressourcenintensiv ist oder Konflikte mit anderen Datenbankoperationen verursacht.
-
Begrenzte Anwendbarkeit
Materialisierte Ansichten sind unglaublich vorteilhaft, wenn eine Ansicht häufig aufgerufen wird oder wenn die Leseleistung von wesentlicher Bedeutung ist, wie beispielsweise bei Data Warehousing. Sie sind jedoch nicht für alle Arten von Abfragen oder Anwendungsfällen geeignet. Beispielsweise sind sie weniger ideal für Szenarien, die Echtzeitdaten erfordern oder in denen sich die zugrunde liegenden Daten sehr häufig ändern. Hier kann ihre Nutzung schnell an Grenzen stoßen.
Wann sollten Sie materialisierte Ansichten verwenden?
Nachdem nun der Unterschied zwischen Views und Materialized Views klar ist – ebenso wie die potenziellen Vorteile klassischer Views – stellt sich die Frage: Wann ist es sinnvoll, eine materialisierte Ansicht zu verwenden? Hier sind einige Szenarien, in denen die Verwendung von materialisierten Ansichten den Prozess des Datenzugriffs effizienter gestalten könnte.
Umgang mit regelmäßiger Stapelverarbeitung
Wenn regelmäßig Batch-Verarbeitung erforderlich ist, ermöglichen materialisierte Ansichten diese, indem sie Teile einer Abfrage vorab berechnen und separat speichern. Beispielsweise kannst du bei der wöchentlichen Lohnabrechnung materialisierte Ansichten nutzen, um Gehaltsdetails wie Lohn, Steuern und Provisionen für verschiedene Mitarbeitende vorzuhalten. Die in der materialisierten Ansicht gespeicherten Daten würden dann am Ende jeder Woche aktualisiert.
Verteilung gefilterter Daten
Die Verwendung von materialisierten Ansichten kann helfen, das Problem zu lösen, wie man bestimmte Datensätze an mehreren Standorten verfügbar macht, da sie zur Replikation und zum Caching von Daten aus entfernten Quellen verwendet werden können. Besonders vorteilhaft ist das bei Read-only-Datenbanken: Daten lassen sich auf mehrere Speicherorte verteilen, wodurch die Quell-Datenbank deutlich entlastet wird. Jede Person, die Zugriff auf die Daten benötigt, kann die jeweils nächstgelegene Site nutzen, was auch die Reaktionszeiten deutlich verkürzt.
Optimierung von AI/BI Dashboards
AI/BI Dashboards sind ein wirkungsvolles Instrument zur Verbesserung der Datenvisualisierung und des Reportings auf der Databricks Data Intelligence Platform. Das vereinfachte Design eignet sich ideal zum Teilen und Verteilen von Visualisierungen – jedoch ist es entscheidend, dass alle Daten in Ihrem öffentlichen Dashboard den Anforderungen an Aktualität entsprechen.
Mit materialisierten Ansichten können Sie periodische Updates planen, um die neueste Ansicht sicherzustellen und die Antwortzeiten der Endanwender erheblich zu verbessern, indem Abfrageergebnisse, die das Dashboard antreiben, vorberechnet und gespeichert werden.
Analyse von Zeitreihendaten
Einer der zentralen Vorteile materialisierter Sichten besteht darin, dass sie Schnappschüsse der Daten bereitstellen. Dadurch wird es wesentlich einfacher, Veränderungen im zugrunde liegenden Datensatz über die Zeit hinweg nachzuvollziehen – und es entstehen historische Datenschnappschüsse, die sich hervorragend für Reporting-Zwecke nutzen lassen.
Daher sind materialisierte Ansichten eine geeignete Lösung für eine breite Palette von Business-Intelligence-Anwendungen. Wenn Sie Sternschemas abfragen oder Aggregate aus Rohdaten berechnen müssen, speichern materialisierte Ansichten voraggregierte Zusammenfassungen, wie monatliche Durchschnitte, wöchentliche Summen und tägliche Zählungen. Die Visualisierung dieser Kennzahlen über einen längeren Zeitraum hinweg ist äußerst wertvoll für historische Analysen und Reporting-Zwecke.
Vorbeugung gegen eine Trennung von der Hauptdatenbank
Wenn Sie wissen, dass das Risiko einer Trennung von der zugrunde liegenden Datenbank besteht, können Sie eine materialisierte Sicht nutzen, um die wichtigsten Daten weiterhin verfügbar zu halten und damit weiterzuarbeiten. Natürlich müssen Sie in dieser Situation besonders vorsichtig sein, um sicherzustellen, dass Ihr Aktualisierungszeitplan robust ist. In diesem Fall können Sie die materialisierte Sicht lokal zwischenspeichern.
Wann sollten Sie materialisierte Ansichten verwenden?
Bedenken Sie, dass es einige Szenarien gibt, in denen die Verwendung von materialisierten Ansichten nicht die beste Option ist. Wenn Ihre Daten schnell und einfach abzufragen sind, lohnt sich der Aufwand nicht wirklich. Auch wenn die Quelldaten sich sehr schnell ändern, ergibt es wenig Sinn, materialisierte Ansichten zu verwenden. Stattdessen ist in solchen Fällen davon auszugehen, dass der erhöhte Verarbeitungsaufwand durch ständiges Aktualisieren der Daten den potenziellen Vorteil einer schnelleren Datenbereitstellung überwiegt.
Materialisierte Ansichten in Databricks SQL erstellen
Materialisierte Ansichten in Databricks SQL werden über Unity Catalog verwaltet. Sie speichern vorberechnete Ergebnisse, die auf den neuesten Daten aus den Quelltabellen basieren. Anders als herkömmliche Implementierungen behalten materialisierte Ansichten in Databricks den Datenstand zum Zeitpunkt der letzten Aktualisierung bei und werden nicht bei jeder Abfrage aktualisiert. Sie haben die Möglichkeit, die materialisierten Ansichten manuell zu refreshen oder zeitgesteuerte automatische Aktualisierungen einzurichten.
Die materialisierten Ansichten von Databricks SQL sind besonders nützlich für die ETL-Verarbeitung (Extrahieren, Transformieren, Laden). Sie bieten einen einfachen und deklarativen Ansatz zur Handhabung von Compliance, Korrekturen, Aggregationen und Change Data Capture (CDC). Materialisierte Ansichten senken die Abfragelatenz deutlich und tragen zur Kostenreduktion bei, da langsame Abfragen und häufig genutzte Berechnungen im Voraus ausgeführt und gespeichert werden. Außerdem ermöglichen sie nahtlose Transformationen durch Bereinigung, Anreicherung und Denormalisierung von Basistabellen. In bestimmten Fällen können materialisierte Ansichten Änderungen aus den Basistabellen inkrementell berechnen. Das spart Kosten und sorgt für ein effizienteres, reibungsloseres Benutzererlebnis.
Databricks führte materialisierte Ansichten erstmals als Teil der Lakehouse-Architektur mit dem Launch von DLT ein. Durch Erstellung einer materialisierten Ansicht in einem DB SQL-Warehouse wird automatisch eine DLT-Pipeline angelegt, um Aktualisierungen der Ansicht zu verwalten. Sie können den Status der Aktualisierungsvorgänge ganz einfach per DLT-Benutzeroberfläche, API oder CLI überwachen.
Wie die Erstellung von materialisierten Ansichten funktioniert
Das folgende Beispiel erstellt die materialisierte Ansicht customer_orders aus den Basistabellen orders und customers:
Wie die Aktualisierung von materialisierten Ansichten funktioniert
In Databricks SQL haben Sie die Möglichkeit, für eine materialisierte Ansicht eine automatische Aktualisierung nach einem vordefinierten Zeitplan einzurichten. Dieser Zeitplan kann beim Erstellen der materialisierten Ansicht mit der SCHEDULE-Klausel konfiguriert oder später mit der ALTER VIEW-Anweisung hinzugefügt werden. Nach dem Anlegen eines Zeitplans wird automatisch ein Databricks-Job erstellt, um die Aktualisierungen zu erledigen.
Um die Details des Zeitplans jederzeit überprüfen zu können, nutzen Sie die DESCRIBE EXTENDED-Anweisung. Sie vermittelt einen Einblick in den für die materialisierte Ansicht konfigurierten Zeitplan. So können Sie den Zeitplan für die automatische Aktualisierung Ihrer materialisierten Ansicht in Databricks SQL bequem kontrollieren und verwalten.
Weitere Informationen zu materialisierten Ansichten finden Sie in der Databricks-Produktdokumentation oder im Intro-Blog.