Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- Włącz dostęp do danych zewnętrznych dla magazynu metadanych. Zobacz Włączanie dostępu do danych zewnętrznych w magazynie metadanych.
- Nadaj jednostce uzyskującej zewnętrzny dostęp do danych uprawnienie
EXTERNAL USE SCHEMAdo schematu zawierającego obiekty. Zobacz Jak nadawać uprawnienia w Unity Catalog dla głównych podmiotów. - W przypadku tabel zewnętrznych, do których uzyskuje się dostęp za pomocą ścieżki: przyznaj podmiotowi uprawnienie
EXTERNAL USE LOCATIONdo lokalizacji zewnętrznej zawierającej ścieżkę tabeli. Zobacz Jak nadawać uprawnienia w Unity Catalog dla głównych podmiotów. - Upewnij się, że podmiot ma odpowiednie uprawnienia:
-
SELECTw tabeli dla odczytów -
MODIFYw tabeli dla operacji zapisu -
CREATEw schemacie tworzenia tabeli - W przypadku zapisów zewnętrznych w zarządzanych tabelach Delta upewnij się, że tabela, do której zapisujesz, ma włączoną funkcję zatwierdzeń katalogu.
-
- Uwierzytelnianie przy użyciu jednej z następujących metod:
- Osobisty token dostępu (PAT): Zobacz Autoryzuj dostęp do zasobów Azure Databricks.
- Uwierzytelnianie maszyny do maszyny OAuth (M2M): obsługuje automatyczne odświeżanie poświadczeń i tokenów dla długotrwałych zadań platformy Spark (>1 godzina). Zobacz Autoryzuj dostęp jednostki usługi do Azure Databricks za pomocą protokołu OAuth.
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ćCHECKograniczenia. - Klienci zewnętrzni nie mogą wykonywać operacji konserwacji tabel, takich jak
OPTIMIZE,VACUUMiANALYZE, 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ładadb-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:
- 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
- Podmiot usługowy OAuth M2M z odpowiednimi uprawnieniami. Zobacz Autoryzuj dostęp jednostki usługi do Azure Databricks za pomocą protokołu OAuth.
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:
-
<uc-catalog-name>: nazwa katalogu w Unity Catalog, który zawiera twoje tabele. -
<oauth-token-endpoint>: adres URL punktu końcowego tokenu OAuth. Aby skonstruować ten adres URL:- Znajdź adres URL Azure Databricks workspace.
- Użyj formatu:
https://<workspace-url>/oidc/v1/token
-
<oauth-client-id>: identyfikator klienta OAuth dla podmiotu usługowego. Zobacz Autoryzuj dostęp jednostki usługi do Azure Databricks za pomocą protokołu OAuth. -
<oauth-client-secret>: Tajemnica klienta OAuth dla głównego użytkownika usługi. Zobacz Autoryzuj dostęp jednostki usługi do Azure Databricks za pomocą protokołu OAuth.
-
<workspace-url>: URL obszaru roboczego Azure Databricks, w tym identyfikator obszaru roboczego. Na przykładadb-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.