Aracılığıyla paylaş


Bulut depolama alanını Azure Databricks'e bağlamak için dış konum oluşturma

Bu makalede, Azure Databricks'ten bulut depolamaya erişimi denetlemek için Unity Kataloğu'nda bir dış konum nesnesinin nasıl yapılandırıldığı açıklanır.

Dış konumlara genel bakış

Dış konumlar , depolama kimlik bilgilerini bulut nesne depolama kapsayıcılarıyla ilişkilendirir. Dış konumlar şunlar tanımlamak için kullanılır:

Dış konumlar, bir Azure Data Lake Storage depolama kapsayıcısındaki, AWS S3 birimindeki veya Cloudflare R2 birimindeki depolamaya başvurabilir.

Aşağıdaki diyagram, tek bir bulut depolama demetinin veya kapsayıcının dosya sistemi hiyerarşisini temsil eder ve bir depolama kimlik bilgilerini paylaşan dört dış konum vardır.

Dış konumlar

Dış konum oluşturmaya genel bakış

Dış konum oluşturmak için aşağıdaki arabirimlerden herhangi birini kullanabilirsiniz:

  1. Katalog Gezgini

    Bu seçenek grafik kullanıcı arabirimi sağlar. Harici konumlara referans vermek için Katalog Gezgini'ni kullanabilirsiniz: Azure Data Lake Storage kapları, S3 bucket'ları (salt okunur), Cloudflare R2 bucket'ları ve DBFS kök dizini (eski)

  2. Not defteri veya Databricks SQL sorgusundaki SQL komutları

  3. The Databricks CLI

  4. Terraform

Bu makalede 1 ve 2 seçenekleri yer alır.

Not

Verileri DBFS kök depolama konumunda depolamak, eski bir uygulamadır ve Databricks bunu önermemektedir. Ancak çalışma alanınız dbfs kökünde veri depolarsa Unity Kataloğu'nu kullanarak bu verilere erişimi idare etmek için bir dış konum oluşturabilirsiniz. Ayrıntılar için bkz. DBFS kökünde (eski) veriler için dış konum oluşturma.

Dış konumların kullanımı ve depolama kimlik bilgileri ile dış konumlar arasındaki ilişki hakkında daha fazla bilgi için bkz. Unity Kataloğu'nu kullanarak bulut nesne depolamasına bağlanma.

Başlamadan önce

Ön koşullar:

  • Azure Databricks'te dış konum nesnesini oluşturmadan önce dış konum olarak kullanmak istediğiniz Azure Data Lake Storage depolama kapsayıcısını, AWS S3 demetini veya Cloudflare R2 demetini oluşturmanız gerekir.

    • Dış konum olarak kullandığınız Azure Data Lake Storage depolama hesaplarının hiyerarşik ad alanına sahip olması gerekir.
    • S3 demet adlarında nokta notasyonu (örneğin, incorrect.bucket.name.notation) kullanmayın. AWS, demet adlarında noktalara izin verse de Databricks, nokta gösterimine sahip S3 demetlerini desteklemez. Nokta içeren demetler, SSL sertifika doğrulama hataları nedeniyle Delta Sharing gibi özelliklerde uyumluluk sorunlarına neden olabilir. Daha fazla bilgi için bkz. AWS demet adlandırma en iyi yöntemleri.

    • Dış konum yolları yalnızca standart ASCII karakterleri (harfler A–Z, a–z, basamaklar 0–9 ve /, _, - gibi ortak simgeler) içermelidir.

    • Bu kovaya bir S3 erişim denetimi listesi eklenemez.

İzin gereksinimleri:

  • Meta veri deposu ile harici konumda referans verilen depolama kimlik bilgileri üzerinde CREATE EXTERNAL LOCATION ayrıcalığına sahip olmalısınız. Meta veri deposu yöneticileri, meta veri deposunda varsayılan olarak CREATE EXTERNAL LOCATION sahibidir.
  • DBFS kök depolama konumu için bir dış konum oluşturuyorsanız, sistem sizin için depolama kimlik bilgilerini oluşturabilir, ancak çalışma alanı yöneticisi olmanız gerekir. Ayrıntılar için bkz. DBFS kökündeki veriler için dış konum oluşturma (eski)

1. Seçenek: Katalog Gezgini'ne kullanarak dış konum oluşturma

Katalog Gezgini'ne el ile dış konum oluşturabilirsiniz.

İzinler ve önkoşullar: Başlamadan önce bölümüne bakın.

