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.
Ta strona zawiera omówienie używania Unity REST API do uzyskiwania dostępu do tabel zarządzanych i zewnętrznych Unity Catalog z zewnętrznych klientów Delta Lake. Aby utworzyć zewnętrzne tabele usługi Delta Lake z perspektywy klientów zewnętrznych, zobacz Tworzenie zewnętrznych tabel różnicowych przez klientów zewnętrznych.
Użyj katalogu REST Iceberg, aby odczytać tabele zarejestrowane w wykazie aparatu Unity w usłudze Azure Databricks z obsługiwanych klientów góry lodowej, w tym Apache Spark i DuckDB.
Aby uzyskać pełną listę obsługiwanych integracji, zobacz Integracje Unity Catalog.
Tip
Aby uzyskać informacje na temat sposobu odczytywania danych z Azure Databricks przy użyciu Microsoft Fabric, zobacz Używanie Microsoft Fabric do odczytywania danych zarejestrowanych w Unity Catalog.
Odczytywanie i zapisywanie przy użyciu REST API Unity
Interfejs REST API Unity umożliwia klientom zewnętrznym dostęp do odczytu do tabel zarejestrowanych w katalogu Unity. Niektórzy klienci obsługują tworzenie tabel oraz zapisywanie danych w już istniejących tabelach.
Skonfiguruj dostęp przy użyciu adresu URL obszaru roboczego. Klient Spark Unity Catalog automatycznie kieruje żądania do odpowiedniego punktu końcowego interfejsu API katalogu Unity.
Ważna
Adres URL dla obszaru roboczego, używany dla punktu końcowego interfejsu API REST silnika Unity, musi zawierać identyfikator obszaru roboczego. Bez identyfikatora obszaru roboczego żądania API mogą skutkować przekierowaniem 303 do strony logowania zamiast oczekiwanej odpowiedzi.
Aby znaleźć adres URL obszaru roboczego i identyfikator obszaru roboczego, zobacz Nazwy wystąpień obszaru roboczego, adresy URL i identyfikatory.
Wymagania
Azure Databricks obsługuje dostęp do tabel za pośrednictwem Unity REST API jako część Unity Catalog. Aby korzystać z tych punktów końcowych, musisz mieć włączony katalog Unity w Twoim obszarze roboczym. Następujące typy tabel kwalifikują się do odczytu za pomocą REST API dla Unity:
- Tabele zarządzane Unity Catalog.
- Tabele zewnętrzne Unity Catalog.
Aby skonfigurować dostęp do odczytu obiektów usługi Azure Databricks z klientów usługi Delta Lake przy użyciu interfejsu API REST Unity, należy wykonać poniższe kroki konfiguracyjne:
- Włącz dostęp do danych zewnętrznych dla magazynu metadanych. Zobacz Włączanie dostępu do danych zewnętrznych w magazynie metadanych.
- Udziel głównemu podmiotowi konfigurującemu integrację uprawnienia
EXTERNAL USE SCHEMAdo schematu zawierającego obiekty. Zobacz Jak nadawać uprawnienia w Unity Catalog dla głównych podmiotów. - Uwierzytelnianie przy użyciu jednej z następujących metod:
- 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 Autoryzowanie dostępu jednostki usługi do usługi Azure Databricks przy użyciu protokołu OAuth.
- Osobisty token dostępu (PAT): zobacz Autoryzowanie dostępu do zasobów usługi Azure Databricks.
Odczytywanie tabel usługi Delta Lake z platformą Apache Spark przy użyciu uwierzytelniania OAuth
Usługa Azure Databricks obsługuje uwierzytelnianie maszynowo-maszynowe OAuth (M2M). OAuth automatycznie obsługuje odnawianie tokenu na potrzeby uwierzytelniania w Unity Catalog. W przypadku długotrwałych zadań, które również wymagają automatycznego odnawiania poświadczeń magazynu w chmurze, włącz spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled ustawienie w konfiguracji platformy Spark.
Uwierzytelnianie OAuth dla zewnętrznych klientów platformy Apache Spark wymaga:
- Klient Spark Unity Catalog w wersji 0.3.1 lub nowszej (
io.unitycatalog:unitycatalog-spark) - Apache Spark 4.0 lub nowszy
- Usługa Delta Lake Spark 4.0.1 lub nowsza z obsługą protokołu OAuth
- Podmiot usługowy OAuth M2M z odpowiednimi uprawnieniami. Zobacz Autoryzowanie dostępu jednostki usługi do usługi Azure Databricks przy użyciu protokołu OAuth.
Następująca konfiguracja jest wymagana do odczytu tabel zarządzanych katalogu Unity i zewnętrznych tabel Delta Lake z platformą Apache Spark używając 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.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"
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ź identyfikator konta usługi Azure Databricks. Zobacz Znajdź swój identyfikator konta.
- Użyj formatu:
https://accounts.cloud.databricks.com/oidc/accounts/<account-id>/v1/token
-
<oauth-client-id>: identyfikator klienta OAuth dla podmiotu usługowego. Zobacz Autoryzowanie dostępu jednostki usługi do usługi Azure Databricks przy użyciu protokołu OAuth. -
<oauth-client-secret>: Tajemnica klienta OAuth dla głównego użytkownika usługi. Zobacz Autoryzowanie dostępu jednostki usługi do usługi Azure Databricks przy użyciu protokołu OAuth.
-
<workspace-url>: adres URL obszaru roboczego usługi 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.
Odczytywanie tabel Delta Lake z użyciem Apache Spark i tokenu PAT do uwierzytelniania
Ważna
Usługa Databricks zaleca używanie protokołu OAuth zamiast paT na potrzeby uwierzytelniania konta użytkownika, ponieważ protokół OAuth zapewnia silniejsze zabezpieczenia. Aby dowiedzieć się, jak uwierzytelniać się przy użyciu konta użytkownika usługi Databricks przy użyciu protokołu OAuth, zobacz Autoryzowanie dostępu użytkowników do usługi Azure Databricks przy użyciu protokołu OAuth.
Konfiguracja
W konfiguracji platformy Spark muszą znajdować się następujące pakiety lub pliki JAR:
-
Usługa Delta Lake Spark (
io.delta:delta-spark): zapewnia obsługę usługi Delta Lake dla platformy Apache Spark. -
Łącznik Spark katalogu Unity (
io.unitycatalog:unitycatalog-spark): łączy platformę Apache Spark z katalogiem Unity. -
Łącznik magazynu w chmurze: wymagany do uzyskania dostępu do magazynu obiektów w chmurze, który jest podstawą dla twoich tabel. Łącznik zależy od dostawcy usług w chmurze:
-
AWS:
org.apache.hadoop:hadoop-aws— zapewnia obsługę systemu plików S3. -
Azure:
org.apache.hadoop:hadoop-azure— zapewnia obsługę usługi Azure Data Lake Storage Gen2. -
GCP:
gcs-connectorJAR — zapewnia obsługę usługi Google Cloud Storage. Pobierz plik JAR oddzielnie i odwołaj się do niego przy użyciu poleceniaspark.jars.
-
AWS:
Aby uzyskać dodatkowe konfiguracje specyficzne dla chmury, zobacz dokumentację katalogu Open Source Unity.
"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"
:::
Zmienne
Zastąp następujące zmienne w konfiguracji:
-
<uc-catalog-name>: Nazwa katalogu Unity Catalog, który zawiera twoje tabele. -
<token>: Osobisty token dostępu (PAT) dla głównego podmiotu konfigurującego integrację.
-
<workspace-url>: adres URL obszaru roboczego usługi Azure Databricks, w tym identyfikator obszaru roboczego. Na przykładadb-1234567890123456.12.azuredatabricks.net.
Odnawianie poświadczeń
Aby włączyć automatyczne odnawianie poświadczeń dla długotrwałych zadań, dodaj następującą konfigurację:
"spark.sql.catalog.<catalog-name>.renewCredential.enabled": true
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 ze środowiskiem Databricks Runtime i wersjami platformy Spark.