Delta istemcilerinden Databricks tablolarına erişme

Bu sayfada, Unity REST API'sinin dış Delta istemcilerinden Unity Kataloğu tarafından yönetilen ve dış tablolar oluşturmak, okumak ve bunlara yazmak için nasıl kullanılacağı açıklanmaktadır. Desteklenen tümleştirmelerin tam listesi için bkz. Unity Kataloğu tümleştirmeleri.

Bahşiş

Microsoft Fabric ile Azure Databricks verilerini okuma hakkında bilgi için bkz. Azure Databricks ile Microsoft Fabric.

Unity REST API'sini kullanarak oluşturma, okuma ve yazma

Önemli

Delta istemcilerinden Unity Catalog tarafından yönetilen tablolar oluşturma ve bu tablolara yazma Genel Önizleme aşamasındadır.

Unity REST API,Unity Kataloğu'na kayıtlı tablolara dış istemciler oluşturma, okuma ve yazma erişimi sağlar. Uç nokta olarak çalışma alanı URL'sini kullanarak erişimi yapılandırın. Aşağıdaki tablo türleri erişilebilir:

Tablo türü Read Write Oluştur
Yönetilen Delta Evet Evet* Evet*
Dış Delta Evet Evet Evet

* Katalog işlemeleri ile yönetilen Delta tabloları için desteklenir.

Desteklenen istemciler

Apache Spark, Unity REST API'sini kullanarak Unity Kataloğu yönetilen ve dış Delta tablolarını oluşturmak, okumak ve bu tablolara yazmak için desteklenir.

Aşağıdaki istemciler Beta'da desteklenir. Bunları kullanmak istiyorsanız Azure Databricks hesap ekibinize başvurun:

  • Apache Flink
  • DuckDB
  • StreamNative
  • Starburst

Gereksinimler

Azure Databricks, Unity Kataloğu'nun bir parçası olarak tablolara Unity REST API erişimini destekler. Bu uç noktaları kullanmak için çalışma alanınızda Unity Kataloğu'nu etkinleştirmiş olmanız gerekir.

Unity REST API'sini kullanarak Delta istemcilerinden tablolara erişimi yapılandırmak için aşağıdaki yapılandırma adımlarını da tamamlamanız gerekir:

Sınırlamalar

  • IcebergCompatV3 ile UniForm tablolarına dış erişim şu anda desteklenmiyor.
  • Dış istemciler tablo özelliklerini değiştiremez veya delta.* tablo özelliklerini değiştiremezdatabricks.*, tablo özellikleri ekleyemez veya kaldıramaz, sütunları yeniden adlandıramaz ve kısıtlamaları ekleyemez veya bırakamazCHECK.
  • Dış istemciler yönetilen Delta tablolarında , OPTIMIZEve VACUUMgibi ANALYZEtablo bakım işlemlerini gerçekleştiremez.
  • Dış istemciler, oluşturulan sütunlar, varsayılan sütunlar veya kısıtlama sütunları içeren tablolar oluşturamaz.
  • Dış tablolar oluştururken, Azure Databricks sütun tanımlarının Apache Spark ile uyumlu bir biçimde olduğundan emin olmak için Apache Spark kullanılmasını önerir. API, sütun belirtiminin doğruluğunu doğrulamaz. Belirtim Apache Spark ile uyumlu değilse Databricks Runtime tabloları okuyamayabilir.

Uyarı

Harici bir Delta istemcisinden eklenmiş satır filtreleri veya sütun maskeleri içeren tabloları okumak için, gerekli istemci sürümleri ve yapılandırma hakkında Motorlar arası öznitelik tabanlı erişim denetimleri (ABAC) bölümüne bakın.

PAT kimlik doğrulamasını kullanarak Apache Spark ile Delta tablolarına erişme

Dış Spark istemcileri için PAT kimlik doğrulaması şunları gerektirir:

  • Unity Kataloğu Spark istemci sürümü 0.5.0 veya üzeri (io.unitycatalog:unitycatalog-spark)
  • Apache Spark 4.0 veya 4.1
  • Delta Spark 4.3.0 veya üzeri
  • Unity Kataloğu'na erişen sorumlu için kişisel erişim belirteci. Bkz. Azure Databricks kaynaklarına erişimi yetkilendirme.