Dış konumu oluşturmak için:

  1. Metastore'a bağlı bir çalışma alanına giriş yapın.

  2. Kenar çubuğunda Veri simgesine tıklayın.Katalog'a gidin.

  3. Hızlı erişim sayfasında, Dış veri > düğmesine tıklayın, Dış Konumlar sekmesine gidin ve Konum oluştur'a tıklayın.

  4. Bir Dış konum adı girin.

  5. Depolama türünü seçin: Azure Data Lake Storage, S3 (Salt okunur), R2 veya DBFS Kökü.

    Verileri DBFS kökünde depolamak yaygın olmayan, eski bir uygulamadır. Ayrıntılar için bkz. DBFS kökünde (eski) veriler için dış konum oluşturma.

  6. URLaltında dış konumun yolunu girin veya seçin.

    Azure Data Lake Storage, S3 ve R2 için aşağıdaki seçeneklere sahipsiniz:

    • Kapsayıcı yolunu mevcut DBFS bağlama noktasındankopyalamak için DBFS'den kopyalaöğesine tıklayın.

    • Var olan bir bağlama noktasından kopyalamıyorsanız, dış konum olarak kullanmak istediğiniz kapsayıcıyı veya demet yolunu girmek için URL alanını kullanın.

      Örneğin, abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> veya r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

    DBFS kökü için:

    • Sistem, alt yolu DBFS kök depolama konumuna yerleştirir. Çalışma alanı yöneticisiyseniz, sistem sizin için depolama kimlik bilgilerini de oluşturur.

    Bkz. DBFS kökünde (eski) veriler için dış konum oluşturma.

  7. Dış konuma erişim izni veren depolama kimlik bilgilerini seçin.

    Not

    Dış konumunuz DBFS köküne yönelikse ve bir çalışma alanı yöneticisiyseniz, sistem sizin için depolama kimlik bilgilerini oluşturur ve bir tane seçmeniz gerekmez.

    Depolama kimlik bilgileriniz yoksa bir tane oluşturabilirsiniz:

    1. Depolama kimlik bilgisi açılır listesinde, + Yeni depolama kimlik bilgisi oluşturseçeneğini seçin.

    2. Girdiğiniz kimlik bilgileri depolama türüne bağlıdır:

      Azure Data Lake Storage için erişim bağlayıcısı kimliğini ve (isteğe bağlı olarak) depolama konumuna erişim veren kullanıcı tarafından atanan yönetilen kimliği girin. Bkz. Azure Data Lake Storage'a erişen bir depolama kimlik bilgisi oluşturma

      Cloudflare API belirteçleri için Cloudflare hesabını, erişim anahtarı kimliğini ve gizli dizi erişim anahtarını girin. Bkz. Cloudflare R2'ye bağlanmak için depolama kimlik bilgisi oluşturma.

      AWS S3 için depolama konumuna erişim sağlayan IAM rolü ARN'sini girin. Bkz. AWS S3'e bağlanmak için depolama kimlik bilgisi oluşturma (salt okunur).

  8. (İsteğe bağlı) Kullanıcıların dış konuma salt okunur erişimi olmasını istiyorsanız Gelişmiş Seçenekler'e tıklayın ve Salt okunur seçeneğini belirleyin. Daha fazla bilgi için bkz Dış konumu salt okunur olarak işaretleme.

    AWS S3 yollarına başvuran dış konumlar doğal olarak salt okunurdur.

  9. (İsteğe bağlı) Dış konum bir Hive meta veri deposu federasyon kataloğuna yönelikse, Gelişmiş seçenekler kısmına tıklayın ve Geri Dönüş modunu etkinleştirin.

    Bkz.: Dış konumlarda geri dönüş modunu etkinleştirme.

  10. (İsteğe bağlı, yalnızca AWS S3 konumları için) S3 demetine SSE şifrelemesi gerekiyorsa, Unity Kataloğu'ndaki dış tabloların ve birimlerin S3 demetinizdeki verilere erişmesine izin vermek için bir şifreleme algoritması yapılandırabilirsiniz.

    Yönergeler için bkz. Dış konumda şifreleme algoritması yapılandırma (yalnızca AWS S3).

  11. (İsteğe bağlı) Dış konumda değişiklik bildirimlerine abone olma özelliğini etkinleştirmek için Gelişmiş Seçenekler'e tıklayın ve Dosya olaylarını etkinleştir'i seçin.

    Ayrıntılar için bkz. (Önerilen) Dış konum için dosya olaylarını etkinleştirme.

  12. Oluştur’a tıklayın.

  13. (İsteğe bağlı) Dış konumu belirli çalışma alanlarına bağlayın.

    Varsayılan olarak, tüm ayrıcalıklı kullanıcılar meta veri deposuna bağlı herhangi bir çalışma alanında dış konumu kullanabilir. Yalnızca belirli çalışma alanlarından erişime izin vermek istiyorsanız, Çalışma Alanları sekmesine gidin ve çalışma alanları atayın. Bkz. (İsteğe bağlı) Belirli çalışma alanlarına dış konum atama.

  14. Dış konumu kullanma izni vermek için İzinler sekmesine gidin.

    Herkesin dış konumu kullanması için izinler vermelisiniz:

    • Meta veri deposuna, kataloğa veya şemaya yönetilen bir depolama konumu eklemek için dış konumu kullanırken gerekli CREATE MANAGED LOCATION ayrıcalığını verin.

    • Dış tablolar veya birimler oluşturmak için CREATE EXTERNAL TABLE veya CREATE EXTERNAL VOLUME yetkisini verin.

    1. Ver butonuna tıklayın.
    2. Grant on <external location> iletişim kutusunda, Sorumlular alanında kullanıcıları, grupları veya hizmet sorumlularını seçin ve vermek istediğiniz ayrıcalığı seçin.
    3. Ver butonuna tıklayın.

