Was ist Lakehouse Federation?

In diesem Artikel wird Lakehouse Federation vorgestellt, die Abfrageverbundplattform, mit deren Hilfe Sie Azure Databricks zum Ausführen von Abfragen für mehrere externe Datenquellen verwenden können. Außerdem wird beschrieben, wie Sie Lakehouse Federation-Verbindungen einrichten und fremde Kataloge in Ihrem Unity Catalog-Metastore erstellen.

Was ist Lakehouse Federation?

Lakehouse Federation ist die Abfrageverbundplattform für Azure Databricks. Der Begriff Abfrageverbund beschreibt eine Sammlung von Features, mit deren Hilfe Benutzer und Systeme Abfragen für mehrere isolierte Datenquellen ausführen können, ohne alle Daten in ein einheitliches System migrieren zu müssen.

Azure Databricks verwendet zum Verwalten des Abfrageverbunds Unity Catalog. Sie konfigurieren schreibgeschützte Verbindungen mit gängigen Datenbanklösungen mithilfe von Treibern, die in Pro SQL Warehouses, serverlosen SQL-Warehouses und Databricks Runtime-Clustern enthalten sind. Die Tools für Datengovernance und Datenherkunft von Unity Catalog stellen sicher, dass der Datenzugriff für alle Verbundabfragen verwaltet und überwacht wird, die von den Benutzern in Ihren Azure Databricks-Arbeitsbereichen durchgeführt werden.

Warum sollten Sie Lakehouse Federation verwenden?

Ein Lakehouse dient vorranging der zentralen Speicherung von Daten, um Datenredundanz und -isolation zu reduzieren. Ihre Organisation verfügt möglicherweise über mehrere Datensysteme in der Produktion, und Sie möchten Daten in verbundenen Systemen aus verschiedenen Gründen abfragen:

  • Ad-hoc-Berichterstellung.
  • Proof of Concept-Arbeiten.
  • Die explorative Phase neuer ETL-Pipelines oder -Berichte.
  • Unterstützung von Workloads während der inkrementellen Migration.

In jedem dieser Szenarien erhalten Sie durch den Abfrageverbund schneller Erkenntnisse, da Sie die Daten an ihrem Aufbewahrungsort abfragen und eine komplexe und zeitaufwendige ETL-Verarbeitung vermeiden können.

Ein Lakehouse-Verbund ist für folgende Anwendungsfälle gedacht:

  • Sie möchten keine Daten in Azure Databricks erfassen.
  • Sie möchten, dass Ihre Abfragen von der Verarbeitung im externen Datenbanksystem profitieren.
  • Sie möchten die Vorteile von Unity Catalog-Schnittstellen und Datengovernance einschließlich differenzierter Zugriffssteuerung, Datenherkunft und Suche nutzen.

Übersicht über die Einrichtung von Lakehouse Federation

Um ein Dataset für schreibgeschützte Abfragen mithilfe von Lakehouse Federation verfügbar zu machen, erstellen Sie Folgendes:

  • Eine Verbindung, ein sicherungsfähiges Objekt in Unity Catalog, das einen Pfad und Anmeldeinformationen für den Zugriff auf ein externes Datenbanksystem angibt.
  • Einen fremden Katalog, ein sicherungsfähiges Objekt in Unity Catalog, das eine Datenbank in einem externen Datensystem spiegelt, sodass Sie schreibgeschützte Abfragen in diesem Datensystem in Ihrem Azure Databricks-Arbeitsbereich ausführen und den Zugriff mithilfe von Unity Catalog verwalten können.

Unterstützte Datenquellen

Lakehouse Federation unterstützt Verbindungen mit den folgenden Datenbanktypen:

Verbindungsanforderungen

Anforderungen an den Arbeitsbereich:

  • Der Arbeitsbereich muss für Unity Catalog aktiviert sein.

Computeanforderungen:

  • Netzwerkkonnektivität zwischen Ihrem Databricks Runtime-Cluster oder SQL-Warehouse und den Zieldatenbanksystemen. Weitere Informationen finden Sie unter Netzwerkempfehlungen für Lakehouse Federation.
  • Azure Databricks-Cluster müssen Databricks Runtime 13.3 LTS oder höher und den Clusterzugriffsmodus „Freigegeben“ oder „Einzelbenutzer“ verwenden.
  • SQL-Warehouses müssen Pro- oder serverlose Warehouses sein und 2023.40 oder höher verwenden.

Erforderliche Berechtigungen:

  • Um eine Verbindung zu erstellen, müssen Sie Metastore-Administrator oder Benutzer mit der Berechtigung „CREATE CONNECTION“ für den Unity Catalog-Metastore sein, der an den Arbeitsbereich angefügt ist.
  • Um einen Fremdkatalog zu erstellen, müssen Sie über die Berechtigung „CREATE CATALOG“ für den Metastore verfügen und entweder der Besitzer der Verbindung sein oder über die Berechtigung „CREATE FOREIGN CATALOG“ für die Verbindung verfügen.

