Uzyskiwanie dostępu do tabel usługi Databricks przez klientów Delta

Na tej stronie opisano sposób używania interfejsu API REST Unity do tworzenia, odczytywania i zapisywania w zarządzanych i zewnętrznych tabelach Unity Catalog z zewnętrznych klientów Delta. Aby uzyskać pełną listę obsługiwanych integracji, zobacz Integracje Unity Catalog.

Tip

Aby uzyskać informacje na temat odczytywania danych Azure Databricks przy użyciu Microsoft Fabric, zobacz Microsoft Fabric z Azure Databricks.

Tworzenie, odczytywanie i zapisywanie za pomocą Unity REST API

Ważna

Tworzenie tabel zarządzanych Unity Catalog i zapisywanie do nich przez klientów Delta jest dostępne w ramach publicznej wersji zapoznawczej.

Interfejs API REST Unity zapewnia klientom zewnętrznym możliwość tworzenia, odczytywania i zapisywania danych w tabelach zarejestrowanych w Unity Catalog. Skonfiguruj dostęp przy użyciu adresu URL obszaru roboczego jako punktu końcowego. Dostępne są następujące typy tabel:

Typ tabeli Przeczytaj Napisz Create
Zarządzana delta Yes Tak* Tak*
Zewnętrzna delta Yes Yes Yes

* Obsługiwane w przypadku zarządzanych tabel Delta z zatwierdzeniami katalogowymi.

Obsługiwani klienci

Apache Spark obsługuje tworzenie, odczytywanie i zapisywanie do zarządzanych oraz zewnętrznych tabel Delta w Unity Catalog przy użyciu interfejsu Unity REST API.

Następujący klienci są obsługiwani w wersji beta. Skontaktuj się z zespołem ds. kont Azure Databricks, jeśli chcesz z nich korzystać:

  • Apache Flink
  • DuckDB
  • StreamNative
  • Starburst

Wymagania

Azure Databricks obsługuje dostęp do tabel poprzez REST API Unity w ramach Unity Catalog. Aby korzystać z tych punktów końcowych, musisz mieć włączony katalog Unity w Twoim obszarze roboczym.

Należy również wykonać poniższe kroki konfiguracyjne, aby skonfigurować dostęp do tabel z klientów Delta za pomocą interfejsu REST API Unity:

Ograniczenia

  • Dostęp zewnętrzny do tabel UniForm z icebergCompatV3 nie jest obecnie obsługiwany.
  • Klienci zewnętrzni nie mogą zmieniać delta.*databricks.* lub usuwać właściwości tabeli, dodawać ani usuwać funkcji tabeli, zmieniać nazwy kolumn i dodawać lub usuwać CHECK ograniczenia.
  • Klienci zewnętrzni nie mogą wykonywać operacji konserwacji tabel, takich jak OPTIMIZE, VACUUMi ANALYZE, w zarządzanych tabelach delty.
  • Klienci zewnętrzni nie mogą tworzyć tabel z wygenerowanymi kolumnami, kolumnami domyślnymi lub kolumnami ograniczeń.
  • Podczas tworzenia tabel zewnętrznych Azure Databricks zaleca korzystanie z platformy Apache Spark, aby upewnić się, że definicje kolumn są w formacie zgodnym z platformą Apache Spark. Interfejs API nie weryfikuje poprawności specyfikacji kolumny. Jeśli specyfikacja nie jest zgodna z platformą Apache Spark, środowisko Databricks Runtime może nie być w stanie odczytać tabel.

Uwaga / Notatka

Aby odczytywać tabele z dołączonymi filtrami wierszy lub maskami kolumn z poziomu zewnętrznego klienta Delta, zobacz Międzyśrodowiskowa kontrola dostępu oparta na atrybutach (ABAC), aby uzyskać informacje o wymaganych wersjach klientów i konfiguracji.

Uzyskiwanie dostępu do tabel delta za pomocą platformy Apache Spark przy użyciu uwierzytelniania przy użyciu tokenu PAT

Uwierzytelnianie pat dla zewnętrznych klientów platformy Spark wymaga:

  • Klient Spark usługi Unity Catalog w wersji 0.5.0 lub nowszej (io.unitycatalog:unitycatalog-spark)
  • Apache Spark 4.0 lub 4.1
  • Delta Spark 4.3.0 lub nowsza
  • Osobisty token dostępu dla podmiotu uzyskującego dostęp do Unity Catalog. Zobacz Autoryzowanie dostępu do zasobów usługi Azure Databricks.

Następująca konfiguracja jest wymagana do odczytu lub zapisu w zarządzanych i zewnętrznych tabelach Delta Unity Catalog przy użyciu Apache Spark oraz uwierzytelniania PAT.

"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"

Zastąp następujące zmienne:

  • <uc-catalog-name>: nazwa katalogu w Unity Catalog, który zawiera twoje tabele.
  • <token>: Osobisty token dostępu (PAT) dla głównego podmiotu konfigurującego integrację.
  • <workspace-url>: URL obszaru roboczego Azure Databricks, w tym identyfikator obszaru roboczego. Na przykład adb-1234567890123456.12.azuredatabricks.net.

Uwaga / Notatka

Wersje pakietów pokazane powyżej są aktualne od ostatniej aktualizacji tej strony. Nowsze wersje mogą być dostępne. Sprawdź, czy wersje pakietów są zgodne z wersją platformy Spark.

Aby uzyskać dodatkowe szczegóły dotyczące konfigurowania Apache Spark dla magazynu obiektów w chmurze, zobacz dokumentację Unity Catalog OSS.

Ważna

Środowisko Databricks Runtime w wersji 16.4 lub nowszej jest wymagane do odczytu, zapisu do tabel lub ich tworzenia z włączonymi zatwierdzeniami katalogu. Środowisko Databricks Runtime 18.0 lub nowsze jest wymagane do włączenia lub wyłączenia zatwierdzeń katalogu w istniejących tabelach.

Aby utworzyć zarządzane tabele Delta z zatwierdzeniami katalogu, użyj następującego kodu SQL:

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

Aby utworzyć zewnętrzne tabele delty, użyj następującego kodu SQL:

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

Uzyskiwanie dostępu do tabel delty za pomocą platformy Apache Spark przy użyciu uwierzytelniania OAuth

Azure Databricks obsługuje również uwierzytelnianie maszynowo-maszynowe OAuth (M2M). OAuth automatycznie obsługuje odnawianie tokenu i poświadczeń do uwierzytelniania w Unity Catalog.

Uwierzytelnianie OAuth dla zewnętrznych klientów platformy Spark wymaga:

Następująca konfiguracja jest wymagana do tworzenia, odczytu lub zapisu w tabelach zarządzanych w katalogu Unity oraz zewnętrznych tabeli Delta z użyciem Apache Spark przy użyciu uwierzytelniania OAuth.

"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"

Zastąp następujące zmienne:

  • <workspace-url>: URL obszaru roboczego Azure Databricks, w tym identyfikator obszaru roboczego. Na przykład adb-1234567890123456.12.azuredatabricks.net.

Uwaga / Notatka

Wersje pakietów pokazane powyżej są aktualne od ostatniej aktualizacji tej strony. Nowsze wersje mogą być dostępne. Sprawdź, czy wersje pakietów są zgodne z wersją platformy Spark.