bundle
komut grubu
Not
Bu bilgiler Databricks CLI 0.205 ve üzeri sürümleri için geçerlidir. Databricks CLI Genel Önizleme aşamasındadır.
Databricks CLI kullanımı, Kullanım Verileri sağlamaları da dahil olmak üzere Databricks Lisansı ve Databricks Gizlilik Bildirimi'ne tabidir.
Databricks CLI içindeki bundle
komut grubu, Azure Databricks işleri, DLT işlem hatlarıve MLOps Stacks gibi Azure Databricks iş akışlarını programlama yoluyla doğrulamanıza, dağıtmanıza ve çalıştırmanıza olanak tanır. Bkz . Databricks Varlık Paketleri nedir?.
bundle
komutlarını databricks bundle
ekleyerek çalıştırırsınız.
bundle
komutunun yardımını görüntülemek için databricks bundle -h
komutunu çalıştırın.
Proje şablonundan paket oluşturma
Python için varsayılan Databricks Varlık Paketi şablonunu kullanarak bir Databricks Varlık Paketi oluşturmak için komutunu aşağıdaki gibi çalıştırın bundle init
ve ardından ekrandaki istemleri yanıtlayın:
databricks bundle init
Özel bir Databricks Varlık Paketi şablonu kullanarak Databricks Varlık Paketi oluşturmak için aşağıdaki komutu çalıştırın bundle init
:
databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"
Ayrıca bkz:
- Databricks Varlık Paketi proje şablonları
- Databricks Varlık Paketlerini kullanarak Azure Databricks'te iş geliştirme
- Databricks Varlık Paketleri ile DLT işlem hatlarını geliştirme
- MLOps Yığınları için Databricks Varlık Paketleri
Paket yapılandırma şemasını görüntüleme
Paket yapılandırma şemasını görüntülemek için komutunu aşağıdaki gibi çalıştırın bundle schema
:
databricks bundle schema
Databricks Varlık Paketi yapılandırma şemasını bir JSON dosyası olarak çıkarmak için komutunu çalıştırın bundle schema
ve çıkışı bir JSON dosyasına yeniden yönlendirin. Örneğin, aşağıdaki gibi geçerli dizin içinde adlı bundle_config_schema.json
bir dosya oluşturabilirsiniz:
databricks bundle schema > bundle_config_schema.json
Paketi doğrula
Paket yapılandırma dosyalarınızın söz dizimsel olarak doğru olduğunu doğrulamak için, aşağıdaki gibi paket projesi kökünden komutunu çalıştırın bundle validate
:
databricks bundle validate
Varsayılan olarak bu komut paket kimliğinin özetini döndürür:
Name: MyBundle
Target: dev
Workspace:
Host: https://my-host.cloud.databricks.com
User: someone@example.com
Path: /Users/someone@example.com/.bundle/MyBundle/dev
Validation OK!
Not
Kaynak bundle validate
özellikleri ilgili nesnenin şemasında bulunmayan paket yapılandırma dosyalarında tanımlanıyorsa, komut uyarı gönderir.
Yalnızca paketin kimliğinin ve kaynaklarının özetini çıkarmak istiyorsanız paket özetini kullanın.
Paket ağacını çalışma alanıyla eşitleme
Bir paketin dosya değişikliklerini yerel bir dosya sistemi dizininden, uzak bir Azure Databricks çalışma alanı içindeki bir dizine tek yönlü eşitlemek için bundle sync
komutunu kullanın.
Not
bundle sync
komutları, uzak Azure Databricks çalışma alanı içindeki bir dizindeki dosya değişikliklerini yerel bir dosya sistemi içindeki bir dizine eşitleyemez.
databricks bundle sync
komutları, databricks sync
komutları ile aynı şekilde çalışır ve üretkenlik kolaylığı olarak sunulur. Komut kullanımı bilgileri için bkz. sync
komut grubu.
Paket yapılandırma dosyası oluşturma
Komutunu kullanarak bundle generate
Databricks çalışma alanınızda zaten var olan bir iş, işlem hattı veya pano için kaynak yapılandırması oluşturabilirsiniz. Bu komut paket projesinin klasöründe iş, işlem hattı veya pano *.yml
için bir resources
dosya oluşturur ve ayrıca yapılandırmada başvurulan not defterleri gibi tüm dosyaları indirir.
İş veya işlem hattı yapılandırması oluştur
Önemli
bundle generate
Komut, kaynak yapılandırmasını otomatik olarak oluşturmak için kolaylık olarak sağlanır. Ancak, bu iş veya işlem hattı yapılandırması pakete eklenip dağıtıldığında yeni bir kaynak oluşturur ve ilk kez kullanılmadığı sürece bundle deployment bind
mevcut kaynağı güncelleştirmez. Bkz . Paket kaynaklarını bağlama.
bir iş veya işlem hattı için yapılandırma oluşturmak için komutunu aşağıdaki gibi çalıştırın bundle generate
:
databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]
Not
Şu anda yalnızca not defteri görevleri olan işler bu komut tarafından desteklenmektedir.
Örneğin, aşağıdaki komut aşağıdaki YAML'yi hello_job.yml
içeren paket proje klasöründe yeni resources
bir dosya oluşturur ve dosyasını simple_notebook.py
proje klasörüne src
indirir.
databricks bundle generate job --existing-job-id 6565621249
# This is the contents of the resulting hello_job.yml file.
resources:
jobs:
6565621249:
name: Hello Job
format: MULTI_TASK
tasks:
- task_key: run_notebook
existing_cluster_id: 0704-xxxxxx-yyyyyyy
notebook_task:
notebook_path: ./src/simple_notebook.py
source: WORKSPACE
run_if: ALL_SUCCESS
max_concurrent_runs: 1
Pano yapılandırması oluşturma
Çalışma alanında var olan bir pano için yapılandırma oluşturmak için komutunu çalıştırın bundle generate
ve panonun kimliğini veya çalışma alanı yolunu belirtin:
databricks bundle generate dashboard --existing-id [dashboard-id]
databricks bundle generate dashboard --existing-path [dashboard-workspace-path]
Çalışma alanı kullanıcı arabiriminden bir panoya ait çalışma alanı yolunu kopyalayabilirsiniz.
Örneğin, aşağıdaki komut paket proje klasöründe aşağıdaki YAML'yi içeren yeni baby_gender_by_county.dashboard.yml
bir dosya resources
oluşturur ve dosyayı proje klasörüne baby_gender_by_county.lvdash.json
indirirsrc
.
databricks bundle generate dashboard --existing-path "/Workspace/Users/someone@example.com/baby_gender_by_county.lvdash.json"
# This is the contents of the resulting baby_gender_by_county.dashboard.yml file.
resources:
dashboards:
baby_gender_by_county:
display_name: 'Baby gender by county'
warehouse_id: aae11o8e6fe9zz79
file_path: ../src/baby_gender_by_county.lvdash.json
İpucu
Bir pano dağıttıktan sonra .lvdash.json
dosyasını güncellemek için, mevcut pano kaynağı için bu dosyayı oluşturmak üzere bundle generate dashboard
komutunu çalıştırırken --resource
seçeneğini kullanın. Pano güncellemelerini sürekli yoklayıp almak için --force
ve --watch
seçeneklerini kullanın.
Paket kaynaklarını bağlama
komutu, bundle deployment bind
paket tanımlı işleri ve işlem hatlarını, Databricks Varlık Paketleri tarafından yönetilmeleri için Azure Databricks çalışma alanında mevcut işlere ve işlem hatlarına bağlamanıza olanak tanır. Eğer bir kaynağı bağlarsanız, çalışma alanındaki mevcut Azure Databricks kaynakları, sonraki bundle deploy
'den sonra bağlı olduğu pakette tanımlanan yapılandırmaya göre güncellenir.
İpucu
Bağlamayı çalıştırmadan önce paketi çalışma alanında onaylamak iyi bir fikirdir.
databricks bundle deployment bind [resource-key] [resource-id]
Örneğin, aşağıdaki komut kaynağı hello_job
çalışma alanında uzak karşılığına bağlar. Komut bir fark oluşturur ve kaynak bağlamasını reddetmenizi sağlar, ancak onaylanırsa paketteki iş tanımında yapılan tüm güncelleştirmeler, paket bir sonraki dağıtıldığında ilgili uzak işe uygulanır.
databricks bundle deployment bind hello_job 6565621249
Eğer bir paketteki iş veya işlem hattı ile çalışma alanındaki uzak eşdeğeri arasındaki bağlantıyı kaldırmak istiyorsanız, bundle deployment unbind
kullanın.
databricks bundle deployment unbind [resource-key]
Paket özetini çıkar
bundle summary
Komutu, Databricks çalışma alanında kaynağa kolayca gidebilmeniz için kaynaklara yönelik ayrıntılı bağlantılar da dahil olmak üzere bir paket kimliğinin ve kaynaklarının özetini oluşturur.
databricks bundle summary
Aşağıdaki örnek çıktı, bir işi ve işlem hattını tanımlayan adlı my_pipeline_bundle
paketin özetidir:
Name: my_pipeline_bundle
Target: dev
Workspace:
Host: https://myworkspace.cloud.databricks.com
User: someone@example.com
Path: /Users/someone@example.com/.bundle/my_pipeline/dev
Resources:
Jobs:
my_project_job:
Name: [dev someone] my_project_job
URL: https://myworkspace.cloud.databricks.com/jobs/206000809187888?o=6051000018419999
Pipelines:
my_project_pipeline:
Name: [dev someone] my_project_pipeline
URL: https://myworkspace.cloud.databricks.com/pipelines/7f559fd5-zztz-47fa-aa5c-c6bf034b4f58?o=6051000018419999
İpucu
Databricks çalışma alanında bir kaynağa gitmek için de kullanabilirsiniz bundle open
. Bkz. Paket kaynağı açma.
Paket dağıtma
Uzak çalışma alanına bir paket dağıtmak için paket projesi kökünden komutunu çalıştırın bundle deploy
. Hiçbir komut seçeneği belirtilmezse, paket yapılandırma dosyalarında bildirilen varsayılan hedef kullanılır.
databricks bundle deploy
Paketi belirli bir hedefe dağıtmak için, paket yapılandırma dosyalarında bildirilen hedef adıyla birlikte -t
(veya --target
) seçeneğini ayarlayın. Örneğin, adıyla dev
bildirilen bir hedef için:
databricks bundle deploy -t dev
Paket geliştirme, hazırlama ve üretim çalışma alanları gibi birden çok çalışma alanına dağıtılabilir. Temel olarak, root_path
özelliği, bir paketin benzersiz kimliğini belirleyen ve varsayılan olarak ~/.bundle/${bundle.name}/${bundle.target}
olan özelliktir. Bu nedenle, bir paketin kimliği varsayılan olarak dağıtanın kimliğinden, paketin adından ve paketin hedef adından oluşur. Bunlar farklı paketlerde aynıysa, bu paketlerin dağıtımı birbirini engeller.
Ayrıca, paket dağıtımı, hedef çalışma alanında oluşturduğu kaynakları, kimlikleri ile çalışma alanı dosya sisteminde depolanan bir durum olarak izler. Kaynak adları, bir paket dağıtımı ile kaynak örneği arasında bağıntı oluşturmak için kullanılmaz, bu nedenle:
- Paket yapılandırmasındaki bir kaynak hedef çalışma alanında mevcut değilse oluşturulacaktır.
- Paket yapılandırmasındaki bir kaynak hedef çalışma alanında varsa, çalışma alanında güncelleştirilir.
- Bir kaynak paket yapılandırmasından kaldırılırsa, daha önce dağıtıldıysa hedef çalışma alanından kaldırılır.
- Bir kaynağın paketle ilişkisi yalnızca paket adını, paket hedefini veya çalışma alanını değiştirdiğinizde unutulabilir. Bu değerleri içeren bir özet çıkarmak için komutunu çalıştırabilirsiniz
bundle validate
.
İş veya işlem hattı çalıştırma
Belirli bir işi veya işlem hattını çalıştırmak için komutunu kullanın bundle run
. Paket yapılandırma dosyaları içinde bildirilen işin veya işlem hattının kaynak anahtarını belirtmeniz gerekir. Varsayılan olarak, paket yapılandırma dosyalarında bildirilen ortam kullanılır. Örneğin, bir işi hello_job
varsayılan ortamda çalıştırmak için aşağıdaki komutu çalıştırın:
databricks bundle run hello_job
Hedef adı dev
olarak ilan edilen kapsamda, anahtara sahip hello_job
ile bir iş çalıştırmak için:
databricks bundle run -t dev hello_job
Örnek işlem hattı doğrulama çalıştırması yapmak istiyorsanız, aşağıdaki örnekte gösterildiği gibi --validate-only
seçeneğini kullanın.
databricks bundle run --validate-only my_pipeline
İş parametrelerini iletmek için anahtar parametre adı olacak şekilde virgülle ayrılmış anahtar-değer çiftleriyle birlikte --params
seçeneğini kullanın. Örneğin, aşağıdaki komut, message
adlı parametreyi HelloWorld
olarak ayarlar hello_job
işi için.
databricks bundle run --params message=HelloWorld hello_job
Not
İş görev seçeneklerini kullanarak parametreleri iş görevlerine geçirebilirsiniz, ancak --params
bu seçenek iş parametrelerini geçirmek için önerilen yöntemdir. İş parametreleri tanımlanmamış bir iş için iş parametreleri belirtilirse veya iş parametreleri tanımlanmış bir iş için görev parametreleri belirtilirse hata oluşur.
Mevcut bir iş çalıştırmasını veya işlem hattı güncelleştirmesini iptal etmek ve yeniden başlatmak için şu --restart
seçeneği kullanın:
databricks bundle run --restart hello_job
Paket kaynağını aç
Çalışma alanında bir paket kaynağına gitmek için, paket projesi kökünden bundle open
komutunu çalıştırarak açılacak kaynağı belirtin. Kaynak anahtarı belirtilmezse bu komut, paket kaynaklarının seçileceği bir liste oluşturur.
databricks bundle open [resource-key]
Örneğin, aşağıdaki komut bir tarayıcı açar ve paket için ayarlanmış olan Databricks çalışma alanındaki baby_gender_by_county panosuna yönlendirir.
databricks bundle open baby_gender_by_county
Bir paketi yok et
Uyarı
Bir paketi yok etmek, bir paketin daha önce dağıtılan işlerini, boru hatlarını ve artifaktlarını kalıcı olarak siler. Bu eylem geri alınamaz.
Daha önce dağıtılan işleri, işlem hatlarını ve yapıtları silmek için bundle destroy
komutunu çalıştırın. Aşağıdaki komut, paket yapılandırma dosyalarında tanımlanan önceden dağıtılan tüm işleri, işlem hatlarını ve yapıtları siler:
databricks bundle destroy
Not
Bir paketin kimliği paket adından, paket hedefinde ve çalışma alanından oluşur. Bunlardan herhangi birini değiştirdiyseniz ve dağıtmadan önce bir paketi yok etmeye çalışırsanız bir hata oluşur.
Varsayılan olarak, önceden dağıtılan işlerin, işlem hatlarının ve yapıtların kalıcı olarak silinmesini onaylamanız istenir. Bu istemleri atlamak ve otomatik kalıcı silme gerçekleştirmek için komutuna --auto-approve
seçeneğini ekleyinbundle destroy
.