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.

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 transaktionale Speicherebene hinzu, die Metadaten nachverfolgt und ACID-Konformität (Atomicity, Consistency, Isolation, and Durability), Time Travel 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
foreign Ein externer System- oder Katalogdienst Schreibgeschützt Nein Nein

Informationen zum Auswählen des richtigen Tabellentyps für Ihren Anwendungsfall finden Sie unter Auswählen eines Tabellentyps.

Verwaltete Tabellen

Bei verwalteten Tabellen verwaltet Unity Catalog sowohl die Datendateien als auch die Tabellenmetadaten. Die Datendateien werden im verwalteten Speicherort des Unity-Katalogs im Cloudspeicher gespeichert. 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.

Das folgende Beispiel zeigt eine verwaltete Tabelle mit dem Namen prod.people_ops_employees Daten zu fünf Mitarbeitern:

Beispieltabelle mit Mitarbeiterdaten

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.

Auswählen eines Tabellentyps

Verwenden Sie verwaltete Tabellen für die meisten neuen Tabellen. Azure Databricks automatisiert Optimierung, Speicherlebenszyklusverwaltung und externen Zugriff.

Verwenden Sie externe Tabellen in folgenden Fällen:

  • Sie müssen vorhandene Daten im Cloudspeicher registrieren, ohne sie zu verschieben.
  • Sie benötigen direkten pfadbasierten Zugriff von Nicht-Azure-Databricks-Clients.
  • Sie arbeiten mit Dateiformaten, die von verwalteten Tabellen wie CSV oder JSON nicht unterstützt werden.
  • Das Ablegen der Tabelle sollte die zugrunde liegenden Datendateien nicht löschen.

Verwenden Sie Fremdtabellen, wenn Sie schreibgeschützten Zugriff auf Daten in einem externen System benötigen, das über Lakehouse Federation verbunden ist, z. B. einen Hive-Metastore oder AWS-Glue-Katalog.

Für das Speicherformat ist Delta Lake die Standardeinstellung und wird für die meisten Workloads empfohlen. Verwenden Sie Apache Iceberg bei der Integration in externe Systeme, die das Iceberg-Format erfordern.

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 für das enthaltende Schema
Eine Tabelle abfragen SELECT auf der Tabelle
Aktualisieren, Löschen, Zusammenführen oder Einfügen von Daten in eine Tabelle SELECT und MODIFY für die Tabelle
Tabelle löschen MANAGE auf der Tabelle
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.