Dış konumları yönetme

Bu sayfada dış konumları listeleme, görüntüleme, güncelleştirme, izin verme, dosya olaylarını yönetme ve silme işlemleri açıklanmaktadır.

Not

Databricks, birimleri kullanarak dosya erişiminin yönetilmesini önerir. Bkz . Unity Kataloğu birimleri nedir?.

Dış konumu açıklama

İzinler ve çalışma alanı erişimi de dahil olmak üzere bir dış konumun özelliklerini görmek için Katalog Gezgini'ni veya SQL komutunu kullanabilirsiniz.

Katalog Keşif Aracı

  1. Kenar çubuğunda Veri simgesine tıklayın.Katalog'a gidin.
  2. Bağlan>Dış Konumlar'a tıklayın.
  3. Özelliklerini görüntülemek için dış konumun adına tıklayın.

SQL

Aşağıdaki komutu bir not defterinde veya Databricks SQL düzenleyicisinde çalıştırın. yerine <location-name> dış konumun adını yazın.

DESCRIBE EXTERNAL LOCATION <location-name>;

Dış konumda izinleri gösterme

Dış konumdaki izinleri görüntülemek için Katalog Gezgini'ni veya SQL komutunu kullanabilirsiniz.

Katalog Keşif Aracı

  1. Kenar çubuğunda Veri simgesine tıklayın.Katalog'a gidin.
  2. Bağlan>Dış Konumlar'a tıklayın.
  3. Harici konumun adına tıklayın.
  4. İzinler'e tıklayın.

SQL

Dış konumda izinleri göstermek için aşağıdaki gibi bir komut kullanın. İsteğe bağlı olarak sonuçları yalnızca belirtilen sorumluya yönelik izinleri gösterecek şekilde filtreleyebilirsiniz.

SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location-name>;

Yer tutucu değerlerini değiştirin:

  • <location-name>: Bulut kiracınızdaki depolama kapsayıcısından veya demetten okuma ve yazma yetkisi veren dış konumun adı.
  • <principal>: Hesap düzeyindeki bir kullanıcının e-posta adresi veya hesap düzeyi grubunun adı. Bir grup veya kullanıcı adı boşluk veya @ simge içeriyorsa, kesme işaretlerini değil, çevresinde ters işaret (` `) kullanın.

Harici bir konuma izinleri ver

Bu bölümde, bir not defterinde veya SQL sorgusunda Katalog Gezgini ve SQL komutlarını kullanarak bir dış konumda izin verme ve iptal etme işlemleri açıklanmaktadır. Bunun yerine Databricks CLI veya Terraform kullanma hakkında bilgi için Databricks Terraform belgelerine ve Databricks CLI'ya bakın.

Gerekli İzinler: Hem meta veri deposu hem de dış konumda başvurulan depolama kimlik bilgisindeki CREATE EXTERNAL LOCATION ayrıcalığı veya dış konumdaki MANAGE ayrıcalığı. Meta veri deposu yöneticileri, varsayılan olarak meta veri deposunda CREATE EXTERNAL LOCATION'ye sahiptir.

Not

WRITE FILES, READ FILES izninin aynı dış konumda verilmesini de gerektirir. Yazma işlemleri, okuma erişimi gerektiren meta veri denetimlerini ve yol doğrulamayı içerir. Sadece WRITE FILES ile bir kullanıcı, dosya yazmaya çalışırken bir PERMISSION_DENIED hatası alır. Her iki ayrıcalığı birlikte vermek için aşağıdakileri kullanın:

GRANT READ FILES, WRITE FILES ON EXTERNAL LOCATION <location-name> TO <principal>;

Dış konum kullanma izni vermek için:

Katalog Keşif Aracı

  1. Kenar çubuğunda Veri simgesine tıklayın.Katalog'a gidin.
  2. Bağlan>Dış Konumlar'a tıklayın.
  3. Harici konumun özelliklerini açmak için adına tıklayın.
  4. İzinler'e tıklayın.
  5. Kullanıcılara veya gruplara izin vermek için her kimliği seçin ve ardından Ver'e tıklayın.
  6. Kullanıcı veya grup izinlerini iptal etmek için her bir kimliği seçin ve ardından İptal Et'e tıklayın.

SQL

