Freigeben über


Lesen von Tabellen in Azure Databricks über Delta Lake-Clients

Diese Seite bietet eine Übersicht über die Verwendung der Unity-REST-API für den Zugriff auf verwaltete und externe Tabellen aus externen Delta Lake-Clients. Informationen zum Erstellen externer Delta Lake-Tabellen aus externen Clients finden Sie unter Erstellen externer Delta-Tabellen aus externen Clients.

Verwenden Sie den Iceberg REST-Katalog , um Unity Catalog-registrierte Tabellen in Azure Databricks von unterstützten Iceberg-Clients zu lesen, einschließlich Apache Spark und DuckDB.

Eine vollständige Liste der unterstützten Integrationen finden Sie unter Unity Catalog-Integrationen.

Tipp

Informationen zum Lesen von Azure Databricks-Daten mit Microsoft Fabric finden Sie unter Verwenden von Microsoft Fabric zum Lesen von Daten, die im Unity-Katalogregistriert sind.

Lesen und Schreiben mithilfe der Unity-REST-API

Die Unity-REST-API bietet externen Clients Lesezugriff auf Tabellen, die im Unity-Katalog registriert sind. Einige Clients unterstützen auch das Erstellen von Tabellen und das Schreiben in vorhandene Tabellen.

Konfigurieren Sie den Zugriff mithilfe Ihrer Arbeitsbereichs-URL. Der Unity Catalog Spark-Client leitet Anforderungen automatisch an den entsprechenden Unity-Katalog-API-Endpunkt weiter.

Von Bedeutung

Die arbeitsbereichs-URL, die für den Unity-REST-API-Endpunkt verwendet wird, muss die Arbeitsbereichs-ID enthalten. Ohne die Arbeitsbereichs-ID geben API-Anforderungen möglicherweise eine 303 Umleitung zu einer Anmeldeseite anstelle der erwarteten Antwort zurück.

Informationen zum Suchen Ihrer Arbeitsbereichs-URL und Arbeitsbereichs-ID finden Sie unter Arbeitsbereichsinstanznamen, URLs und IDs.

Anforderungen

Azure Databricks unterstützt den Unity-REST-API-Zugriff auf Tabellen als Teil des Unity-Katalogs. Sie müssen den Unity-Katalog in Ihrem Arbeitsbereich aktiviert haben, um diese Endpunkte zu verwenden. Die folgenden Tabellentypen sind für Unity-REST-API-Lesevorgänge berechtigt:

  • Verwaltete Tabellen im Unity-Katalog
  • Externe Tabellen im Unity-Katalog.

Sie müssen die folgenden Konfigurationsschritte ausführen, um den Zugriff auf das Lesen von Azure-Databricks-Objekten von Delta-Lake-Clients mithilfe der Unity-REST-API zu konfigurieren:

Lesen von Delta Lake-Tabellen mit Apache Spark mit OAuth-Authentifizierung

Azure Databricks unterstützt die OAuth-Computer-zu-Computer-Authentifizierung (M2M). OAuth verarbeitet automatisch die Tokenerneuerung für die Unity-Katalogauthentifizierung. Aktivieren Sie für lang andauernde Aufträge, für die auch eine automatische Verlängerung der Anmeldeinformationen für Cloudspeicher erforderlich ist, die spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled Einstellung in Ihrer Spark-Konfiguration.

OAuth-Authentifizierung für externe Apache Spark-Clients erfordert:

Die folgende Konfiguration ist erforderlich, um verwaltete Tabellen des Unity-Katalogs und externe Delta Lake-Tabellen mit Apache Spark mithilfe der OAuth-Authentifizierung zu lesen:

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled": "true",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"

Ersetzen Sie die folgenden Variablen:

  • <workspace-url>: Die Azure Databricks-Arbeitsbereichs-URL, einschließlich der Arbeitsbereichs-ID. Beispiel: adb-1234567890123456.12.azuredatabricks.net.

Hinweis

Die oben gezeigten Paketversionen sind ab dem letzten Update auf dieser Seite aktuell. Neuere Versionen sind möglicherweise verfügbar. Stellen Sie sicher, dass Paketversionen mit Ihrer Spark-Version kompatibel sind.

Lesen von Delta Lake-Tabellen mit Apache Spark mithilfe der PAT-Authentifizierung

Von Bedeutung

Databricks empfiehlt die Verwendung von OAuth anstelle von PATs für die Benutzerkontoauthentifizierung, da OAuth eine stärkere Sicherheit bietet. Informationen zum Authentifizieren mit einem Databricks-Benutzerkonto mithilfe von OAuth finden Sie unter Autorisieren des Benutzerzugriffs auf Azure Databricks mit OAuth.

Konfiguration

Die folgenden Pakete oder JARs müssen in Ihrer Spark-Konfiguration enthalten sein:

  • Delta Lake Spark (io.delta:delta-spark): Bietet Delta Lake-Unterstützung für Apache Spark.
  • Unity Catalog Spark Connector (io.unitycatalog:unitycatalog-spark): Verbindet Apache Spark mit Dem Unity-Katalog.
  • Cloudspeicher-Connector: Erforderlich für den Zugriff auf den Cloud-Objektspeicher, der als Basis für Ihre Tabellen dient. Der Connector hängt von Ihrem Cloudanbieter ab:
    • AWS: org.apache.hadoop:hadoop-aws – bietet S3-Dateisystemunterstützung.
    • Azure: org.apache.hadoop:hadoop-azure – bietet Unterstützung für Azure Data Lake Storage Gen2.
    • GCP: JAR – gcs-connector bietet Unterstützung für Google Cloud Storage. Laden Sie das JAR separat herunter, und verweisen Sie darauf mit spark.jars.

Weitere cloudspezifische Konfigurationen finden Sie in der Dokumentation zu Unity Catalog OSS.

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"

:::

Variablen

Ersetzen Sie die folgenden Variablen in der Konfiguration:

  • <uc-catalog-name>: Der Name des Unity-Katalogkatalogs, der Ihre Tabellen enthält.
  • <token>: Persönliches Zugriffstoken (PAT) für den Hauptverantwortlichen, der die Integration konfiguriert.
  • <workspace-url>: Die Azure Databricks-Arbeitsbereichs-URL, einschließlich der Arbeitsbereichs-ID. Beispiel: adb-1234567890123456.12.azuredatabricks.net.

Erneuerung der Zugangsdaten

Um die automatische Verlängerung der Anmeldeinformationen für lang andauernde Aufgaben zu aktivieren, fügen Sie die folgende Konfiguration hinzu:

"spark.sql.catalog.<catalog-name>.renewCredential.enabled": true

Hinweis

Die oben gezeigten Paketversionen sind ab dem letzten Update auf dieser Seite aktuell. Neuere Versionen sind möglicherweise verfügbar. Stellen Sie sicher, dass Paketversionen mit Ihren Databricks-Runtime- und Spark-Versionen kompatibel sind.