Udostępnij za pośrednictwem


Odczytywanie tabel Azure Databricks przez klientów Delta Lake

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:

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:

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:

  • <workspace-url>: adres URL obszaru roboczego usługi 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.

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-connector JAR — zapewnia obsługę usługi Google Cloud Storage. Pobierz plik JAR oddzielnie i odwołaj się do niego przy użyciu polecenia spark.jars.

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ład adb-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.