Aşağıdaki SQL komutunu bir not defterinde veya SQL sorgu düzenleyicisinde çalıştırın. Bu örnek, dış konuma başvuran bir dış tablo oluşturma olanağı verir:

GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location-name> TO <principal>;

Yer tutucu değerlerini değiştirin:

  • <location-name>: Bulut kiracınızdaki depolama kapsayıcısından veya demetten okuma ve yazma yetkisi veren dış konumun adı.
  • <principal>: Hesap düzeyindeki bir kullanıcının e-posta adresi veya hesap düzeyi grubunun adı. Bir grup veya kullanıcı adı boşluk veya @ simgesi içeriyorsa, etrafında ters tırnak kullanın (kesme işareti kullanmayın). Örneğin finans ekibi .

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 . Çalışma alanı kataloğu bağlama.

Ö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 Keşif Aracı

  1. Meta veri deposuyla bağlantılı bir çalışma alanına giriş yapın.

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

  3. Bağlan>Dış Konumlar'a tıklayın.

  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. Çalışma alanlarına ayır'ı tıklayın ve atamak istediğiniz çalışma alanlarını girin veya arayın.

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> yerine Azure Databricks kimlik doğrulama yapılandırma profilinizin adını yazın. Kişisel erişim belirtecini oluşturduğunuz çalışma alanının adı ve kimliğinin yanı sıra, kişisel erişim belirtecinin değerini de içermelidir. Bkz Kişisel erişim belirteci kimlik doğrulaması (eski).

  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, çalışma alanı bağlamalarını eklemek veya kaldırmak için kullanı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.

Dış konumun sahibini değiştirme

Harici bir konumun oluşturucusu, onun ilk sahibi olur. Sahibi farklı bir hesap düzeyinde kullanıcı veya grupla değiştirmek için Katalog Gezgini'ni veya SQL komutunu kullanabilirsiniz.

Gerekli İzinler: Dış konum sahibi veya MANAGE ayrıcalığına sahip bir kullanıcı.

Katalog Keşif Aracı

  1. Kenar çubuğunda Veri simgesine tıklayın.Katalog'a gidin.
  2. Bağlan>Dış Konumlar'a tıklayın.
  3. Harici konumun adına tıklayın.
  4. Edit iconEdit iconSahip'in yanındaki tıklayın.
  5. Bir yetkiliyi aramak ve seçmek için yazın.
  6. Kaydet'e tıklayın.

SQL

Aşağıdaki komutu bir not defterinde veya Databricks SQL düzenleyicisinde çalıştırın. Yer tutucu değerlerini değiştirin:

  • <location-name>: Kimlik bilgilerinin adı.
  • <principal>: Hesap düzeyindeki bir kullanıcının e-posta adresi veya hesap düzeyi grubunun adı. Bir grup veya kullanıcı adı boşluk veya @ simgesi içeriyorsa, etrafında ters tırnak kullanın (kesme işareti kullanmayın). Örneğin finans ekibi .
ALTER EXTERNAL LOCATION <location-name> OWNER TO <principal>

Dış konumu salt okunur olarak işaretleme

Kullanıcıların bir dış konuma salt okunur erişimi olmasını istiyorsanız, dış konumu salt okunur olarak işaretlemek için Katalog Gezgini'ni kullanabilirsiniz. Bu değişikliğin tüm işlem kaynakları genelinde geçerli olması 60 dakika kadar sürebilir.

Harici konumları salt okunur yapma:

  • Kullanıcıların, depolama kimlik bilgilerinin dayandığı Azure tarafından yönetilen kimlik aracılığıyla verilen herhangi bir yazma izninden bağımsız olarak ve bu dış konuma tanınmış olan Unity Kataloğu izinlerinden bağımsız olarak, dış konumlardaki dosyalara yazmalarını engeller.
  • Kullanıcıların bu dış konumlardaki tablolara veri eklemesini engeller.
  • Kullanıcıların bu dış konumlarda yönetilen tablolar veya birimler oluşturmasını engeller.
  • Salt okunur dış konumları kullanarak katalog oluşturmayı engeller.
  • Sistemin oluşturma zamanında dış konumu düzgün bir şekilde doğrulamasını sağlar.

Dış konumları oluşturduğunuzda, onları salt okunur olarak işaretleyebilirsiniz.

