Freigeben über


Arbeiten mit Fremdtabellen

Fremdtabellen, die manchmal als Verbundtabellen bezeichnet werden, sind Tabellen, die mithilfe des Unity-Katalogs als Teil eines fremden Katalogs registriert sind. Fremdtabellen enthalten Daten und Metadaten, die von externen Systemen verwaltet werden, und Unity Catalog fügt Datengovernance hinzu, um diese Tabellen abzufragen.

Azure Databricks unterstützt die folgenden Methoden zum Registrieren fremder Tabellen:

  • Abfrageverbund verwendet sichere JDBC-Verbindungen, um mit externen Datensystemen wie PostgreSQL und MySQL zu federieren.
  • Der Katalogverbund verbindet externe Kataloge, z. B. einen Hive-Metastore oder snowflake Horizon-Katalog, um Daten direkt im Dateispeicher abzufragen.

Important

Aus Gründen der Abwärtskompatibilität mit älteren Apache Spark- und Azure Databricks-Workloads geben Fremdtabellen in einem Hive-Metaspeicher Metadaten aus dem Hive-Metaspeicher zurück, einschließlich der Angabe, ob es sich bei der Tabelle um eine verwaltete Hive-Tabelle oder eine externe Strukturtabelle handelt.

Warum eine Fremdtabelle verwenden?

Fremdtabellen bieten Flexibilität bei der Integration von Azure Databricks in vorhandene Datensysteme oder die Migration von älteren Systemen.

Viele fremdtabellen dienen als temporäre Lösung für den direkten Zugriff auf Daten, die nicht von Azure Databricks verwaltet werden, da sie eine schnelle Lösung bereitstellen, ohne dass Datenmigration oder Codeumgestaltung für upstream-ETL-Workflows erforderlich ist. Databricks empfiehlt die Migration von Datasets, die Produktionsworkloads fördern oder häufig zu verwalteten Tabellen im Unity-Katalog abgefragt werden, da verwaltete Tabellen die beste Leistung bieten und viele integrierte Optimierungen aufweisen. Siehe Konvertieren einer Fremdtabelle in eine verwaltete Unity-Katalogtabelle.

Der Abfrageverbund bietet eine kostenlose Lösung zum Laden von Daten aus externen Datensystemen, die von Lakeflow Connect nicht unterstützt werden. Databricks empfiehlt die Verwendung materialisierter Ansichten, um Fremdtabellen in den Unity-Katalog zu replizieren. Siehe Laden von Daten aus Fremdtabellen mit materialisierten Ansichten.

Erstellen oder Schreiben in Fremdtabellen

Wenn Sie über ausreichende Berechtigungen verfügen und Ihr Arbeitsbereich mit einem internen Federated Hive-Metaspeicher konfiguriert ist, können Sie Foreign Tables erstellen oder darauf schreiben, die von diesem internen Federated Hive-Metaspeicher unterstützt werden. Der externe verbundene Hive-Metastore und alle fremden Tabellen, auf die über die Lakehouse Federation zugegriffen wird, sind nur lesbar.

Obwohl Fremdtabellen schreibgeschützt sind, zeigt das Feld "Aktualisiert nach " den Benutzer an, der die letzte Metadatenaktualisierung ausgelöst hat. Azure Databricks aktualisiert während Abfragen automatisch Fremdtabellenmetadaten, wenn erkannt wird, dass die Metadaten veraltet sind. Daher zeigt das Feld "Aktualisiert nach " die current_user Person an, die die Abfrage ausgeführt hat, obwohl dieser Benutzer die zugrunde liegenden Daten nicht geändert hat.

Azure Databricks verwaltet die Metadaten, Daten oder Semantik nicht für Schreibvorgänge in Fremdtabellen. Fremdtabellen können durch ein ACID-kompatibles Format wie Delta Lake oder Apache Iceberg unterstützt werden, ausländische Tabellen bieten jedoch keine transaktionsbasierten Garantien für verwaltete Tabellen im Unity-Katalog.

Die meisten Azure Databricks-Optimierungen für Abfrageleistung, verbesserte Schreibgeschwindigkeit, Datensprung und nur Metadatenabfragen erfordern Unity-Katalog. Databricks empfiehlt, die Lese- und Schreibabfrageleistung zwischen fremdtabellen und verwalteten Tabellen im Unity-Katalog mithilfe der neuesten Databricks-Runtime-Version zu vergleichen, um Latenz- und Kostenunterschiede auszuwerten. Siehe verwaltete Tabellen im Unity-Katalog in Azure Databricks für Delta Lake und Apache Iceberg.