In jedem folgenden aufgabenbasierten Abschnitt werden zusätzliche Berechtigungsanforderungen angegeben.

Erstellen einer Verbindung

Eine Verbindung gibt einen Pfad und Anmeldeinformationen für den Zugriff auf ein externes Datenbanksystem an. Zum Erstellen einer Verbindung können Sie den Katalog-Explorer oder den SQL-Befehl „CREATE CONNECTION“ in einem Azure Databricks-Notebook oder im Databricks SQL-Abfrage-Editor verwenden.

Hinweis

Sie können auch die Databricks-REST-API oder die Databricks CLI verwenden, um eine Verbindung zu erstellen. Siehe POST /api/2.1/unity-catalog/connections und Unity Catalog-Befehle.

Erforderliche Berechtigungen: Metastore-Administrator oder Benutzer mit der Berechtigung „CREATE CONNECTION“.

Katalog-Explorer

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Symbol „Katalog“ Katalog.

  2. Klicken Sie oben im Bereich Katalog auf das Symbol Symbol zum Hinzufügen bzw. Plussymbol Hinzufügen, und wählen Sie im Menü Verbindung hinzufügen aus.

    Klicken Sie alternativ auf der Seite Schnellzugriff auf die Schaltfläche Externe Daten >, navigieren Sie zur Registerkarte Verbindungen, und klicken Sie auf Verbindung erstellen.

  3. Geben Sie einen benutzerfreundlichen Verbindungsnamen ein.

  4. Wählen Sie den Verbindungstyp (Datenbankanbieter, z. B. MySQL oder PostgreSQL) aus.

  5. Geben Sie die Verbindungseigenschaften ein (z. B. Hostinformationen, Pfad und Anmeldeinformationen für den Zugriff).

    Jeder Verbindungstyp erfordert unterschiedliche Verbindungsinformationen. Lesen Sie den Artikel zu Ihrem Verbindungstyp, der im Inhaltsverzeichnis auf der linken Seite aufgeführt ist.

  6. (Optional) Klicken Sie auf Verbindung testen, um zu überprüfen, ob sie funktioniert.

  7. (Optional) Fügen Sie einen Kommentar hinzu.

  8. Klicken Sie auf Erstellen.

SQL

Führen Sie den folgenden Befehl in einem Notebook oder im SQL-Abfrage-Editor aus. Dieses Beispiel gilt für Verbindungen mit einer PostgreSQL-Datenbank. Die Optionen unterscheiden sich je nach Verbindungstyp. Lesen Sie den Artikel zu Ihrem Verbindungstyp, der im Inhaltsverzeichnis auf der linken Seite aufgeführt ist.

CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

Es wird empfohlen, Aure Databricks-Geheimnisse anstelle von Klartext-Zeichenfolgen für vertrauliche Werte wie Anmeldeinformationen zu verwenden. Beispiele:

CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>')
)

Informationen zum Einrichten von Geheimnissen finden Sie unter Verwalten von Geheimnissen.

Informationen zum Verwalten vorhandener Verbindungen finden Sie unter Verwalten von Verbindungen für Lakehouse Federation.

Erstellen eines fremden Katalogs

Ein Fremdkatalog spiegelt eine Datenbank in einem externen Datensystem, sodass Sie Abfragen und die Verwaltung des Zugriffs auf Daten in dieser Datenbank mithilfe von Azure Databricks und Unity Catalog steuern können. Um einen fremden Katalog zu erstellen, verwenden Sie eine Verbindung mit der bereits definierten Datenquelle.

Zum Erstellen eines Fremdkatalogs können Sie den Katalog-Explorer oder den SQL-Befehl CREATE FOREIGN CATALOG in einem Azure Databricks-Notebook oder im SQL-Abfrage-Editor verwenden.

Hinweis

Sie können auch die Unity Catalog-API verwenden. Siehe Azure Databricks-Referenzdokumentation.

Metadaten aus Fremdkatalogen werden bei jeder Interaktion mit dem Katalog mit Unity Catalog synchronisiert. Überprüfen Sie für die Datentypzuordnung zwischen Unity Catalog und der Datenquelle den Abschnitt Datentypzuordnungen in der Dokumentation der jeweiligen Datenquellen.

Erforderliche Berechtigungen: Sie benötigen die Berechtigung CREATE CATALOG für den Metastore und entweder Besitzer der Verbindung sein oder die Berechtigung CREATE FOREIGN CATALOG für diese haben.

Katalog-Explorer

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Katalogsymbol Katalog, um den Katalog-Explorer zu öffnen.

  2. Klicken Sie oben im Bereich Katalog auf das Symbol Symbol zum Hinzufügen bzw. Plussymbol Hinzufügen, und wählen Sie im Menü Katalog hinzufügen aus.

    Klicken Sie alternativ auf der Seite Schnellzugriff auf die Schaltfläche Kataloge, und klicken Sie dann auf die Schaltfläche Katalog erstellen.

  3. Befolgen Sie die Anweisungen zum Erstellen von Fremdkataloge unter Erstellen von Katalogen.

