Was sind Tabellen und Ansichten?
Tabellen und Ansichten sind grundlegende Konzepte in Databricks zum Organisieren und Zugreifen auf Daten.
Eine Tabelle ist ein strukturiertes Dataset, das an einem bestimmten Ort gespeichert ist, in der Regel im Delta Lake-Format. Tabellen speichern tatsächliche Daten im Speicher und können mit SQL-Befehlen oder DataFrame-APIs abgefragt und bearbeitet werden, unterstützende Vorgänge wie Einfügen, Aktualisieren, Löschen und Zusammenführen. Unter Was ist eine Tabelle? finden Sie weitere Informationen.
Eine Ansicht ist eine virtuelle Tabelle, die von einer SQL-Abfrage definiert wird. Eine Ansicht speichert keine Daten selbst. Stattdessen bietet eine Ansicht eine Möglichkeit, Daten aus einer oder mehreren Tabellen in einem bestimmten Format oder einer Abstraktion darzustellen. Ansichten sind nützlich, um komplexe Abfragen zu vereinfachen, Geschäftslogik zu kapseln und eine konsistente Schnittstelle zu den zugrunde liegenden Daten bereitzustellen, ohne Speicher zu duplizieren. Weitere Informationen finden Sie unter Was ist eine Sicht?.
Tabellen und Ansichten im Unity-Katalog
Tabellen und Ansichten werden mithilfe des Unity-Katalogs gesteuert. In Unity Catalog befinden sich Tabellen und Ansichten auf der dritten Ebene des Namespaces mit drei Ebenen (catalog.schema.table), wie im folgenden Diagramm dargestellt.
Unterschiede zwischen Delta-Tabellen, Streamingtabellen und materialisierten Ansichten
In der folgenden Tabelle werden häufig gestellte Fragen zu den Unterschieden zwischen Delta-Tabellen, Streamingtabellen und materialisierten Ansichten beantwortet.
Frage | Delta-Tabelle | ST | MV |
---|---|---|---|
Was ist das? | Standardtabellen, die im Delta Lake-Format gespeichert sind, unterstützen ACID-Transaktionen, Schemaerzwingung und andere Delta Lake-Features. | Eine reguläre Delta-Tabelle, die für Streaming- und inkrementelle Verarbeitungsanwendungsfälle erweitert wurde. | Das Ergebnis einer Abfrage, deren Ergebnis immer vorab berechnet und korrekt ist. |
Für welche Anwendungsfälle wird empfohlen? | Prozeduraler Code, der folgendes ausführt: -Ingestion -Transformation |
Deklarativer Code, der folgende Aktionen ausführt: - Erfassung von nur anfügegeschützten Quellen – Transformationen mit geringer Latenz |
Deklarativer Code, der folgende Aktionen ausführt: - Inkrementelle Transformationen - Batchtransformationen |
Wie wird es aufgefüllt? | Prozeduraler Code (INSERT , UPDATE , MERGE partition overwrite using replaceWhere ) |
Deklarativer Code, einschließlich: - Anfügen von Datenströmen - APPLY CHANGES Streams - Einmal fließt |
Deklarative Abfragen |
Was ist der Objekttyp im Unity-Katalog? | Tabelle | Tabelle | Sicht |
Wer kann es aktualisieren? | Jeder Writer, der eine Delta-Tabelle aktualisieren kann. | Nur die Pipeline, die die Streamingtabelle definiert, kann sie aktualisieren. | Nur die Pipeline, die die materialisierte Ansicht definiert, kann sie aktualisieren. |
Mit welchen Delta Lake-Features ist es kompatibel? | Unterstützt alle Delta Lake-Features. | Unterstützt nicht: - Flüssigkeitspartitionierung - Predictive Optimization |
Unterstützt nicht: - Flüssigkeitspartitionierung - Predictive Optimization |