Zugreifen auf Databricks-Tabellen von Delta-Clients

Auf dieser Seite wird beschrieben, wie Sie die Unity-REST-API verwenden, um von externen Delta-Clients aus verwaltete und externe Unity Catalog-Tabellen zu erstellen, zu lesen und in diese zu schreiben. Eine vollständige Liste der unterstützten Integrationen finden Sie unter Unity Catalog-Integrationen.

Tipp

Informationen zum Lesen von Azure Databricks Daten mithilfe von Microsoft Fabric finden Sie unter Microsoft Fabric mit Azure Databricks.

Erstellen, Lesen und Schreiben mithilfe der Unity-REST-API

Von Bedeutung

Das Erstellen von und Schreiben in verwaltete Unity Catalog-Tabellen von Delta-Clients befindet sich in der öffentlichen Vorschau.

Die Unity-REST-API bietet externen Clients Erstellungs-, Lese- und Schreibzugriff auf Tabellen, die in Unity Catalog registriert sind. Konfigurieren Sie den Zugriff mithilfe der Arbeitsbereichs-URL als Endpunkt. Auf die folgenden Tabellentypen kann zugegriffen werden:

Tabellentyp Lesen Sie Schreiben Erstellen
Verwaltetes Delta Ja Ja* Ja*
Externes Delta Ja Ja Ja

* Unterstützt für gemanagte Delta-Tabellen mit Katalog-Commits.

Unterstützte Clients

Apache Spark wird für das Erstellen, Lesen und Schreiben in verwaltete und externe Delta-Tabellen im Unity-Katalog mithilfe der Unity-REST-API unterstützt.

Die folgenden Clients werden in Der Betaversion unterstützt. Wenden Sie sich an Ihr Azure Databricks Kontoteam, wenn Sie daran interessiert sind, sie zu verwenden:

  • Apache Flink
  • DuckDB
  • StreamNative
  • Starburst

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.

Sie müssen auch die folgenden Konfigurationsschritte ausführen, um den Zugriff auf Tabellen von Delta-Clients mithilfe der Unity-REST-API zu konfigurieren:

Einschränkungen

  • Externer Zugriff auf UniForm-Tabellen mit IcebergCompatV3 wird derzeit nicht unterstützt.
  • Externe Clients können weder delta.*- noch databricks.*-Tabelleneigenschaften ändern, Tabellenfunktionen hinzufügen oder entfernen, Spalten umbenennen und CHECK-Constraints hinzufügen oder löschen.
  • Externe Clients können keine Tabellenwartungsvorgänge wie OPTIMIZE, VACUUM und ANALYZE auf verwalteten Delta-Tabellen ausführen.
  • Externe Clients können keine Tabellen mit generierten Spalten, Standardspalten oder Einschränkungsspalten erstellen.
  • Beim Erstellen externer Tabellen empfiehlt Azure Databricks die Verwendung von Apache Spark, um sicherzustellen, dass Spaltendefinitionen in einem Format vorliegen, das mit Apache Spark kompatibel ist. Die API überprüft nicht die Richtigkeit der Spaltenspezifikation. Wenn die Spezifikation nicht mit Apache Spark kompatibel ist, kann Databricks Runtime die Tabellen möglicherweise nicht lesen.

Hinweis

Informationen zum Lesen von Tabellen mit Zeilenfiltern oder Spaltenmasken , die von einem externen Delta-Client angefügt sind, finden Sie unter cross-engine attribute-based access controls (ABAC) für erforderliche Clientversionen und -konfigurationen.

Zugreifen auf Delta-Tabellen mit Apache Spark mithilfe der PAT-Authentifizierung

Die PAT-Authentifizierung für externe Spark-Clients erfordert Folgendes:

  • Unity Catalog Spark-Clientversion 0.5.0 oder höher (io.unitycatalog:unitycatalog-spark)
  • Apache Spark 4.0 oder 4.1
  • Delta Spark 4.3.0 oder höher
  • Ein persönliches Zugriffstoken für den Prinzipal, der auf Unity Catalog zugreift. Siehe Zugriff auf Azure Databricks-Ressourcen autorisieren.

Die folgende Konfiguration ist erforderlich, um in Unity Catalog verwaltete und externe Delta-Tabellen mit Apache Spark mithilfe der PAT-Authentifizierung zu schreiben oder 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>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.3.0,io.unitycatalog:unitycatalog-spark_4.1_2.13:0.5.0,org.apache.hadoop:hadoop-azure:3.4.2"

Ersetzen Sie die folgenden Variablen:

  • <uc-catalog-name>: Der Name des Katalogs im Unity-Katalog, der Ihre Tabellen enthält.
  • <token>: Persönliches Zugriffstoken (PAT) für den Hauptverantwortlichen, der die Integration konfiguriert.
  • <workspace-url>: Die Azure Databricks workspace-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.

Weitere Details zum Konfigurieren von Apache Spark für Cloudobjektspeicher finden Sie in der Unity Catalog OSS-Dokumentation.

Von Bedeutung

Databricks Runtime 16.4 und höher ist erforderlich, um Tabellen mit aktivierten Katalogcommits zu lesen, zu erstellen oder in diese zu schreiben. Für das Aktivieren oder Deaktivieren von Katalog-Commits bei vorhandenen Tabellen wird Databricks Runtime 18.0 oder höher benötigt.

Um verwaltete Delta-Tabellen mit Katalog-Commits zu erstellen, verwenden Sie die folgende SQL-Anweisung:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported') USING delta;

Verwenden Sie zum Erstellen externer Delta-Tabellen die folgende SQL-Anweisung:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
USING delta
LOCATION <path>;

Zugreifen auf Delta-Tabellen mit Apache Spark mithilfe der OAuth-Authentifizierung

Azure Databricks unterstützt auch die OAuth-Computer-zu-Computer-Authentifizierung (M2M). OAuth verarbeitet automatisch die Verlängerung von Token und Anmeldeinformationen für die Unity-Katalog-Authentifizierung.

Für die OAuth-Authentifizierung für externe Spark-Clients ist Folgendes erforderlich:

Die folgende Konfiguration ist erforderlich, um verwaltete Tabellen im Unity-Katalog und externe Delta-Tabellen mit Apache Spark mithilfe der OAuth-Authentifizierung zu erstellen, zu lesen oder zu schreiben:

"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.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.3.0,io.unitycatalog:unitycatalog-spark_4.1_2.13:0.5.0,org.apache.hadoop:hadoop-azure:3.4.2"

Ersetzen Sie die folgenden Variablen:

  • <workspace-url>: Die Azure Databricks workspace-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.