Dış konum oluşturduktan sonra salt okunur durumunu değiştirmek için Katalog Gezgini'ni de kullanabilirsiniz:

  1. Kenar çubuğunda Veri simgesine tıklayın.Katalog'a gidin.
  2. Bağlan>Dış Konumlar'a tıklayın.
  3. Dış konumu seçin, Kebap menü simgesine tıklayın.Bağlantıyı test et düğmesinin yanındaki menü ve Düzenle'yi seçin.
  4. Düzenle iletişim kutusunda Gelişmiş Seçenekler'e tıklayın ve Salt okunur kullanımla sınırla seçeneğini belirleyin.
  5. Güncelleştir'i tıklatın.

Dış konumda şifreleme algoritması yapılandırma (yalnızca AWS S3)

AWS, istemci tarafından şifreleme başlıklarının ayarlanmasını gerektiren S3 kovası politikalarını destekler. AWS belgelerinde Şifreleme gerektirme bölümüne bakın. S3 demetiniz isteklerde şifreleme üst bilgileri gerektiriyorsa Unity Kataloğu'ndaki dış konumda bir şifreleme algoritması yapılandırmanız gerekir. Bu ayar, S3 veri alanınızdaki verilere erişirken doğru başlığı yapılandırmak için kullanılır. Bu özellik OpenSharing kullanılarak paylaşılan dış tablolara erişmek için desteklenmez.

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

  2. Bağlan>Dış Konumlar'a tıklayın.

  3. Dış konumu seçin. Depolama kimlik bilgileri için dış konum bir IAM rolü kullanmalıdır.

  4. Kebap menü simgesine tıklayın. Bağlantıyı test et düğmesinin yanındaki kebap menüsüne tıklayın ve Düzenle'yi seçin.

  5. Düzenle iletişim kutusunda Gelişmiş Seçenekler'e tıklayın.

  6. Şifreleme Algoritması altında, şifreleme anahtarınıza bağlı olarak SSE-SE veya SSE-KMS'yi seçin.

    SSE-KMS için, Şifreleme KMS anahtarı arn altında, S3 konumuna erişirken istemciler tarafından başvurulan KMS anahtarının ARN'sini yapıştırın.

  7. Güncelleştir'i tıklatın.

Dış konum için dosya olaylarını ayarlama

Not

Dosya olaylarının bulunduğu dış konumlar, dosya olayları olmadan dış konumlara kıyasla verilerinize Azure Databricks daha fazla erişim vermez. Daha fazla bilgi için Dosya olayları hakkında sık sorulan sorular bölümüne göz atın.

Bulut sağlayıcısı tarafından gönderilen değişiklik bildirimlerini almak istiyorsanız, dış konum için dosya olaylarını etkinleştirmenin aşağıdaki avantajları vardır:

Dosya olaylarının alımla nasıl etkileşime geçtiğini ayrıntılı bir genel bakış için bkz. Dosya olaylarıyla otomatik yükleyiciye genel bakış. Maliyet, güvenlik ve kurulum gibi dosya olayları hakkında sık sorulan sorular için bkz. Dosya olayları SSS.

Başlamadan önce

Azure Databricks'in sizin adınıza Azure Data Lake Storage Kuyruklarını veya SQS kuyruklarını yapılandırmasını istiyorsanız, dış konumunuzun bu işlemleri yapması için yeterli izinlere sahip bir depolama kimlik bilgisine referans vermesi gerekir. Yönergeler için sonraki adıma bakın.

Ayrıca kendi Azure Data Lake depolama kuyruğunuzu veya SQS kuyruğunuzu da oluşturabilirsiniz. Ancak Databricks bunu tavsiye etmez ve kaynaklarınızı yapılandırmanız için destek sağlayamaz. Yine de bunu yapmayı seçerseniz, depolama kimlik bilgileriyle temsil edilen kimliğin bu Azure Data Lake depolama kuyruklarında aşağıdaki izne sahip olması gerekir:

  • Depolama Kuyruğu Veri Katkı Sağlayıcısı

SQS kuyrukları için, depolama kimlik bilgileriyle temsil edilen kimlik aşağıdaki izinlere sahip olmalıdır:

  • sqs:ReceiveMessage
  • sqs:DeleteMessage
  • sqs:PurgeQueue

