Databricks Unity Catalog-Tabellentypen

Unity Catalog unterstützt drei primäre Tabellentypen: verwaltete, externe und fremdtabellen. Jeder Typ unterscheidet sich darin, wie Daten gespeichert, verwaltet und gesteuert werden.

Verwaltete Tabellen

Verwaltete Tabellen sind der Standard- und empfohlener Tabellentyp. Unity Catalog verwaltet den Datenlebenszyklus, den Speicherort und die Optimierungen. Wenn Sie eine verwaltete Tabelle ablegen, werden sowohl die Metadaten als auch die zugrunde liegenden Datendateien gelöscht.

Verwaltete Tabellen werden von Delta Lake oder Apache Iceberg unterstützt und bieten Folgendes:

  • Automatische Optimierung für reduzierte Speicher- und Berechnungskosten
  • Schnellere Abfrageleistung für alle Clienttypen
  • Automatische Tabellenwartung
  • Sicherer Zugriff für Nicht-Databricks-Clients über offene APIs
  • Automatische Upgrades auf die neuesten Plattformfeatures

Datendateien werden im Schema oder Katalog gespeichert, das die Tabelle enthält. Siehe verwaltete Tabellen im Unity-Katalog in Azure Databricks für Delta Lake und Apache Iceberg.

Externe Tabellen

Externe Tabellen registrieren Daten, die im von Ihnen verwalteten Cloudobjektspeicher gespeichert sind. Unity Catalog steuert den Datenzugriff, verwaltet jedoch nicht den Datenlebenszyklus, Optimierungen oder das Speicherlayout. Wenn Sie eine externe Tabelle ablegen, werden nur die Metadaten entfernt – die zugrunde liegenden Datendateien bleiben erhalten.

Externe Tabellen des Unity-Katalogs unterstützen das Delta Lake-Format (empfohlen) und CSV-, JSON-, AVRO-, PARTS-, ORC- und TEXT-Formate. Externe nicht-Delta-Tabellen bieten nicht die Transaktionsgarantien und Leistungsoptimierungen von Delta Lake.

Verwenden Sie externe Tabellen, wenn Sie Folgendes benötigen:

  • Registrieren vorhandener Daten, die nicht mit verwalteten Tabellen im Unity-Katalog kompatibel sind
  • Ermöglichen des direkten Datenzugriffs für Nicht-Databricks-Clients, die keine anderen externen Zugriffsmuster unterstützen.

Weitere Informationen finden Sie unter Verwenden verwalteter Tabellen.

Fremdtabellen

Fremdtabellen (auch als Verbundtabellen bezeichnet) werden mithilfe des Unity-Katalogs als Teil eines fremden Katalogs registriert. Externe Systeme verwalten die Daten und Metadaten, während Unity Catalog eine Datenverwaltung zur Abfrage hinzufügt.

Azure Databricks unterstützt zwei Methoden zum Registrieren fremder Tabellen:

  • Query Federation: Verwendet sichere Datenbankverbindungen zu externen Datensystemen wie PostgreSQL und MySQL
  • Katalogverbund: Verbindet externe Kataloge mit Abfragen von Daten direkt im Dateispeicher

Fremdtabellen, die von Delta Lake unterstützt werden, fehlen viele Optimierungen, die in verwalteten Tabellen im Unity-Katalog verfügbar sind. Migrieren Sie für Produktionsworkloads oder häufig abgefragte Datasets zu verwalteten Tabellen im Unity-Katalog, um eine bessere Leistung zu erzielen. Siehe "Arbeiten mit Fremdtabellen".

Vergleich von Tabellentypen

In der folgenden Tabelle werden die drei Tabellentypen verglichen:

Merkmal Verwaltete Tabellen Externe Tabellen Fremdtabellen
Datenlebenszyklusverwaltung Unity-Katalog verwaltet Sie verwalten Das externe System verwaltet
Lagerort Unity-Katalog verwaltet Sie legen fest Das externe System verwaltet
Automatische Optimierungen Yes Begrenzt Nein
Unterstützte Formate Delta Lake, Apache Iceberg Delta Lake (empfohlen), CSV, JSON, AVRO, PARKETT, ORC, TEXT Hängt vom externen System ab
Daten gelöscht am DROP TABLE Yes Nein Nein
Am besten geeignet für: Produktionsworkloads, häufig abgefragte Daten Legacy-Integrationen, vorhandene Daten Migration von externen Systemen, temporärer Zugriff

Andere Tabellentypen

Azure Databricks unterstützt auch spezielle Tabellentypen für bestimmte Anwendungsfälle:

  • Streamingtabellen: Lakeflow Spark Declarative Pipelines-Datensätze, unterstützt von Delta Lake mit inkrementeller Verarbeitungslogik
  • Materialisierte Ansichten: Lakeflow Spark Declarative Pipelines-Datasets, die von Delta Lake unterstützt werden, die Abfrageergebnisse mit verwalteter Flusslogik materialisieren

Ältere Tabellentypen

Die folgenden Legacytabellentypen werden aus Gründen der Abwärtskompatibilität unterstützt, werden jedoch nicht für die neue Entwicklung empfohlen.

Hive-Tabellen

Hive-Tabellen verwenden Legacymuster, inklusive des Legacy Hive Metastore, Hive SerDe-Codecs oder Hive SQL-Syntax. Standardmäßig werden tabellen, die mit dem legacy-Hive-Metastore registriert sind, Daten im älteren DBFS-Stamm speichern.

Migrieren Sie alle Tabellen aus dem älteren HMS-Katalog zu Unity-Katalog. Weiter Informationen finden Sie unter Datenbankobjekte im Legacy-Hive-Metastore. Sie können optional einen Hive-Metaspeicher mit dem Unity-Katalog verbinden. Siehe Hive-Metastore-Föderation: Aktivieren Sie den Unity-Katalog, um Tabellen zu verwalten, die in einem Hive-Metaspeicher registriert sind.

Apache Spark unterstützt das Registrieren und Abfragen von Hive-Tabellen, diese Codecs sind jedoch nicht für Azure Databricks optimiert. Registrieren Sie Hive-Tabellen nur, um Abfragen für Daten zu unterstützen, die von externen Systemen geschrieben wurden. Siehe Hive-Tabelle (Legacy).

Livetabellen

Der Begriff "Livetabellen " bezieht sich auf eine frühere Implementierung von Funktionen, die jetzt als materialisierte Ansichten verfügbar sind. Aktualisieren Sie Legacy-Code, der auf Live-Tabellen verweist, um die Syntax für materialisierte Ansichten zu verwenden. Siehe Lakeflow Spark Declarative Pipelines und Materialized views.