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. Bkz. İş akışlarını zamanlama ve düzenleme. 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. Pakete var olan iş tanımını 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'yı yüklemek için bkz . Databricks CLI'yı yükleme veya güncelleştirme. - 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 bkz . El ile paket oluşturma.
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
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ğrulaması'nda M2M kimlik doğrulaması kurulum yönergelerine bakın.
-
Aşağıdaki komutta değerini çalışma alanı başına Azure Databricks URL'nizle değiştirin
<workspace-url>
, ö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'yi 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
için
Template to use
, tuşuna basarakEnter
varsayılan değerinidefault-python
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.için
Include a stub (sample) notebook
öğesini seçinyes
ve tuşuna basınEnter
.için
Include a stub (sample) DLT pipeline
öğesini seçinno
ve tuşuna basınEnter
. Bu, Databricks CLI'ya paketinizde örnek bir Delta Live Tables işlem hattı tanımlamamasını sağlar.için
Include a stub (sample) Python package
öğesini seçinno
ve tuşuna basınEnter
. 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'sini
bundle run
kullanarak komutunu aşağıdaki gibi çalıştırın ve değerini 2. Adımdaki projenizin adıyla değiştirin<project-name>
: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 bkz . iş.
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 ve ardından Koda geç (YAML) seçeneğine tıklayın.
Paketinizin dosyasına kopyaladığınız YAML'yi
databricks.yml
ekleyin veya paket projenizin dizininderesources
işiniz için bir yapılandırma dosyası oluşturun ve dosyanızdandatabricks.yml
bu dosyaya 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 not defteri kullanıcı arabiriminden Dosya > Dışarı Aktarma > IPython Not Defteri'ne tıklayarak mevcut bir not defterini Azure Databricks çalışma alanından
.ipynb
biçime aktarabilirsiniz.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
src
adlıhello.ipynb
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 klasöründeki iş için bir paket
resources
yapılandırma dosyası oluşturur ve başvurulan yapıtları klasöresrc
indirir.İpucu
İlk olarak bir paketteki kaynağı çalışma alanında bir kaynağa bağlamak için kullanırsanız
bundle deployment bind
, çalışma alanı içindeki kaynak sonrakinden sonrabundle deploy
bağlandığı pakette tanımlanan yapılandırmaya göre güncelleştirilir. hakkındabundle deployment bind
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.