2. Seçenek: SQL kullanarak dış konum oluşturma

SQL kullanarak dış konum oluşturmak için bir not defterinde veya SQL sorgu düzenleyicisinde aşağıdaki komutu çalıştırın. Yer tutucu değerlerini değiştirin. Gerekli izinler ve önkoşullar için bkz . Başlamadan önce.

  • <location-name>: Dış konum için bir ad. Eğer location_name kısa çizgi (-) gibi özel karakterler içeriyorsa, ters tırnak işaretleriyle (` `) çevrelenmelidir. Bkz. Adlar.
  • <bucket-path>: Bu dış konumun erişim sağladığı bulut ortamınızdaki yol. Örneğin, abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> veya r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.
  • <storage-credential-name>: Depolama kapsayıcısından veya demet yolundan okuma ve yazma yetkisi veren depolama kimlik bilgilerinin adı. Depolama kimlik bilgisi adı kısa çizgi (-) gibi özel karakterler içeriyorsa, ters tırnak işaretleri (` `) ile çevrelenmelidir.
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];

Eğer dış konum erişimini, hesabınızdaki belirli çalışma alanları ile sınırlamak istiyorsanız, bu durum çalışma alanı bağlama veya dış konum yalıtımı olarak da bilinir, bkz: (İsteğe bağlı) Belirli çalışma alanlarına dış konum atama.

(İsteğe bağlı) Belirli çalışma alanlarına dış konum atama

Varsayılan olarak, bir dış konuma meta veri deposundaki tüm çalışma alanlarından erişilebilir. Başka bir deyişle, bir kullanıcıya bu dış konumda ayrıcalık (örneğin READ FILES) verildiyse, meta veri deposuna bağlı herhangi bir çalışma alanından bu ayrıcalığı kullanabilir. Kullanıcı veri erişimini yalıtmak için çalışma alanları kullanıyorsanız, yalnızca belirli çalışma alanlarından dış konuma erişime izin vermek isteyebilirsiniz. Bu özellik çalışma alanı bağlaması veya dış konum yalıtımı olarak bilinir.

Dış konumu belirli çalışma alanlarına bağlamaya yönelik tipik kullanım örnekleri şunlardır:

  • Üretim verilerini içeren bir dış konumda CREATE EXTERNAL TABLE ayrıcalığına sahip veri mühendislerinin, bu konumda yalnızca üretim çalışma alanında dış tablolar oluşturabilmesini sağlamak.
  • Hassas veriler içeren bir dış konumda ayrıcalığı olan veri mühendislerinin READ FILES bu verilere erişmek için yalnızca belirli çalışma alanlarını kullanabilmesini sağlama.

Çalışma alanına göre diğer veri erişimini kısıtlama hakkında daha fazla bilgi için bkz . Katalog erişimini belirli çalışma alanlarıyla sınırlama.

Önemli

Çalışma alanı bağlamalarına, dış konum üzerindeki ayrıcalıkların kullanıldığı anda başvurulur. Örneğin, bir kullanıcı çalışma alanından CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' deyimini myWorkspace vererek bir dış tablo oluşturursa, normal kullanıcı ayrıcalık denetimlerine ek olarak aşağıdaki çalışma alanı bağlama denetimleri gerçekleştirilir:

  • Dış konum kaplama 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' ile myWorkspace ilişkili mi?
  • Katalog myCatmyWorkspace ile Read & Write erişim düzeyine bağlı mı?

