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.
Materialisierte Ansichten in Databricks SQL
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 verringern die Abfragelatenz erheblich und reduzieren die Kosten, da langsame Abfragen und häufig verwendete Berechnungen vorausberechnet 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, was zu Kosteneinsparungen und einem optimierten Benutzererlebnis führt.
Databricks führte materialisierte Ansichten erstmals als Teil der Lakehouse-Architektur mit dem Launch von Delta Live Tables ein. Durch Erstellung einer materialisierten Ansicht in einem DB SQL-Warehouse wird automatisch eine Delta Live Tables-Pipeline angelegt, um Aktualisierungen der Ansicht zu verwalten. Sie können den Status der Aktualisierungsvorgänge ganz einfach per Delta Live Tables-Benutzeroberfläche, API oder CLI überwachen.
Erstellen einer materialisierten Ansicht
Das folgende Beispiel erstellt die materialisierte Ansicht customer_orders aus den Basistabellen orders und customers:
Auffrischen einer materialisierten Ansicht
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.