Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
- Aktivieren Sie den Zugriff auf externe Daten für Ihren Metastore. Siehe Aktivieren des externen Datenzugriffs im Metastore.
- Gewähren Sie dem Verantwortlichen, der die Integration konfiguriert, das
EXTERNAL USE SCHEMA-Privileg für das Schema, das die Objekte enthält. Siehe Gewähren von Hauptbenutzerberechtigungen im Unity-Katalog. - Authentifizieren Sie sich mit einer der folgenden Methoden:
- OAuth-Computer-zu-Computer-Authentifizierung (M2M): Unterstützt die automatische Aktualisierung von Anmeldeinformationen und Token für lange ausgeführte Spark-Aufträge (>1 Stunde). Siehe Autorisieren des Dienstprinzipalzugriffs auf Azure Databricks mit OAuth.
- Persönliches Zugriffstoken (PAT): Siehe Autorisieren des Zugriffs auf Azure Databricks-Ressourcen.
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:
- Unity Catalog Spark-Clientversion 0.3.1 oder höher (
io.unitycatalog:unitycatalog-spark) - Apache Spark 4.0 oder höher
- Delta Lake Spark 4.0.1 oder höher mit OAuth-Unterstützung
- Ein OAuth M2M-Dienstprinzipal mit entsprechenden Berechtigungen. Siehe Autorisieren des Dienstprinzipalzugriffs auf Azure Databricks mit OAuth.
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:
-
<uc-catalog-name>: Der Name des Katalogs im Unity-Katalog, der Ihre Tabellen enthält. -
<oauth-token-endpoint>: OAuth-Tokenendpunkt-URL. So erstellen Sie diese URL:- Suchen Sie Ihre Azure Databricks-Konto-ID. Siehe So finden Sie Ihre Konto-ID.
- Verwenden Sie das Format:
https://accounts.cloud.databricks.com/oidc/accounts/<account-id>/v1/token
-
<oauth-client-id>: OAuth-Client-ID für Ihren Dienstprinzipal. Siehe Autorisieren des Dienstprinzipalzugriffs auf Azure Databricks mit OAuth. -
<oauth-client-secret>: Der geheime OAuth-Clientschlüssel für Ihren Dienstprinzipal. Siehe Autorisieren des Dienstprinzipalzugriffs auf Azure Databricks mit OAuth.
-
<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-connectorbietet Unterstützung für Google Cloud Storage. Laden Sie das JAR separat herunter, und verweisen Sie darauf mitspark.jars.
-
AWS:
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.