SQL

Führen Sie den folgenden SQL-Befehl in einem Notebook oder im SQL-Abfrage-Editor aus. Elemente in Klammern sind optional. Ersetzen Sie folgende Platzhalterwerte:

  • <catalog-name>: Name für den Katalog in Azure Databricks.
  • <connection-name>: Das Verbindungsobjekt, das die Datenquelle, den Pfad und die Anmeldeinformationen für den Zugriff angibt.
  • <database-name>: Name der Datenbank, die sie als Katalog in Azure Databricks spiegeln möchten. Nicht erforderlich für MySQL, das einen Namespace mit zwei Ebenen verwendet.
  • <external-catalog-name>: Databricks zu Databricks: Name des Katalogs im externen Databricks-Arbeitsbereich, den Sie spiegeln. Weiter Informationen finden Sie unter Erstellen eines fremden Katalogs.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Informationen zum Verwalten und Arbeiten mit fremden Katalogen finden Sie unter Verwalten und Arbeiten mit fremden Katalogen.

Lakehouse Federation und materialisierte Sichten

Databricks empfiehlt das Laden externer Daten mithilfe von Lakehouse Federation, wenn Sie materialisierte Sichten erstellen. Weitere Informationen finden Sie unter Verwenden materialisierter Sichten in Databricks SQL.

Wenn Sie Lakehouse Federation verwenden, können Benutzer*innen wie folgt auf die Verbunddaten verweisen:

CREATE MATERIALIZED VIEW xyz AS SELECT * FROM federated_catalog.federated_schema.federated_table;

Anzeigen der vom System generierten Verbundabfragen

Der Lakehouse-Verbund übersetzt Databricks SQL-Anweisungen in Anweisungen, die in die Verbunddatenquelle übertragen werden können. Um die generierte SQL-Anweisung anzuzeigen, klicken Sie in der Diagrammansicht von Abfrageprofil auf den Scanknoten der fremden Datenquelle, oder führen Sie die SQL-Anweisung EXPLAIN FORMATTED aus. Informationen zur Abdeckung finden Sie im Abschnitt Unterstützter Pushdown in der Dokumentation der jeweiligen Datenquelle.

Begrenzungen

  • Abfragen sind schreibgeschützt.
  • Die Drosselung von Verbindungen wird mithilfe des Databricks SQL-Grenzwerts für gleichzeitige Abfragen ermittelt. Es gibt keinen Grenzwert für Warehouses pro Verbindung. Weitere Informationen finden Sie unter Warteschlangen und automatische Skalierung für klassische und Pro-SQL-Warehouses.
  • Tabellen und Schemas mit ungültigen Namen in Unity Catalog werden nicht unterstützt und von Unity Catalog beim Erstellen eines fremden Katalogs ignoriert. Eine Liste der Benennungsregeln und Einschränkungen finden Sie unter Einschränkungen.
  • Tabellennamen und Schemanamen werden in Unity Catalog in Kleinbuchstaben konvertiert. Bei Suchvorgängen müssen ebenfalls Kleinbuchstaben verwendet werden. Wenn Tabellen oder Schemas mit doppelten Namen in Kleinbuchstaben vorhanden sind, wird nur eine der Tabellen oder Schemas in den fremden Katalog importiert.
  • Azure Databricks plant für jede Fremdtabelle, auf die verwiesen wird, eine Unterabfrage im Remotesystem, um eine Teilmenge von Daten aus dieser Tabelle zurückzugeben, und gibt dann das Ergebnis über einen einzelnen Datenstrom an eine Azure Databricks-Executoraufgabe zurück. Wenn das Resultset zu groß ist, ist für den Executor möglicherweise nicht genügend Arbeitsspeicher vorhanden.
  • Der Einzelbenutzerzugriffsmodus ist nur für Benutzer*innen verfügbar, die die Verbindung besitzen.
  • In Lakehouse Federation kann kein Verbund aus Fremdtabellen und Bezeichnern, bei denen die Groß-/Kleinschreibung beachtet werden muss, für Azure Synapse-Verbindungen oder Redshift-Verbindungen erstellt werden.

Ressourcenkontingente

Azure Databricks erzwingt Ressourcenkontingente für alle sicherungsfähigen Objekte von Unity Catalog. Diese Kontingente werden in den Ressourcengrenzwerten aufgeführt. Fremdkataloge und alle Objekte, die sie enthalten, sind im gesamten Kontingentbedarf enthalten.

Wenn Sie davon ausgehen, dass Sie diese Ressourcengrenzwerte überschreiten, wenden Sie sich an Ihr Azure Databricks-Kontoteam.

Sie können Ihren Kontingentbedarf mithilfe der Unity Catalog-Ressourcenkontingent-APIs überwachen. Weitere Informationen finden Sie unter Überwachen des Bedarfs an Unity-Katalogressourcenkontingenten.

Zusätzliche Ressourcen