Databricks Varlık Paketlerini kullanarak Azure Databricks'te iş geliştirme
Yalnızca paket olarak da bilinen Databricks Varlık Paketleri, dağıtmak istediğiniz yapıtları ve çalıştırmak istediğiniz işler gibi Azure Databricks kaynaklarının ayarlarını içerir ve bunları program aracılığıyla doğrulamanızı, dağıtmanızı ve çalıştırmanızı sağlar. Bkz . Databricks Varlık Paketleri nedir?.
Bu makalede, bir işi program aracılığıyla yönetmek için nasıl paket oluşturulacağı açıklanır. Databricks üzerinde orkestrasyona genel bakış için bkz. . Paket, Python için Databricks Varlık Paketleri varsayılan paket şablonu kullanılarak oluşturulur ve bu şablon, çalıştırılacak işin tanımıyla eşleştirilmiş bir not defterinden oluşur. Ardından dağıtılan işi Azure Databricks çalışma alanınızda doğrular, dağıtır ve çalıştırırsınız.
İpucu
Azure Databricks İşleri kullanıcı arabirimi veya API kullanılarak oluşturulan ve paketlere taşımak istediğiniz mevcut işleriniz varsa, bunları bir paketin yapılandırma dosyalarında tanımlamanız gerekir. Databricks, önce aşağıdaki adımları kullanarak bir paket oluşturmanızı ve ardından paketin çalışıp çalışmadığını doğrulamanızı önerir. Daha sonra pakete ek iş tanımları, not defterleri ve diğer kaynaklar ekleyebilirsiniz. Bkz. Var olan bir iş tanımını bir pakete ekleme.
Gereksinimler
- Databricks CLI sürüm 0.218.0 veya üzeri. Yüklü Databricks CLI sürümünüzü denetlemek için komutunu
databricks -v
çalıştırın. Databricks CLI'yi yüklemek veya güncellemek için Databricks CLI Yükleme veya Güncellemebölümüne bakın. - Uzak Databricks çalışma alanında çalışma alanı dosyaları etkinleştirilmelidir. Bkz . Çalışma alanı dosyaları nedir?.
Proje şablonu kullanarak paket oluşturma
İlk olarak Databricks Varlık Paketleri varsayılan Python şablonunu kullanarak bir paket oluşturun. Paket şablonları hakkında daha fazla bilgi için bkz . Databricks Varlık Paketi proje şablonları.
Sıfırdan bir paket oluşturmak istiyorsanız, El ile paket oluşturma'yı inceleyin.
1. Adım: Kimlik doğrulamayı ayarlama
Bu adımda, geliştirme makinenizdeki Databricks CLI ile Azure Databricks çalışma alanınız arasında kimlik doğrulamasını ayarlarsınız. Bu makalede, OAuth kullanıcıdan makineye (U2M) kimlik doğrulamasını ve kimlik doğrulaması için adlı DEFAULT
ilgili Azure Databricks yapılandırma profilini kullanmak istediğiniz varsayılır.
Not (dikkat)
U2M kimlik doğrulaması, bu adımları gerçek zamanlı olarak denemek için uygundur. Tam otomatik iş akışları için Databricks bunun yerine OAuth makineden makineye (M2M) kimlik doğrulamasını kullanmanızı önerir. Kimlik Doğrulama'daki M2M kimlik doğrulaması kurulum yönergelerine bakın.
-
Aşağıdaki komutta,
<workspace-url>
'yi kendi Azure Databricks çalışma alanı başına URL'nizle değiştirin, örneğinhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Databricks CLI, Azure Databricks yapılandırma profili olarak girdiğiniz bilgileri kaydetmenizi ister. Önerilen profil adını kabul etmek için basın
Enter
veya yeni veya mevcut bir profilin adını girin. Girdiğiniz bilgilerle aynı ada sahip mevcut tüm profillerin üzerine yazılır. Birden çok çalışma alanında kimlik doğrulama bağlamınızı hızla değiştirmek için profilleri kullanabilirsiniz.Mevcut profillerin listesini almak için, ayrı bir terminalde veya komut isteminde Databricks CLI'yı kullanarak komutunu
databricks auth profiles
çalıştırın. Belirli bir profilin mevcut ayarlarını görüntülemek için komutunudatabricks auth env --profile <profile-name>
çalıştırın.Web tarayıcınızda, Azure Databricks çalışma alanınızda oturum açmak için ekrandaki yönergeleri tamamlayın.
Profilin geçerli OAuth belirteci değerini ve belirtecin yaklaşan süre sonu zaman damgasını görüntülemek için aşağıdaki komutlardan birini çalıştırın:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Aynı
--host
değere sahip birden çok profiliniz varsa Databricks CLI'sının--host
doğru eşleşen OAuth belirteci bilgilerini bulmasına yardımcı olmak için ve-p
seçeneklerini birlikte belirtmeniz gerekebilir.
2. Adım: Paketi başlatma
Varsayılan Python paket projesi şablonunu kullanarak bir paket başlatın.
Yerel geliştirme makinenizde şablonun oluşturulan paketini içerecek bir dizine geçmek için terminalinizi veya komut isteminizi kullanın.
Komutu çalıştırmak için Databricks CLI'yi
bundle init
kullanın:databricks bundle init
Template to use
için,Enter
tuşuna basarakdefault-python
varsayılan değerinde bırakın.için
Unique name for this project
varsayılan değerinimy_project
bırakın veya farklı bir değer yazın ve tuşuna basınEnter
. Bu, bu paket için kök dizinin adını belirler. Bu kök dizin, geçerli çalışma dizininizde oluşturulur.Include a stub (sample) notebook
içinyes
seçin veEnter
tuşuna basın.Include a stub (sample) DLT pipeline
içinno
seçin veEnter
tuşuna basın. Bu, Databricks CLI'ya paketinizde örnek bir DLT işlem hattı tanımlamamasını belirtir.Include a stub (sample) Python package
içinno
seçin veEnter
tuşuna basın. Bu, Databricks CLI'ya paketinize örnek Python tekerlek paketi dosyaları veya ilgili derleme yönergeleri eklememesi talimatını vermektedir.
3. Adım: Paketi keşfetme
Şablonun oluşturduğu dosyaları görüntülemek için yeni oluşturduğunuz paketin kök dizinine geçin. Belirli bir ilgi alanı olan dosyalar şunlardır:
-
databricks.yml
: Bu dosya paketin programlı adını belirtir, iş tanımına bir başvuru içerir ve hedef çalışma alanıyla ilgili ayarları belirtir. -
resources/<project-name>_job.yml
: Bu dosya, varsayılan not defteri görevi dahil olmak üzere işin ayarlarını belirtir. -
src/notebook.ipynb
: Bu dosya, çalıştırıldığında 1 ile 10 arasında sayıları içeren bir RDD başlatan örnek bir not defteridir.
İşleri özelleştirmek için, bir iş bildirimindeki eşlemeler, REST API başvurusunda POST /api/2.1/jobs/create içinde belgelendiği gibi iş oluşturma işleminin YAML biçiminde ifade edilen istek yüküne karşılık gelir.
İpucu
Databricks Varlık Paketleri'nde küme ayarlarını geçersiz kılma başlığında açıklanan teknikleri kullanarak paketlerde yeni iş kümelerinin ayarlarını tanımlayabilir, birleştirebilir ve geçersiz kılabilirsiniz.
4. Adım: Projenin paket yapılandırma dosyasını doğrulama
Bu adımda paket yapılandırmasının geçerli olup olmadığını denetlersiniz.
Kök dizinden Databricks CLI'sini
bundle validate
kullanarak komutu aşağıdaki gibi çalıştırın:databricks bundle validate
Paket yapılandırmasının özeti döndürülürse doğrulama başarılı olur. Herhangi bir hata döndürülürse, hataları düzeltin ve bu adımı yineleyin.
Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek için bu adımı yinelemelisiniz.
5. Adım: Yerel projeyi uzak çalışma alanına dağıtma
Bu adımda, yerel not defterini uzak Azure Databricks çalışma alanınıza dağıtacak ve çalışma alanınızda Azure Databricks işini oluşturacaksınız.
Aşağıdaki komutu çalıştırmak için paket kökünden Databricks CLI'sini
bundle deploy
kullanın:databricks bundle deploy -t dev
Yerel not defterinin dağıtılıp dağıtılmadığını denetleyin: Azure Databricks çalışma alanınızın kenar çubuğunda Çalışma Alanı'na tıklayın.
Users>
<your-username>
> .bundle ><project-name>
> dev > files > src klasörüne tıklayın. Not defteri bu klasörde olmalıdır.İşin oluşturulup oluşturulmadığını denetleyin: Azure Databricks çalışma alanınızın kenar çubuğunda İş Akışları'na tıklayın.
İşler sekmesinde [dev
<your-username>
]<project-name>_job
öğesine tıklayın.Görevler sekmesine tıklayın. Bir görev olmalıdır: notebook_task.
Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek için 4-5 arası adımları yineleyip projeyi yeniden dağıtmanız gerekir.
6. Adım: Dağıtılan projeyi çalıştırma
Bu adımda, çalışma alanınızdaki Azure Databricks işinin çalıştırılmasını komut satırından tetiklersiniz.
Kök dizinden, Databricks CLI'yi kullanarak
bundle run
komutunu aşağıdaki gibi çalıştırın ve<project-name>
ile 2. Adım'daki proje adınızı değiştirin.databricks bundle run -t dev <project-name>_job
Terminalinizde görünen değerini
Run URL
kopyalayın ve bu değeri web tarayıcınıza yapıştırarak Azure Databricks çalışma alanınızı açın. Bkz. Databricks Varlık Paketi ile oluşturulan bir işi görüntüleme ve çalıştırmaAzure Databricks çalışma alanınızda, iş görevi başarıyla tamamlandıktan ve yeşil başlık çubuğu gösterildikten sonra, sonuçları görmek için iş görevine tıklayın.
Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek, projeyi yeniden dağıtmak ve yeniden dağıtılan projeyi çalıştırmak için 4-6 arası adımları yinelemelisiniz.
7. Adım: Temizleme
Bu adımda, dağıtılan not defterini ve işi çalışma alanınızdan silersiniz.
Kök dizinden Databricks CLI'sini
bundle destroy
kullanarak komutu aşağıdaki gibi çalıştırın:databricks bundle destroy -t dev
İş silme isteğini onaylayın: Kaynakları kalıcı olarak yok etmek isteyip istemediğiniz sorulduğunda yazın
y
ve tuşuna basınEnter
.Not defteri silme isteğini onaylayın: Önceden dağıtılan klasörü ve tüm dosyalarını kalıcı olarak yok etmek isteyip istemediğiniz sorulduğunda yazın
y
ve tuşuna basınEnter
.Paketi geliştirme makinenizden de silmek istiyorsanız, artık 2. Adım'dan yerel dizini silebilirsiniz.
Pakete mevcut iş tanımını ekleme
Paket yapılandırma dosyasında iş tanımlamak için temel olarak mevcut bir işi kullanabilirsiniz. Mevcut iş tanımını almak için kullanıcı arabirimini kullanarak el ile alabilir veya Databricks CLI kullanarak program aracılığıyla oluşturabilirsiniz.
Paketlerdeki iş tanımı hakkında bilgi için iş bölümüne bakın.
Kullanıcı arabirimini kullanarak mevcut iş tanımını alma
Azure Databricks çalışma alanı kullanıcı arabiriminden mevcut iş tanımının YAML gösterimini almak için:
Azure Databricks çalışma alanınızın kenar çubuğunda İş Akışları'ne tıklayın.
İşler sekmesinde, işinizin Ad bağlantısına tıklayın.
Şimdi çalıştır düğmesinin yanında kebap menüsüne tıklayın ve ardından Koda geç (YAML) seçeneğine tıklayın.
Kopyaladığınız YAML'yi paketinizdeki
databricks.yml
dosyanıza ekleyin veya paket projenizinresources
dizininde işiniz için bir yapılandırma dosyası oluşturun ve bu dosyayadatabricks.yml
dosyanızdan başvurun. Bkz. (/dev-tools/bundles/settings.md#resources).Mevcut işte başvuruda bulunan Python dosyalarını ve not defterlerini indirip paketin proje kaynağına ekleyin. Genellikle paket yapıtları bir paketteki
src
dizinde bulunur.İpucu
Azure Databricks çalışma alanından bir not defterini biçimine aktarmak için, Azure Databricks not defteri kullanıcı arabiriminden
.ipynb
Dosya > Dışa Aktar > IPython Not Defteri'ni seçebilirsiniz.Not defterlerinizi, Python dosyalarınızı ve diğer yapıtlarınızı pakete ekledikten sonra iş tanımınızın bunlara düzgün başvurduğunu doğrulayın. Örneğin, paketin dizinindeki
hello.ipynb
adlısrc
bir not defteri için:resources: jobs: hello-job: name: hello-job tasks: - task_key: hello-task notebook_task: notebook_path: ../src/hello.ipynb
Databricks CLI kullanarak mevcut iş tanımını oluşturma
Mevcut bir iş için program aracılığıyla paket yapılandırması oluşturmak için:
İşler kullanıcı arabirimindeki işin İş ayrıntıları yan panelinden mevcut işin kimliğini alın veya Databricks CLI
databricks jobs list
komutunu kullanın.bundle generate job
Databricks CLI komutunu çalıştırarak iş kimliğini ayarlayın:databricks bundle generate job --existing-job-id 6565621249
Bu komut, paketin
resources
klasöründe iş için bir paket yapılandırma dosyası oluşturur ve başvurulan yapıtlarısrc
klasörüne indirir.İpucu
İlk defa
bundle deployment bind
öğesini kullanarak bir paketteki kaynağı çalışma alanındaki bir kaynağa bağlarsanız, çalışma alanındaki kaynak, sonrakibundle deploy
'den sonra bağlı olduğu pakette tanımlanan yapılandırmaya göre güncellenir.bundle deployment bind
hakkında bilgi için bkz Paket kaynaklarını bağlama.
Sunucusuz işlem kullanan bir iş yapılandırma
Aşağıdaki örneklerde sunucusuz işlem kullanan bir iş oluşturmak için paket yapılandırmaları gösterilmektedir.
Not defteri görevleri içeren bir işi çalıştırmak için sunucusuz işlem kullanmak için paket yapılandırma dosyasındaki job_clusters
yapılandırmayı atlayın.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: baby-names
resources:
jobs:
retrieve-filter-baby-names-job-serverless:
name: retrieve-filter-baby-names-job-serverless
tasks:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./retrieve-baby-names.py
- task_key: filter-baby-names-task
depends_on:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./filter-baby-names.py
targets:
development:
workspace:
host: <workspace-url>
Python görevlerini içeren bir işi çalıştırmak için sunucusuz işlem kullanmak için yapılandırmayı environments
ekleyin.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: serverless-python-tasks
resources:
jobs:
serverless-python-job:
name: serverless-job-with-python-tasks
tasks:
- task_key: wheel-task-1
python_wheel_task:
entry_point: main
package_name: wheel_package
environment_key: Default
environments:
- environment_key: Default
spec:
client: '1'
dependencies:
- workflows_authoring_toolkit==0.0.1
targets:
development:
workspace:
host: <workspace-url>
Bkz İş akışları için sunucusuz işlemle Azure Databricks işinizi çalıştırma.