1. Adım: Azure Databricks'nin Azure Data Lake Storage veya AWS S3'teki dosya olaylarına erişimi olduğunu onaylayın

Dış konum güvenliği sağlanabilir nesnesi için dosya olaylarını etkinleştirebilmeniz için önce Azure Data Lake Storage veya AWS S3 hesabınızın, yaydığı dosya olaylarına Azure Databricks erişim verecek şekilde yapılandırıldığından emin olmanız gerekir. Azure Databricks Azure Data Lake Storage veya AWS S3'te dosya olaylarını sizin için yapılandırmak istiyorsanız, Azure Databricks uygun erişime sahip olduğundan da emin olmanız gerekir.

Bu erişimi atamak, depolama kimlik bilgilerini yapılandırırken önerilen bir adımdır.

Azure Data Lake Storage kapsayıcılar için

Dış konuma erişim veren yönetilen kimliğin veya hizmet sorumlusunun düzgün yapılandırıldığını onaylamak için:

  1. Depolama kimlik bilgisi tanımlayıcısını alın.

    1. Kenar çubuğunda Veri simgesine tıklayın.Katalog'a gidin.
    2. Bağlan>Dış Konumlar'a tıklayın.
    3. Dış konumu seçin.
    4. Genel Bakış sekmesinde Kimlik bilgisi adına tıklayın.
    5. Depolama kimlik bilgisi tanımlayıcısını kopyalayın. Sonraki adımda bunu kullanacaksınız.
    • Yönetilen kimlik depolama kimlik bilgisi için Bağlayıcı Kimliği'ni veya Kullanıcı Tarafından Atanan Yönetilen Kimlik Kimliği'ni kopyalayın
    • Hizmet sorumlusu depolama kimlik bilgileri için Uygulama (istemci) kimliğini kopyalayın.
  2. Depolama kimlik bilgilerinin depolama hesabında aşağıdaki rollere erişimi olduğunu onaylayın:

    1. Azure Data Lake Storage depolama hesabınızda oturum açın.

    2. Access Control (IAM) gidin ve Erişimi denetle düğmesine tıklayın.

    3. Yönetilen kimlik için Kullanıcı tarafından atanan yönetilen kimlik veya Azure Databricks için Access Bağlayıcısı'nı seçin. Hizmet sorumlusu için Kullanıcı, grup veya hizmet sorumlusu seçin.

    4. 1. adımda kopyaladığınız depolama kimlik bilgisi tanımlayıcısını arayın.

    5. Depolama hesabında aşağıdaki rollere sahip olduğunu onaylayın:

      • Depolama Blob Verileri Katılımcısı: Verileri okuyup yazmak için gereklidir.
      • Depolama Kuyruğuna Veri Katkısı Yapan: Dosya etkinlik bildirimlerine abone olmak için gereklidir.
      • Depolama Hesabı Katkıda Bulunanı: Azure Databricks dosya olaylarını otomatik olarak yapılandırmasını istiyorsanız gereklidir. Bu rolü vermezseniz, Azure depolama kuyruğu el ile oluşturmanız ve olay aboneliğini kendiniz yapılandırmanız gerekir. El ile yapılandırma bir self servis işlemidir ve Databricks bu kaynakların ayarlanması için destek sağlamaz.
    6. Bu rollerden herhangi biri eksikse , Uygun atamalar sekmesine gidin ve bunları ekleyin.

  3. Depolama kimlik bilgilerinin depolama hesabını içeren kaynak grubunda gerekli rollere sahip olduğunu onaylayın:

    1. Azure Data Lake Storage hesabınızı içeren Azure kaynak grubuna gidin.

    2. Access Control (IAM) gidin ve Erişimi denetle düğmesine tıklayın.

    3. Yönetilen kimlik için Kullanıcı tarafından atanan yönetilen kimlik veya Azure Databricks için Access Bağlayıcısı'nı seçin. Hizmet sorumlusu için Kullanıcı, grup veya hizmet sorumlusu seçin.

    4. 1. adımda kopyaladığınız depolama kimlik bilgisi tanımlayıcısını arayın.

    5. Kaynak grubunda aşağıdaki role sahip olduğunu onaylayın:

      • EventGrid Data Contributor: Azure Databricks'in dosya olaylarını otomatik olarak yapılandırmasını istiyorsanız gereklidir. Bu rolü vermezseniz, olay aboneliğini kendiniz yapılandırmanız gerekir. El ile yapılandırma bir self servis işlemidir ve Databricks bu kaynakların ayarlanması için destek sağlamaz.
    6. Bu rol eksikse , Uygun atamalar'a tıklayın ve ekleyin.

  4. Depolama hesabı ağ kurallarınızda Bu kaynağa erişmek için güvenilir Microsoft hizmetlerine izin ver seçeneğinin etkin olduğundan emin olun.

