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 von Unity Catalog verwaltete Tabellen in Azure Databricks für Delta Lake und Apache Iceberg.

Externe Tabellen

Externe Tabellen verweisen auf 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 Katalogmetadaten entfernt, und die zugrunde liegenden Datendateien bleiben erhalten.

Externe Tabellen des Unity-Katalogs unterstützen die Formate Delta Lake, CSV, JSON, AVRO, LAMINAT, ORC und TEXT. Databricks empfiehlt, das Delta Lake-Format zu verwenden, da es transaktionsbedingte Garantien und Leistungsoptimierungen aufweist, die die anderen Formate nicht verwenden.

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 Arbeiten mit externen Tabellen.

Fremdtabellen

Fremdtabellen (auch als Verbundtabellen bezeichnet) sind schreibgeschützte Tabellen, die von einem fremdkatalog verwaltet werden, der im Unity-Katalog registriert ist. 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 das Delta Lake-Format verwenden, 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:

Funktion Verwaltete Tabellen Externe Tabellen Fremdtabellen
Datenlebenszyklusverwaltung Unity-Katalog verwaltet Sie verwalten Das externe System verwaltet
Speicherort Unity-Katalog verwaltet Sie legen fest Das externe System verwaltet
Automatische Optimierungen Yes Limited No
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 No No
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

Strukturtabellen werden vom älteren Hive-Metastore verwaltet und verwenden Legacymuster, einschließlich Hive SerDe-Codecs und hive SQL-Syntax. Standardmäßig werden tabellen, die mit dem legacy-Hive-Metastore registriert sind, Daten im älteren DBFS-Stamm speichern.

Databricks empfiehlt, alle Tabellen aus dem älteren HMS-Katalog zu Unity-Katalog zu migrieren. Weiter Informationen finden Sie unter Datenbankobjekte im Legacy-Hive-Metastore.

Sie können optional einen Hive-Metaspeicher mit dem Unity-Katalog verbinden und auf die Tabellen als Fremdtabellen im Unity-Katalog zugreifen. 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, aber Hive SerDe-Codecs sind für Azure Databricks nicht optimiert. Registrieren Sie Strukturtabellen nur, wenn Sie Abfragen zu Daten unterstützen müssen, 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.