Tabellenkonzepte in Azure Databricks

Azure Databricks unterstützt drei primäre Tabellentypen (verwaltet, extern und fremd) und zwei offene Speicherformate (Delta Lake und Apache Iceberg). Wenn Sie die richtige Kombination auswählen, wird bestimmt, wie Daten gespeichert, geregelt und optimiert werden.

Eine Azure Databricks-Tabelle befindet sich in einem Schema und enthält Datenzeilen. Der in Azure Databricks erstellte Standardtabellentyp ist eine verwaltete Unity-Katalogtabelle.

Beispiel für verwaltete Tabelle

Das folgende Beispiel zeigt eine verwaltete Tabelle mit dem Namen prod.people_ops_employees Daten zu fünf Mitarbeitern. Bei verwalteten Tabellen werden die Datendateien im verwalteten Speicherort des Unity-Katalogs im Cloudspeicher gespeichert.

Beispieltabelle mit Mitarbeiterdaten

Speicherformate

Speicherformate definieren, wie Daten physisch strukturiert und im Objektspeicher nachverfolgt werden.

Azure Databricks unterstützt zwei primäre Speicherformate für offene Tabellen:

  • Delta Lake ist das Standardspeicherformat für verwaltete und externe Tabellen in Azure Databricks. Delta wird auch für ausländische Tabellen unterstützt.
  • Apache Iceberg wird für verwaltete und fremde Tabellen in Azure Databricks unterstützt. Dieses Format ist nützlich, wenn Sie sich in das Iceberg-Ökosystem integrieren.

Beide Formate fügen eine Transaktionsspeicherebene hinzu, die Metadaten verfolgt und Atomität, Konsistenz, Isolation und Haltbarkeit (ACID) Compliance, Zeitreise und andere Features unterstützt.

Tabellentypen

Tabellentypen in Azure Databricks definieren, wem Daten gehören und wie auf sie zugegriffen wird.

Azure Databricks unterstützt drei primäre Tabellentypen. Tabellentypen werden durch den Katalog bestimmt, der die zugrunde liegenden Datendateien besitzt und verwaltet, wie in der folgenden Tabelle beschrieben:

Tabellentyp Verwalten des Katalogs Lese-/Schreibunterstützung Leistungsoptimierung Optimierung der Speicherkosten
Verwaltet Unity-Katalog Yes Yes Yes
Temporär Keine (sitzungsgebundene verwaltete Tabelle) Yes Yes Yes
Äußerlich Keine (nur Dateien) Yes Nur manuell Nur manuell
Ausländisch Ein externer System- oder Katalogdienst Schreibgeschützt Nein Nein

Verwaltete Tabellen

Bei verwalteten Tabellen verwaltet Unity Catalog sowohl die Datendateien als auch die Tabellenmetadaten. Verwaltete Tabellen im Unity-Katalog sind die Standardtabellen, wenn Sie Tabellen in Azure Databricks erstellen.

Databricks empfiehlt, verwaltete Tabellen immer dann zu verwenden, wenn Sie eine neue Tabelle erstellen. Verwaltete Tabellen implementieren automatisch Leistungsverbesserungen, reduzieren Speicher- und Computekosten und ermöglichen den Zugriff auf externe Systeme, z. B. Trino. Siehe verwaltete Tabellen.

Externe Tabellen

Externe Tabellen, manchmal auch als nicht verwaltete Tabellen bezeichnet, Referenzdaten, die in einem externen Speichersystem gespeichert sind, z. B. Cloudobjektspeicher. Azure Databricks registriert die Tabellenmetadaten, verwaltet jedoch nicht die zugrunde liegenden Datendateien. Unity Catalog unterstützt externe Tabellen in mehreren Formaten, einschließlich Delta Lake, mit denen Sie sie mit externen Systemen lesen können. Siehe externe Tabellen.

Fremdtabellen

Fremdtabellen stellen Daten dar, die in externen Systemen gespeichert sind, die mit Azure Databricks über lakehouse Federation verbunden sind. Fremdtabellen sind in Azure Databricks schreibgeschützt. Siehe Fremdtabellen.

Temporäre Tabellen

Temporäre Tabellen sind sitzungsbezogene Tabellen, in denen Daten für die Dauer einer Azure Databricks-Sitzung gespeichert werden. Sie sind nützlich, um Zwischenergebnisse zu materialisieren, ohne permanente Tabellen in Ihrem Katalog zu erstellen. Azure Databricks legt temporäre Tabellen automatisch ab, wenn die Sitzung endet, und Sie benötigen keine Katalog- oder Schemaberechtigungen, um sie zu erstellen. Siehe Temporäre Tabellen in Databricks SQL und Databricks Runtime.

Tabellen im Unity-Katalog

In Unity Catalog befinden sich Tabellen auf der dritten Ebene des dreistufigen Namespace (catalog.schema.table), wie im folgenden Diagramm dargestellt:

Unity Catalog-Objektmodelldiagramm, das sich auf die Tabelle konzentriert

Grundlegende Tabellenberechtigungen

Die meisten Tabellenvorgänge erfordern USE CATALOG und USE SCHEMA Berechtigungen für den Katalog und das Schema, das eine Tabelle enthält.

In der folgenden Tabelle sind die zusätzlichen Berechtigungen zusammengefasst, die für allgemeine Tabellenvorgänge im Unity-Katalog erforderlich sind:

Operation Erlaubnisse
Erstellen einer Tabelle CREATE TABLE auf dem enthaltenden Schema
Eine Tabelle abfragen SELECT auf dem Tisch
Aktualisieren, Löschen, Zusammenführen oder Einfügen von Daten in eine Tabelle SELECT und MODIFY auf der Tabelle
Tabelle löschen MANAGE auf dem Tisch
Ersetzen einer Tabelle MANAGE auf der Tabelle, CREATE TABLE auf dem enthaltenden Schema

Eine SQL-Syntaxreferenz für diese Vorgänge finden Sie unter:

Weitere Informationen zu Unity-Katalogberechtigungen finden Sie unter Verwalten von Berechtigungen im Unity-Katalog.