Azure Data Lake Storage için sağlanan kuyruğu kullanma

Alternatif olarak, bildirim kaynaklarını kendiniz ayarlamak ve (File event typeProvided olarak ayarlanmış) bir kuyruk uç noktası ile Azure Databricks'e sağlamak üzere, dış konuma erişim izni veren yönetilen kimliğin veya hizmet sorumlusunun depolama hesabında Storage Kuyruk Veri Katkıda Bulunanı rolüne sahip olduğunu onaylayın. Bu bir self servis işlemdir ve Databricks kaynakları ayarlamak için destek sağlayamaz.

Sağlanan bir kuyruk kullanılırken, Azure Depolama Kuyruğu dış konumla eşleşen depolama kapsayıcısı için Azure Event Grid bildirimlerine abone olunmalıdır. Event Grid aboneliğini aşağıdaki olay türleriyle yapılandırın:

  • Microsoft.Storage.BlobCreated
  • Microsoft.Storage.BlobDeleted
  • Microsoft.Storage.BlobRenamed
  • Microsoft.Storage.DirectoryDeleted
  • Microsoft.Storage.DirectoryRenamed

Dış konum ön ekinin olaylarını filtrelemek için Event Grid aboneliğinde bir konu filtresi ayarlayın. Örneğin, dış konum abfss://my-container@my-account.dfs.core.windows.net/path/to/data belirtiyorsa, konu filtresini /blobServices/default/containers/my-container/blobs/path/to/data ile başlayacak şekilde ayarlayın.

S3 kovaları için

