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
DBFS bağlamaları kullanım dışı bırakılmış bir desendir ve Databricks sunucusuz işlem mimarisiyle uyumlu değildir. Yeni hesaplar, bu özelliklere erişim olmadan oluşturulur. Databricks bunun yerine Unity Kataloğu dış konumlarının kullanılmasını önerir.
Azure Databricks, kullanıcıların bulut kavramlarına aşina olmayan kullanıcılar için veri erişim desenlerini basitleştirmek için bulut nesne depolamasını Databricks Dosya Sistemi'ne (DBFS) bağlamasına olanak tanır. Bağlı veriler Unity Kataloğu ile çalışmaz ve Databricks bağlamaları kullanmaktan uzaklaşmayı ve bunun yerine Unity Kataloğu ile veri idaresini yönetmeyi önerir.
Azure Databricks bulut nesne depolamayı nasıl bağlar?
Azure Databricks bağlamaları, databricks dosya sistemine göre tanıdık dosya yollarını kullanarak bulut nesne depolamasıyla etkileşim kurmanızı sağlayan bir çalışma alanı ile bulut nesne depolama alanı arasında bir bağlantı oluşturur. Bağlamalar, aşağıdaki bilgileri depolayan /mnt dizini altında yerel bir diğer ad oluşturarak çalışır.
- Bulut nesne depolamasının konumu.
- Depolama hesabına veya kapsayıcısına bağlanmak için sürücü belirtimleri.
- Verilere erişmek için gereken güvenlik kimlik bilgileri.
Depolama birimi bağlamak için söz dizimi nedir?
nesne source depolamanın URI'sini belirtir (ve isteğe bağlı olarak güvenlik kimlik bilgilerini kodlayabilir).
mount_point dizinindeki /mnt yerel yolu belirtir. Bazı nesne depolama kaynakları isteğe bağlı encryption_type bir bağımsız değişkeni destekler. Bazı erişim desenleri için ek yapılandırma özelliklerini bir sözlük olarak extra_configs öğesine geçirebilirsiniz.
Not
Databricks, extra_configs kullanarak bağlamaya özgü Spark ve Hadoop yapılandırmasını seçenekler olarak ayarlamanızı önerir. Yapılandırmaların küme veya oturum yerine bağlamaya bağlı olmasını bu sağlar.
dbutils.fs.mount(
source: str,
mount_point: str,
encryption_type: Optional[str] = "",
extra_configs: Optional[dict[str:str]] = None
)
Hatalı yapılandırma çalışma alanınızdaki tüm kullanıcılara güvenli olmayan erişim sağlayabildiği için veri bağlamalarını yapılandırmadan veya değiştirmeden önce çalışma alanınıza ve bulut yöneticilerinize danışın.
Not
Bu makalede açıklanan yaklaşımlara ek olarak, Databricks Terraform sağlayıcısı ve databricks_mount ile demet bağlamayı otomatikleştirebilirsiniz.
Bağlama noktasını çıkarma
Bağlama noktasını sökmek için aşağıdaki komutu kullanın:
dbutils.fs.unmount("/mnt/<mount-name>")
Uyarı
Diğer işler bağlama noktasına okuma veya yazma yaparken, hataları önlemek için, bağlama noktasını asla değiştirmeyin. Bir bağlamayı değiştirdikten sonra, tüm bağlama güncellemelerini yaymak için her zaman çalışan diğer tüm kümelerde dbutils.fs.refreshMounts() komutunu çalıştırın. Bkz . refreshMounts komutu (dbutils.fs.refreshMounts).
ABFS ile ADLS veya Blob Depolama Bağla
Kimlik doğrulaması için Microsoft Entra ID uygulama hizmet sorumlusunu kullanarak bir Azure depolama hesabına veri montajı yapabilirsiniz. Daha fazla bilgi için Azure Data Lake Depolama ve BLOB Depolama'ya Bağlanma başlıklı bölüme bakın.
Önemli
- Azure Databricks çalışma alanında bulunan tüm kullanıcıların bağlı ADLS hesabına erişimi vardır. ADLS hesabına erişmek için kullandığınız hizmet sorumlusuna yalnızca bu ADLS hesabına erişim verilmelidir; diğer Azure kaynaklarına erişim verilmemelidir.
- Bir küme üzerinden bağlama noktası oluşturduğunuzda, küme kullanıcıları bağlama noktasına hemen erişebilir. Çalışan başka bir kümedeki bağlama noktasını kullanmak için, yeni oluşturulan bağlama noktasını kullanıma sunmak için söz konusu çalışan kümede
dbutils.fs.refreshMounts()komutunu çalıştırmalısınız. - İşler çalışırken bağlama noktasının çıkarılması hatalara neden olabilir. Üretim işlerinin işlenmesi sırasında depolamanın çıkarılmadığından emin olun.
- Gizli bilgileri kullanan bağlama noktaları otomatik olarak yenilenmez. Bağlı depolama, döndürülen, süresi dolan veya silinen bir gizli bilgiye dayanıyorsa,
401 Unauthorizedgibi hatalar oluşabilir. Böyle bir hatayı çözmek için depolamayı çıkarmanız ve yeniden bağlamanız gerekir. - ABFS uç noktasını kullanarak bir Azure Data Lake Storage depolama hesabını başarıyla bağlamak için hiyerarşik ad alanının (HNS) etkinleştirilmesi gerekir.
Kimlik doğrulaması yapmak ve bağlama noktası oluşturmak için not defterinizde aşağıdakileri çalıştırın.
configs = {"fs.azure.account.auth.type": "OAuth",
"fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
"fs.azure.account.oauth2.client.id": "<application-id>",
"fs.azure.account.oauth2.client.secret": dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"),
"fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/<directory-id>/oauth2/token"}
# Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/",
mount_point = "/mnt/<mount-name>",
extra_configs = configs)
val configs = Map(
"fs.azure.account.auth.type" -> "OAuth",
"fs.azure.account.oauth.provider.type" -> "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
"fs.azure.account.oauth2.client.id" -> "<application-id>",
"fs.azure.account.oauth2.client.secret" -> dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"),
"fs.azure.account.oauth2.client.endpoint" -> "https://login.microsoftonline.com/<directory-id>/oauth2/token")
// Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/",
mountPoint = "/mnt/<mount-name>",
extraConfigs = configs)
Değiştir
-
<application-id>Azure Active Directory uygulaması için Uygulama (istemci) kimliği ile. -
<scope-name>databricks gizli kapsam adıyla. -
<service-credential-key-name>istemci gizli bilgisini içeren anahtarın adıyla. -
<directory-id>Azure Active Directory uygulamasının Dizin (kiracı) kimliği ile. - ADLS depolama hesabındaki bir kapsayıcının adıyla
<container-name>. - ADLS depolama hesabı adı ile
<storage-account-name>kullanın. -
<mount-name>DBFS'deki hedeflenen bağlama noktasının adıyla.