PAT kimlik doğrulamasını kullanarak Apache Spark ile Unity Kataloğu yönetilen ve dış Delta tablolarını okumak veya bu tablolara yazmak için aşağıdaki yapılandırma gereklidir:

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

Aşağıdaki değişkenleri değiştirin:

  • <uc-catalog-name>: Unity Kataloğu'nda tablolarınızı içeren kataloğun adı.
  • <token>: Tümleştirmeyi yapılandıran sorumlu için kişisel erişim belirteci (PAT).
  • <workspace-url>: Azure Databricks çalışma alanı URL'si, çalışma alanı kimliği dahil olmak üzere. Örneğin, adb-1234567890123456.12.azuredatabricks.net.

Uyarı

Yukarıda gösterilen paket sürümleri, bu sayfada yapılan son güncelleştirmeden itibaren geçerlidir. Daha yeni sürümler kullanılabilir. Paket sürümlerinin Spark sürümünüzle uyumlu olduğunu doğrulayın.

Bulut nesne depolaması için Apache Spark'ı yapılandırma hakkında ek ayrıntılar için Unity Kataloğu OSS belgelerine bakın.

Önemli

Databricks Runtime 16.4 ve üzeri, katalog işlemeleri etkinleştirilmiş tabloları okumak, yazmak veya oluşturmak için gereklidir. Mevcut tablolarda katalog işlemelerini etkinleştirmek veya devre dışı bırakmak için Databricks Runtime 18.0 ve üzeri gereklidir.

Katalog işlemeleriyle yönetilen Delta tabloları oluşturmak için aşağıdaki SQL'i kullanın:

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

Dış Delta tabloları oluşturmak için aşağıdaki SQL'i kullanın:

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

OAuth kimlik doğrulamasını kullanarak Apache Spark ile Delta tablolarına erişme

Azure Databricks ayrıca OAuth makineden makineye (M2M) kimlik doğrulamasını da destekler. OAuth, Unity Kataloğu kimlik doğrulaması için belirteci ve kimlik bilgisi yenilemeyi otomatik olarak işler.

Dış Spark istemcileri için OAuth kimlik doğrulaması şunları gerektirir:

  • Unity Kataloğu Spark istemci sürümü 0.5.0 veya üzeri (io.unitycatalog:unitycatalog-spark)
  • Apache Spark 4.0 veya 4.1
  • Delta Spark 4.3.0 veya üzeri
  • Uygun izinlere sahip bir OAuth M2M hizmet sorumlusu. Azure Databricks üzerinde OAuth ile hizmet sorumlusu erişimini yetkilendirme için Yetkilendirmeye bakın.

OAuth kimlik doğrulamasını kullanarak Apache Spark ile Unity Kataloğu yönetilen tabloları ve dış Delta tablolarını oluşturmak, okumak veya yazmak için aşağıdaki yapılandırma gereklidir:

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

Aşağıdaki değişkenleri değiştirin:

  • <uc-catalog-name>: Unity Kataloğu'nda tablolarınızı içeren kataloğun adı.
  • <oauth-token-endpoint>: OAuth belirteci uç noktası URL'si. Bu URL'yi oluşturmak için:
    1. Azure Databricks çalışma alanı URL’sini bulun.
    2. Şu biçimi kullanın: https://<workspace-url>/oidc/v1/token
  • <oauth-client-id>: Hizmet sorumlunuz için OAuth istemci kimliği. Azure Databricks üzerinde OAuth ile hizmet sorumlusu erişimini yetkilendirme için Yetkilendirmeye bakın.
  • <oauth-client-secret>: Hizmet sorumlunuz için OAuth istemci gizli anahtarı. Azure Databricks üzerinde OAuth ile hizmet sorumlusu erişimini yetkilendirme için Yetkilendirmeye bakın.
  • <workspace-url>: Azure Databricks çalışma alanı URL'si, çalışma alanı kimliği dahil olmak üzere. Örneğin, adb-1234567890123456.12.azuredatabricks.net.

Uyarı

Yukarıda gösterilen paket sürümleri, bu sayfada yapılan son güncelleştirmeden itibaren geçerlidir. Daha yeni sürümler kullanılabilir. Paket sürümlerinin Spark sürümünüzle uyumlu olduğunu doğrulayın.