Azure Databricks’in kovanızın olay bildirimlerini yapılandırabildiğini ve bunlara abone olabildiğini doğrulamak için:

  1. IAM rolünü alın.

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

    2. Bağlan>Dış Konumlar'a tıklayın.

    3. Dış konumu seçin.

    4. Genel Bakış sekmesinde Kimlik bilgisi adına tıklayın.

    5. Depolama kimlik bilgilerine Genel Bakış sekmesinde IAM rolünü (ARN) kopyalayın.

      Sonraki adımda bunu kullanacaksınız.

  2. AWS hesabınızda oturum açın.

  3. IAM'ye gidin ve 1. adımda kopyaladığınız rolü arayın.

  4. İzin politikaları altında, IAM rolüyle ilişkili IAM politikasını veya politikalarını bulun ve açın.

  5. İlkeyi veya ilkeleri açın ve aşağıdaki özellikleri içeren bir ilke olduğunu onaylayın.

    Azure Databricks otomatik olarak bildirim kaynakları oluşturmasını sağlamak için (File event typeAutomatic olarak ayarlandığında), aşağıdaki ilkeyi kullanın. Azure Databricks hesabınızın kovanızın olay bildirimi yapılandırmasını güncelleştirmesine, bir SNS konusu oluşturmasına, bir SQS kuyruğu oluşturmasına ve SQS kuyruğunu SNS konusuna abone etmesini sağlar.

    <BUCKET> yerine S3 kovanızın adını yazın.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "ManagedFileEventsSetupStatement",
          "Effect": "Allow",
          "Action": [
            "s3:GetBucketNotification",
            "s3:PutBucketNotification",
            "sns:ListSubscriptionsByTopic",
            "sns:GetTopicAttributes",
            "sns:SetTopicAttributes",
            "sns:CreateTopic",
            "sns:TagResource",
            "sns:Publish",
            "sns:Subscribe",
            "sqs:CreateQueue",
            "sqs:DeleteMessage",
            "sqs:ReceiveMessage",
            "sqs:SendMessage",
            "sqs:GetQueueUrl",
            "sqs:GetQueueAttributes",
            "sqs:SetQueueAttributes",
            "sqs:TagQueue",
            "sqs:ChangeMessageVisibility",
            "sqs:PurgeQueue"
          ],
          "Resource": ["arn:aws:s3:::<BUCKET>", "arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"]
        },
        {
          "Sid": "ManagedFileEventsListStatement",
          "Effect": "Allow",
          "Action": ["sqs:ListQueues", "sqs:ListQueueTags", "sns:ListTopics"],
          "Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"]
        },
        {
          "Sid": "ManagedFileEventsTeardownStatement",
          "Effect": "Allow",
          "Action": ["sns:Unsubscribe", "sns:DeleteTopic", "sqs:DeleteQueue"],
          "Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"]
        }
      ]
    }
    

    S3 için sağlanan kuyruğu kullanma

    Alternatif olarak, bildirim kaynaklarını kendiniz için ayarlamak ve Azure Databricks'e bir kuyruk uç noktası (File event type, Provided olarak ayarlanmış) sağlamak için aşağıdaki ilkeyi kullanın. Bu bir self servis işlemdir ve Databricks kaynakları ayarlamak için destek sağlayamaz.

    yerine <QUEUE_NAME> SQS kuyruğunuzun adını yazın.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "ManagedFileEventsReadStatement",
          "Effect": "Allow",
          "Action": ["sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:PurgeQueue"],
          "Resource": ["arn:aws:sqs:*:*:<QUEUE_NAME>"]
        }
      ]
    }
    

    Sağlanan bir kuyruk kullanılırken, kuyruğun, dış konumla eşleşen kovadaki ön ekle ilgili S3 Olay bildirimlerine abone olması gerekir. Olaylar doğrudan kuyruğa yönlendirilebilir veya SNS veya EventBridge aracılığıyla yönlendirilebilir. Doğrudan SQS'ye veya SNS aracılığıyla yönlendirme yaparken kuyruğun aşağıdaki bildirimlere abone olduğundan emin olun:

    • s3:ObjectCreated:*
    • s3:ObjectRemoved:*
    • s3:LifecycleExpiration:*

    EventBridge üzerinden yönlendirme yaparken kuyruğun aşağıdaki bildirimlere abone olduğundan emin olun:

    • Object Created
    • Object Deleted

    Ayrıca bkz. ADLS 2. Nesil'e erişen bir depolama kimlik bilgisi oluşturma.

  6. Bu ilke eksikse IAM rolüne ekleyin.

2. Adım: Bir dosya olay türü seçin

Dosya olaylarını etkinleştirdiğinizde, bir dosya olay türü seçmeniz gerekir. Tür, bildirim altyapısını Azure Databricks veya kuruluşunuzun yönetip yönetmediğini belirler.

  • Automatic (önerilir): Azure Databricks bulut hesabınızda bildirim altyapısını oluşturur ve yönetir ve doğru ayarlandığını doğrular. Bu en basit kurulumdur ve dosya olayları izinlerinin ötesinde ek bulut yapılandırması gerektirmez.

    Automatic modunda dosya olaylarını etkinleştirdiğinizde Azure Databricks depolama hesabınızı Azure Event Grid ve Azure Depolama Kuyrukları kullanarak dosya değişikliği bildirimleri gönderecek şekilde yapılandırılır. Azure Databricks dosya olayları hizmeti, yeni ve değiştirilmiş dosyaları bulmak için kuyruktan dosya yolu meta verilerini okur. Dosya içeriği hiçbir zaman bu altyapı üzerinden iletilmez.

  • Provided: Bildirim kuyruğuyu kendiniz oluşturur, yönetir ve doğrular ve kuyruk ayrıntılarını Azure Databricks sağlarsınız. Bu modu yalnızca kuruluşunuzun güvenlik ilkeleri üçüncü taraf hizmetlerinin bulut kaynakları oluşturmasını yasaklarsa kullanın. Databricks sağlanan yapılandırmaları doğrulayamaz veya destek sağlayamaz; kurulum ve sorun giderme işlemleri self servis olarak gerçekleştirilir.

3. Adım: Katalog Gezgini'ni kullanarak dış konum için dosya olaylarını etkinleştirme

