Freigeben über


Verwenden des Databricks-Connectors zum Herstellen einer Verbindung mit einem anderen Databricks-Arbeitsbereich

Dieser Artikel enthält Syntaxbeispiele für die Verwendung des Databricks-Connectors zum Herstellen einer Verbindung mit einem anderen Databricks-Arbeitsbereich. Dieser Connector nutzt den Databricks JDBC-Treiber, der in Databricks Runtime 13.3 LTS und höher enthalten ist.

Von Bedeutung

Für die meisten Datenfreigabevorgänge empfiehlt Databricks die Delta-Freigabe. Weitere Informationen finden Sie unter Was ist Delta Sharing?. Sie können auch lakehouse Federation bevorzugen, um Abfragen zu Daten in anderen Databricks-Arbeitsbereichen zu verwalten. Siehe Was ist Lakehouse Federation?.

Herstellen einer Verbindung mit einem anderen Databricks-Arbeitsbereich

Mit dem Databricks Spark-Connector können Sie eine Verbindung mit Computeressourcen herstellen, die in einem anderen Databricks-Arbeitsbereich konfiguriert sind, und Ergebnisse an Ihren aktuellen Azure Databricks-Arbeitsbereich zurückgeben. Sie benötigen Zugriff auf die aktive Berechnung in beiden Arbeitsbereichen, damit Abfragen erfolgreich ausgeführt werden können.

Der JDBC-Treiber ist für jdbc:databricks:// URLs registriert. Sie müssen ein persönliches Zugriffstoken konfigurieren und verwenden, das Ihnen Berechtigungen für die Arbeitsbereichsressourcen gewährt, auf die remote zugegriffen wird. Siehe die Tokenverwaltungs-API.

Hinweis

Wenn Sie eine Databricks JDBC-Bibliothek an Ihren Cluster angeschlossen haben, wird die angeschlossene Bibliotheksversion Ihres Clusters anstelle der Version verwendet, die in Databricks Runtime enthalten ist.

Lesen von Daten aus einem anderen Databricks-Arbeitsbereich

Sie können das Format databricks für die Verwendung des Databricks Spark-Connectors angeben, wenn Sie Daten lesen, wie im folgenden Beispiel gezeigt:

df = (spark.read
  .format("databricks")
  .option("host", "adb-<workspace-id>.<random-number>.azuredatabricks.net")
  .option("httpPath", "/sql/1.0/warehouses/<warehouse-id>")
  .option("personalAccessToken", "<auth-token>")
  .option("dbtable", "<table-name>")
  .load()
)

Erstellen einer externen Tabelle in einem anderen Databricks-Arbeitsbereich

Sie können eine externe Tabelle in einem Azure Databricks-Arbeitsbereich registrieren, der mit einem separaten Databricks-Arbeitsbereich verknüpft ist.

Das folgende Beispiel veranschaulicht diese Syntax, indem die Funktion secret verwendet wird, um Anmeldeinformationen abzurufen, die als Geheimnisse von Databricks gespeichert sind.

Hinweis

Weitere Informationen zu Databricks-Geheimnissen finden Sie unter secret Funktion.

CREATE TABLE databricks_external_table
USING databricks
OPTIONS (
  host 'adb-<workspace-id>.<random-number>.azuredatabricks.net',
  httpPath '/sql/1.0/warehouses/<warehouse-id>',
  personalAccessToken secret('<scope>', '<token>'),
  dbtable '<table-name>'
);