Eğer dış konum myWorkspace ile bağlantısı sonradan kesilirse, dış tablo çalışmaya devam eder.

Bu özellik ayrıca, dış konumu bu diğer çalışma alanlarında kullanılabilir hale getirmek zorunda kalmadan merkezi bir çalışma alanından bir kataloğu doldurmanıza ve katalog bağlamalarını kullanarak diğer çalışma alanlarında kullanılabilir hale getirmenize olanak tanır.

Dış konumu bir veya daha fazla çalışma alanına bağlama

Belirli çalışma alanlarına dış konum atamak için Katalog Gezgini'ni veya Databricks CLI'yi kullanabilirsiniz.

Gerekli İzinler: Meta veri deposu yöneticisi, dış konum sahibi veya dış konumda MANAGE.

Not

Meta veri deposu yöneticileri Katalog Gezgini'ni kullanarak bir meta veri deposundaki tüm dış konumları görebilir ve dış konum sahipleri, dış konumun geçerli çalışma alanına atanıp atanmadığından bağımsız olarak bir meta veri deposunda sahip oldukları tüm dış konumları görebilir. Çalışma alanına atanmamış harici konumlar gri renkte gösterilir.

Katalog Gezgini

  1. Meta veri deposuna bağlı bir çalışma alanına oturum açın.

  2. Kenar çubuğunda Veri simgesine tıklayın.Katalog'a gidin.

  3. Hızlı erişim sayfasında Dış veriler >Dış Konumlar sekmesine gidin.

  4. Dış konumu seçin ve Çalışma Alanları sekmesine gidin.

  5. Çalışma Alanları sekmesinde Tüm çalışma alanlarının erişimi var onay kutusunu temizleyin.

    Dış konumunuz zaten bir veya daha fazla çalışma alanına bağlıysa, bu onay kutusu zaten işaretlenmemiştir.

  6. Atama için Çalışma alanlarını seç seçeneğine tıklayın ve atamak istediğiniz çalışma alanlarını girin veya bulun.

Erişimi iptal etmek için Çalışma Alanları sekmesine gidin, çalışma alanını seçin ve İptal Et'e tıklayın. Tüm çalışma alanlarından erişime izin vermek için Tüm çalışma alanlarının erişimi var onay kutusunu seçin.

CLI

Çalışma alanına dış konum atamak için iki Databricks CLI komut grubu ve iki adım gerekir.

Aşağıdaki örneklerde, <profile-name>'yi Azure Databricks kimlik doğrulama yapılandırma profilinizin adıyla değiştirin. Kişisel erişim belirtecini oluşturduğunuz çalışma alanının çalışma alanı örneği adına ve çalışma alanı kimliğine ek olarak kişisel erişim belirtecinin değerini içermelidir. Bkz. Azure Databricks kişisel erişim jetonu kimlik doğrulaması.

  1. external-locations Dış konumu updateisolation modeolarak ayarlamak için komut grubunun ISOLATED komutunu kullanın:

    databricks external-locations update <my-location> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    Varsayılan isolation-mode, meta veri deposuna bağlı tüm çalışma alanları için OPEN'dir.

  2. workspace-bindings Çalışma alanlarını dış konuma atamak için komut grubunun update-bindings komutunu kullanın:

    databricks workspace-bindings update-bindings external-location <my-location> \
    --json '{
      "add": [{"workspace_id": <workspace-id>}...],
      "remove": [{"workspace_id": <workspace-id>}...]
    }' --profile <profile-name>
    

    "add" ve "remove" özelliklerini kullanarak çalışma alanı bağlamaları ekleyin veya kaldırın.

    Not

    Dış konumlar için salt okunur bağlanma (BINDING_TYPE_READ_ONLY) kullanılamaz. Bu nedenle dış konum bağlaması için binding_type ayarlamanıza gerek yoktur.

Dış konumun tüm çalışma alanı atamalarını listelemek için komut grubunun workspace-bindings komutunu kullanınget-bindings:

databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>

Ayrıca bkz. REST API başvurusunda Çalışma Alanı Bağlamaları .

Çalışma alanından dış konumun bağlantısını kaldırma

Katalog Gezgini'ni veya workspace-bindings CLI komut grubunu kullanarak dış konuma çalışma alanı erişimini iptal etme yönergeleri, Dış konumu bir veya daha fazla çalışma alanına bağlama bölümüne eklenir.

Sonraki adımlar