Dosya olayları tüm yeni dış konumlar için varsayılan olarak etkinleştirilir. Dış konumunuzda dosya olayları etkinleştirilmişse, bu adımı atlayabilirsiniz.

Mevcut bir konum için dosya olaylarını etkinleştirmek için:

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

  2. Bağlan>Dış Konumlar'a tıklayın.

  3. Dış konumu seçin.

  4. Kebap menü simgesine tıklayın. Bağlantıyı test et düğmesinin yanındaki kebap menüsüne tıklayın ve Düzenle'yi seçin.

  5. Düzenle iletişim kutusunda Gelişmiş Seçenekler'e tıklayın.

  6. Dosya olaylarını etkinleştir'i seçin.

  7. Dosya olay türünü seçin:

    Automatic: (Önerilir) Azure Databricks sizin için abonelikleri ve olayları ayarlamasını istiyorsanız bunu seçin.

    Sağlanmış: Zaten bir Azure depolama kuyruğu veya SQS kuyruğu yapılandırdıysanız, bunu seçin.

  8. Sağlanan dosya olay türünü seçtiyseniz, mevcut depolama kuyruğunun Kuyruk URL'sini girin:

    • Azure depolama kuyruğu: https://<storage account>.queue.core.windows.net/<queue>

    • AWS SQS kuyruğu: https://sqs.<region>.amazonaws.com/<account-ID>/<queue-name>

  9. Güncelleştir'i tıklatın.

  10. Birkaç saniye bekleyin ve dosya olaylarının başarıyla etkinleştirildiğini onaylamak için ana dış konum düzenleme sayfasında Bağlantıyı test et'e tıklayın.

Dosya olayları sınırlamaları

Dış konumlardaki dosya olayları aşağıdaki sınırlamalara sahiptir:

  • Dosya olayları önbelleği yalnızca son 7 gün içinde değiştirilen dosyaların meta verilerini tutar. Bu nedenle, yalnızca Otomatik Yükleyici'yi en az 7 günde bir çalıştırdığınızda artımlı okumaları destekleyebilir. Otomatik Yükleyici'yi en azından bu sıklıkta çalıştırmazsanız, önbelleği ve denetim noktasını yenilemek için tam dizin listesi gerçekleştirir.

  • Olay aktarım hızı saniyede alınan 2000 dosyayla sınırlıdır.

  • seçeneğini kullanarak resourceTags bulut kaynaklarını etiketleyemezsiniz. Bunun yerine, Otomatik Yükleyici hizmeti kuyruğunuzu ve abonelik kaynaklarınızı oluşturduktan sonra bulut konsolunu kullanarak kaynakları etiketleyin.

  • Bu depolama konumu için dış konum tanımlanmamışsa Unity Kataloğu meta veri deposu kök depolama konumu için dosya olaylarını ayarlayamazsınız.

    Unity Kataloğu'nda tanımlı dış konum nesnesi olmayan depolama konumlarında dosya olaylarını ayarlayamazsınız. Unity Kataloğu'nun bazı uygulamaları, dış konumla ilişkilendirilmemiş bir meta veri deposu kök depolama konumu içerir. Meta veri deposu kök depolama konumunuz için bu durumun söz konusu olup olmadığını belirlemek için:

    1. Hesap yöneticisi olarak hesap konsolunda oturum açın.

    2. Veri simgesine tıklayın. Katalog'a gidin.

    3. Meta veri deposu adına tıklayın.

    4. Yapılandırma sekmesine gidin.

    5. ADLS 2. Nesil yol değeri varsa meta veri deposu kökünüzün bunun için tanımlanmış bir dış konum nesnesi yoktur.

      Meta veri deposu kök depolama alanını dış konum kullanacak şekilde güncelleştirmek için Kaldır düğmesine tıklayın. Sizin için harici bir konum oluşturulacak. Ayrıntılar için bkz. Meta veri deposu düzeyinde depolamayı kaldırma.

  • Azure Blob Depolama desteklenmez.
  • Azure.Storage.Blobs kitaplığını kullanarak dosyaları Azure Data Lake Storage yüklemek, dosya olaylarının alınması sırasında yüksek gecikmelere neden olabilir. Bunu önlemek için bu kitaplığı dosya yüklemeleri için kullanmayın.
  • Azure Premium depolama hesabı kullanıyorsanız, Azure Depolama Kuyrukları yalnızca Standart depolama hesaplarında desteklendiğinden otomatik dosya olayı kurulumu kullanılamaz. Ayrı bir Standart depolama hesabında bir kuyruk yapılandırın ve dosya olay türü olarak seçin Provided .
  • Dosya olayları, dosyayı işlemek için FlushWithClose olayı dinler. Bazı Azure API kullanımı bu olayı yaymayabilir ve bu da dosya bulmayı geciktirebilir. Bu senaryoyla başa çıkabilmek için bkz. Klasik dosya bildirim olayları.

