Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Bu belge kullanımdan kaldırılmıştır ve güncelleştirilmeyebilir.
Bu makalede, Azure Data Lake Storage'a erişimi yapılandırmaya yönelik eski desenler açıklanmaktadır. Databricks, Dosyalar ile doğrudan etkileşim için Azure Data Lake Storage'a ve birimlere erişimi yapılandırmak için Unity Kataloğu'nu kullanmanızı önerir. Depolamaya erişmek için Azure yönetilen kimliklerini Unity Kataloğu'nda kullanma bölümüne bakın.
Bu makalede, Azure Databricks'ten Azure Data Lake Storage ve Blob Depolama'ya nasıl bağlandığınız açıklanmaktadır.
Not
Eski Windows Azure Depolama Blobu sürücüsü (WASB) kullanım dışı bırakıldı. ABFS'nin WASB'ye göre çok sayıda avantajı vardır. ABFS ile ilgili Azure belgelerine bakın. Eski WASB sürücüsüyle çalışmak için belgelere WASB (eski) ile Azure Blob Depolama'ya bağlanma bölümünden ulaşabilirsiniz.
1. Adım: Microsoft Entra ID uygulamasını kaydetme
Bir uygulamayı Microsoft Entra ID'ye kaydetmek, Azure depolama hesaplarına erişim sağlamak için kullanabileceğiniz bir hizmet sorumlusu oluşturur.
Microsoft Entra ID uygulamasını kaydetmek için, Microsoft Entra ID'de Application Administrator rolüne veya Application.ReadWrite.All iznine sahip olmanız gerekir.
- Azure portalında Microsoft Entra ID hizmetine gidin.
- Yönet'in altında Uygulama Kayıtları'ne tıklayın.
- + Yeni kayıt'a tıklayın. Uygulama için bir ad girin ve Kaydet'e tıklayın.
- Sertifikalar ve Gizli Diziler'e tıklayın.
- + Yeni istemci sıfreye tıklayın.
- Gizli için bir açıklama ekleyin ve Ekle'ye tıklayın.
- Yeni gizli anahtar için değeri kopyalayın ve kaydedin.
- Uygulama kaydına genel bakış bölümünde Uygulama (istemci) kimliğini ve Dizin (kiracı) kimliğini kopyalayıp kaydedin.
2. Adım: Hizmet sorumlusuna rol atama
Depolama hesabıyla ilişkilendirilmiş bir Microsoft Entra ID uygulama kaydına roller atayarak depolama kaynaklarına erişimi denetleyebilirsiniz. Belirli gereksinimlere bağlı olarak başka roller atamanız gerekebilir.
Depolama hesabında rol atamak için depolama hesabında Sahip veya Kullanıcı Erişim Yöneticisi Azure RBAC rolüne sahip olmanız gerekir.
- Azure portalında Depolama hesapları hizmetine gidin.
- Bu uygulama kaydıyla kullanmak için bir Azure depolama hesabı seçin.
- Erişim Denetimi (IAM) öğesine tıklayın.
- + Ekle'ye tıklayın ve açılır menüden Rol ataması ekle'yi seçin.
- Select alanını Microsoft Entra ID uygulama adı olarak ayarlayın ve RolDepolama Blob Veri Katkıda Bulunanıolarak ayarlayın.
- Kaydet'e tıklayın.
3. Adım: Azure Databricks'da Azure kimlik bilgilerini yapılandırma
erişmek istediğiniz Azure depolama hesabının kimlik bilgileriyle Azure Databricks kümenizi veya not defterinizi yapılandırın.
Desteklenen kimlik bilgisi türleri ve gizli depolama
Azure Data Lake Storage veya Blob Depolama'ya erişmek için aşağıdaki kimlik bilgileri kullanılabilir:
Microsoft Entra ID hizmet sorumlusu ile OAuth 2.0: Databricks, Azure Data Lake Storage'a bağlanmak için Microsoft Entra ID hizmet sorumlularının kullanılmasını önerir. Microsoft Entra ID hizmet sorumlusu oluşturmak ve Azure depolama hesaplarına erişim sağlamak için yukarıdaki 1. ve 2. adımları tamamlayın.
Microsoft Entra ID hizmet sorumlusu oluşturmak için, Microsoft Entra ID'de
Application Administratorrolüne veyaApplication.ReadWrite.Alliznine sahip olmanız gerekir. Bir depolama hesabında rol atamak için depolama hesabında bir Sahip veya Kullanıcı Erişimi Yöneticisi Azure RBAC rolüne sahip bir kullanıcı olmanız gerekir.Önemli
Blob depolama, Microsoft Entra ID hizmet asıllarını desteklemez.
Paylaşılan erişim imzaları (SAS):Azure depolamaya erişmek için depolama SAS belirteçlerini kullanabilirsiniz. SAS ile, ayrıntılı erişim denetimine sahip geçici belirteçleri kullanarak depolama hesabına erişimi kısıtlayabilirsiniz.
SAS belirteci izinlerini yalnızca siz depolama hesabı, kapsayıcı veya dosya üzerinde sahip olduğunuz izinler kadar verebilirsiniz.
Hesap anahtarları: Azure Depolama'ya erişimi yönetmek için depolama hesabı erişim anahtarlarını kullanabilirsiniz. Depolama hesabı erişim anahtarları hem depolama hesabının yapılandırmasına hem de verilere tam erişim sağlar. Databricks, hesap anahtarları yerine Azure depolamaya bağlanmak için Microsoft Entra ID hizmet sorumlusu veya SAS belirteci kullanılmasını önerir.
Bir hesabın erişim anahtarlarını görüntülemek için depolama hesabında Sahip, Katkıda Bulunan veya Depolama Hesabı Anahtar Operatörü Hizmeti rolüne sahip olmanız gerekir.
Databricks, tüm kimlik bilgilerini depolamak için gizli kapsamların kullanılmasını önerir. Çalışma alanınızdaki kullanıcılara, hizmet sorumlularına ve gruplara gizli dizi kapsamını okumaları için erişim verebilirsiniz. Bu, kullanıcıların Azure depolamaya erişmesine izin verirken Azure kimlik bilgilerini korur. Gizli dizi kapsamı oluşturmak için Gizli dizi kapsamlarını yönetme bölümüne bakın.
Not
Microsoft Entra ID hizmet öğeleri bir SQL ambarından Azure depolamaya erişmek için de kullanılabilir, bkz. Veri erişim yapılandırmaları.
Azure kimlik bilgilerini yapılandırmak için Spark özelliklerini ayarlama
Spark özelliklerini, Azure depolama alanına erişmek için Azure kimlik bilgilerini yapılandıracak şekilde ayarlayabilirsiniz. Kimlik bilgileri bir küme veya bir not defteri ile sınırlı olabilir. Azure depolamaya erişimi korumak için hem küme erişim denetimini hem de not defteri erişim denetimini birlikte kullanın. Bkz İşlem izinleri ve Databricks not defterlerini kullanarak işbirliği yapın.
Spark özelliklerini ayarlamak için, kümenin Spark yapılandırmasında veya not defterinde aşağıdaki kod parçacığını kullanın:
Azure hizmet sorumlusu
Küme Spark yapılandırmasını ayarlamak için aşağıdaki biçimi kullanın:
spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<directory-id>/oauth2/token
Aşağıdaki örnekte gösterildiği gibi not defterlerinde kullanabilirsiniz spark.conf.set :
service_credential = dbutils.secrets.get(scope="<secret-scope>",key="<service-credential-key>")
spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth")
spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>")
spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential)
spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
Değiştir
-
<secret-scope>databricks gizli kapsam adını kullanarak. -
<service-credential-key>istemci sırrını içeren anahtarın adıyla birlikte. -
<storage-account>Azure depolama hesabının adıyla. -
<application-id>Microsoft Entra ID uygulamasının Uygulama (istemci) kimliğiyle. -
<directory-id>Microsoft Entra ID uygulamasının Dizin (kiracı) kimliği.
SAS belirteçleri
Aynı Spark oturumunda birden çok depolama hesabı için SAS belirteçleri yapılandırabilirsiniz.
spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "SAS")
spark.conf.set("fs.azure.sas.token.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.sas.FixedSASTokenProvider")
spark.conf.set("fs.azure.sas.fixed.token.<storage-account>.dfs.core.windows.net", dbutils.secrets.get(scope="<scope>", key="<sas-token-key>"))
Değiştir
-
<storage-account>Azure Depolama hesabı adıyla. -
<scope>Azure Databricks gizli kapsam adıyla. -
<sas-token-key>Azure depolama SAS belirtecini içeren anahtarın ismiyle.
Hesap anahtarı
spark.conf.set(
"fs.azure.account.key.<storage-account>.dfs.core.windows.net",
dbutils.secrets.get(scope="<scope>", key="<storage-account-access-key>"))
Değiştir
-
<storage-account>Azure Depolama hesabı adıyla. -
<scope>Azure Databricks gizli kapsam adıyla. -
<storage-account-access-key>Azure depolama hesabı erişim anahtarını içeren anahtarın ismiyle.
4. Adım: Azure depolamaya erişin
Azure depolama kapsayıcınıza erişmek için kimlik bilgilerini düzgün yapılandırdıktan sonra, URI'leri kullanarak depolama hesabındaki kaynaklarla etkileşim kurabilirsiniz. Databricks, daha fazla güvenlik için abfss sürücüsünün kullanılmasını önerir.
spark.read.load("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
dbutils.fs.ls("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
CREATE TABLE <database-name>.<table-name>;
COPY INTO <database-name>.<table-name>
FROM 'abfss://container@storageAccount.dfs.core.windows.net/path/to/folder'
FILEFORMAT = CSV
COPY_OPTIONS ('mergeSchema' = 'true');
Örnek not defteri
Microsoft Entra Id (eski adıyla Azure Active Directory) hizmet sorumluları not defteriyle ADLS OAuth 2.0
not defteri alma
Azure Data Lake Storage bilinen sorunları
Azure portalı aracılığıyla oluşturulan bir depolama kapsayıcısını kullanmayı denerseniz aşağıdaki hatayı alabilirsiniz:
StatusCode=404
StatusDescription=The specified filesystem does not exist.
ErrorCode=FilesystemNotFound
ErrorMessage=The specified filesystem does not exist.
Hiyerarşik ad alanı etkinleştirildiğinde, Azure portalı üzerinden kapsayıcı oluşturmanız gerekmez. Bu sorunu görürseniz Azure portalı aracılığıyla Blob kapsayıcısını silin. Birkaç dakika sonra kapsayıcıya erişebilirsiniz. Alternatif olarak, bu kapsayıcı Azure portalı üzerinden oluşturulmadığı sürece URI'nizi abfss farklı bir kapsayıcı kullanacak şekilde değiştirebilirsiniz.
Microsoft belgelerindeki Azure Data Lake Storage ile ilgili bilinen sorunlar bakın.
Azure Databricks'ten verileri depolamak ve verilere erişmek için kullanım dışı bırakılan desenler
Aşağıdakiler kullanım dışı bırakılmış depolama desenleridir:
- Databricks artık dış veri konumlarının Databricks Dosya Sistemi'ne bağlanmasını önermemektedir. Bkz. Azure Databricks'te bulut nesnesi depolamayı bağlama.
- Databricks artık Azure Data Lake Storage ile kimlik bilgisi geçişi kullanılmasını önermemektedir. Microsoft Entra ID kimlik bilgisi geçişi (eski) kullanarak Azure Data Lake Storage'a erişin konusuna bakın.