Dosya olayları olmadan dış konum oluşturma

Dosya olayları, maliyetleri düşürdüğü ve alım iş yükleri için performansı artırdığı için yeni dış konumlar için varsayılan olarak etkinleştirilir. Dosya olayları olmadan bir konum oluşturmanız gerekiyorsa (örneğin, IAM değişiklikleri onay sürecinizden geçerken), oluşturma sırasında bu konumu geri çevirebilirsiniz.

Katalog Keşif Aracı

  1. Kenar çubuğunda Veri simgesine tıklayın.Katalog'a gidin.
  2. Bağlan>Dış Konumlar'a tıklayın.
  3. Yeni bir dış konum oluşturmaya başlayın.
  4. Depolama kimlik bilgisinin dosya olayları izinleri yoksa bir doğrulama uyarısı görüntülenir. Devam etmek için Zorla oluştur seçeneğine tıklayın.
  5. Oluşturulduktan sonra konumu seçip dosya olayları ayarını denetleyerek dosya olaylarının devre dışı bırakıldığını doğrulayın.

API

Harici konum oluşturma isteğinde enable_file_events değerini false olarak ayarlayın.

Dış konumu düzenleyerek istediğiniz zaman dosya olaylarını etkinleştirebilirsiniz.

Dış konumu değiştirme

Dış konumun sahibi veya ayrıcalığı olan bir kullanıcı, dış konumu yeniden adlandırabilir, URI'sini değiştirebilir ve depolama kimlik bilgisini değiştirebilir.

Dış konumu yeniden adlandırmak için aşağıdakileri yapın:

Aşağıdaki komutu bir not defterinde veya Databricks SQL düzenleyicisinde çalıştırın. Yer tutucu değerlerini değiştirin:

  • <location-name>: Konumun adı.
  • <new-location-name>: Konum için yeni bir ad.
ALTER EXTERNAL LOCATION <location-name> RENAME TO <new-location-name>;

Bulut kiracınızda dış konumun işaret olduğu URI'yi değiştirmek için aşağıdakileri yapın:

Aşağıdaki komutu bir not defterinde veya Databricks SQL düzenleyicisinde çalıştırın. Yer tutucu değerlerini değiştirin:

  • <location-name>: Dış konumun adı.
  • <url>: Konumun bulut kiracınızda erişim yetkisi vermesi gereken yeni depolama URL'si.
ALTER EXTERNAL LOCATION location_name SET URL '<url>' [FORCE];

Dış FORCE tablolar dış konuma bağlı olsa bile bu seçenek URL'yi değiştirir.

Dış konumun kullandığı depolama kimlik bilgilerini değiştirmek için aşağıdakileri yapın:

Aşağıdaki komutu bir not defterinde veya Databricks SQL düzenleyicisinde çalıştırın. Yer tutucu değerlerini değiştirin:

  • <location-name>: Dış konumun adı.
  • <credential-name>: Bulut kiracınızdaki konumun URL'sine erişim sağlayan depolama kimlik bilgilerinin adı.
ALTER EXTERNAL LOCATION <location-name> SET STORAGE CREDENTIAL <credential-name>;

Bir dış konumu sil.

Dış konumu silmek (bırakmak) için, bu konumun sahibi olmanız veya dış konumda MANAGE ayrıcalığına sahip olmanız gerekir. Dış konumu silmek için aşağıdakileri yapın:

Aşağıdaki komutu bir not defterinde veya Databricks SQL düzenleyicisinde çalıştırın. Köşeli ayraç içindeki öğeler isteğe bağlıdır. yerine <location-name> dış konumun adını yazın.

DROP EXTERNAL LOCATION [IF EXISTS] <location-name>;