dbx'ten paketlere geçiş
Önemli
Databricks, Databricks Labs yerine dbx
Databricks Varlık Paketleri kullanmanızı önerir. hakkındaki dbx
ilgili makaleler kullanımdan kaldırılmıştır ve güncelleştirilmeyebilir.
Bu makalede, Databricks Labs'in projelerini dbx
Databricks Varlık Paketleri'ne geçirme işlemi açıklanmaktadır. Bkz . Databricks Labs tarafından dbx'e giriş ve Databricks Varlık Paketleri nedir?.
Geçirmeden önce Databricks Labs ile Databricks Varlık Paketleri arasındaki dbx
aşağıdaki sınırlamalara ve özellik karşılaştırmalarına dikkat edin.
Sınırlamalar
Databricks Labs tarafından desteklenen dbx
aşağıdaki işlevler sınırlıdır, yoktur veya Databricks Varlık Paketleri'nde geçici çözümler gerektirir.
- JAR yapıtları derleme, paketlerde desteklenmez.
- Çalışma alanı yolları için FUSE gösterimi paketlerde desteklenmez (örneğin,
/Workspace/<path>/<filename>
). Ancak, gibi/Workspace/${bundle.file_path}/<filename>
bir gösterimi kullanarak dağıtımlar sırasında paketlerden FUSE stili çalışma alanı yolları oluşturmalarını sağlayabilirsiniz.
Özellik karşılaştırmaları
Geçirmeden önce Databricks Labs tarafından sunulan aşağıdaki özelliklerin dbx
Databricks Varlık Paketleri'nde nasıl uygulandığına dikkat edin.
Şablonlar ve projeler
dbx
Jinja şablon oluşturma desteği sağlar. Dağıtım yapılandırmasına Jinja şablonları ekleyebilir ve ortam değişkenlerini satır içinde veya değişken dosyası aracılığıyla geçirebilirsiniz. Önerilmiyor olsa da, dbx
özel kullanıcı işlevleri için deneysel destek de sağlar.
Paketler, yapılandırmanın yeniden kullanılması için Go şablonları için destek sağlar. Kullanıcılar, önceden oluşturulmuş şablonları temel alan paketler oluşturabilir. Özel kullanıcı işlevleri dışında şablon oluşturma için neredeyse tam eşlik vardır.
Derleme yönetimi
dbx
, Şiir ve Flit aracılığıyla pip wheel
derleme desteği sağlar. Kullanıcılar, proje deployment.yml
dosyasının build
bölümünde derleme seçeneğini belirtebilir.
Paketler, kullanıcıların Python tekerlek dosyaları oluşturmasına, dağıtmasına ve çalıştırmasına olanak tanır. Kullanıcılar bir paketin databricks.yml
dosyasındaki whl
yerleşik girdiden yararlanabilir.
Kodu eşitleme, dağıtma ve çalıştırma
dbx
Azure Databricks işleri gibi çalışma alanı kaynakları oluşturmaktan ayrı olarak kod karşıya yüklemeyi etkinleştirir.
Paketler her zaman kodu karşıya yükler ve çalışma alanı kaynaklarını aynı anda oluşturur veya güncelleştirir. Bu, dağıtımları basitleştirir ve devam etmekte olan işler için engelleme koşullarını önler.
Dbx projesini pakete geçirme
Databricks Labs ile Databricks Varlık Paketleri arasındaki dbx
önceki sınırlamaları ve özellik karşılaştırmalarını not ettikten sonra, paketlerden dbx
paketlere geçiş yapmaya hazırsınız.
Databricks, bir dbx
proje geçişi başlatmak için projenizi özgün klasöründe tutmanızı dbx
ve özgün dbx
projenizin içeriğini kopyaladığınız ayrı, boş bir klasörünüz olmasını önerir. Bu ayrı klasör yeni paketiniz olacaktır. Projenizi dbx
özgün klasöründe bir pakete dönüştürmeye başlar ve ardından bazı hatalar yaparsanız veya baştan başlamak isterseniz beklenmeyen sorunlarla karşılaşabilirsiniz.
1. Adım: Databricks CLI'yı yükleme ve ayarlama
Databricks Varlık Paketleri genellikle Databricks CLI sürüm 0.218.0 ve üzeri sürümlerde kullanılabilir. Databricks CLI sürüm 0.218.0 veya üzerini zaten yüklediyseniz ve ayarladıysanız 2. Adıma geçin.
Not
Paketler Databricks CLI 0.18 ve altı sürümlerle uyumlu değildir.
- Databricks CLI sürüm 0.218.0 veya üzerini yükleyin veya güncelleştirin. Bkz. Databricks CLI'yı yükleme veya güncelleştirme.
- Databricks CLI'yı hedef Azure Databricks çalışma alanlarınızla kimlik doğrulaması için ayarlayın; örneğin Azure Databricks kişisel erişim belirteci kimlik doğrulamasını kullanın. Diğer Azure Databricks kimlik doğrulama türleri için bkz . Databricks CLI için kimlik doğrulaması.
2. Adım: Paket yapılandırma dosyasını oluşturma
YAML dosyaları ve JSON şema dosyaları için destek sağlayan Visual Studio Code, PyCharm Professional veya IntelliJ IDEA Ultimate gibi bir IDE kullanıyorsanız, IDE'nizi yalnızca paket yapılandırma dosyasını oluşturmak için değil, aynı zamanda dosyanın söz dizimini ve biçimlendirmesini denetlemek ve kod tamamlama ipuçları sağlamak için kullanabilirsiniz.
Visual Studio Code
Örneğin Visual Studio Code Market'ten YAML uzantısını yükleyerek Visual Studio Code'a YAML dil sunucusu desteği ekleyin.
Databricks CLI kullanarak Databricks Varlık Paketi yapılandırma JSON şema dosyasını oluşturarak komutu çalıştırın
bundle schema
ve çıkışı bir JSON dosyasına yönlendirin. Örneğin, aşağıdaki gibi geçerli dizinde adlıbundle_config_schema.json
bir dosya oluşturun:databricks bundle schema > bundle_config_schema.json
Geçerli dizinde bir paket yapılandırma dosyası oluşturmak veya açmak için Visual Studio Code'u kullanın. Kural gereği, bu dosya olarak adlandırılır
databricks.yml
.Paket yapılandırma dosyanızın başına aşağıdaki açıklamayı ekleyin:
# yaml-language-server: $schema=bundle_config_schema.json
Not
Önceki açıklamadaki Databricks Varlık Paketi yapılandırma JSON şema dosyanız farklı bir yoldaysa değerini şema dosyanızın tam yoluyla değiştirin
bundle_config_schema.json
.Daha önce eklediğiniz YAML dil sunucusu özelliklerini kullanın. Daha fazla bilgi için YAML dil sunucunuzun belgelerine bakın.
PyCharm Professional
Databricks CLI kullanarak Databricks Varlık Paketi yapılandırma JSON şema dosyasını oluşturarak komutu çalıştırın
bundle schema
ve çıkışı bir JSON dosyasına yönlendirin. Örneğin, aşağıdaki gibi geçerli dizinde adlıbundle_config_schema.json
bir dosya oluşturun:databricks bundle schema > bundle_config_schema.json
PyCharm'ı paket yapılandırması JSON şema dosyasını tanıyacak şekilde yapılandırın ve ardından Özel JSON şeması yapılandırma başlığındaki yönergeleri izleyerek JSON şema eşlemesini tamamlayın.
Paket yapılandırma dosyası oluşturmak veya açmak için PyCharm kullanın. Kural gereği, bu dosya olarak adlandırılır
databricks.yml
. Siz yazarken, PyCharm JSON şeması söz dizim ve biçimlendirmesini denetler ve kod tamamlama ipuçları sağlar.
IntelliJ IDEA Ultimate
Databricks CLI kullanarak Databricks Varlık Paketi yapılandırma JSON şema dosyasını oluşturarak komutu çalıştırın
bundle schema
ve çıkışı bir JSON dosyasına yönlendirin. Örneğin, aşağıdaki gibi geçerli dizinde adlıbundle_config_schema.json
bir dosya oluşturun:databricks bundle schema > bundle_config_schema.json
IntelliJ IDEA'yı paket yapılandırması JSON şema dosyasını tanıyacak şekilde yapılandırın ve ardından Özel JSON şeması yapılandırma başlığındaki yönergeleri izleyerek JSON şema eşlemesini tamamlayın.
Paket yapılandırma dosyası oluşturmak veya açmak için IntelliJ IDEA kullanın. Kural gereği, bu dosya olarak adlandırılır
databricks.yml
. Siz yazarken IntelliJ IDEA, JSON şeması söz dizim ve biçimlendirmesini denetler ve kod tamamlama ipuçları sağlar.
3. Adım: dbx proje ayarlarını databricks.yml dönüştürme
Projenizin .dbx/project.json
dosyasındaki ayarları paketinizin dbx
dosyasındaki eşdeğer ayarlara dönüştüründatabricks.yml
. Ayrıntılar için bkz . dbx proje ayarlarını databricks.yml dönüştürme.
4. Adım: dbx dağıtım ayarlarını databricks.yml dönüştürme
Projenizin dbx
conf
klasöründeki ayarları paketinizin dosyasındaki eşdeğer ayarlara dönüştürün databricks.yml
. Ayrıntılar için bkz . dbx dağıtım ayarlarını databricks.yml dönüştürme.
5. Adım: Paketi doğrulama
Yapıtları dağıtmadan veya Azure Databricks işi, Delta Live Tables işlem hattı veya MLOps işlem hattı çalıştırmadan önce, paket yapılandırma dosyanızın söz dizimsel olarak doğru olduğundan emin olmanız gerekir. Bunu yapmak için paket kökünden komutunu çalıştırın bundle validate
:
databricks bundle validate
hakkında bundle validate
bilgi için bkz . Paketi doğrulama.
6. Adım: Paketi dağıtma
Belirtilen yerel yapıtları uzak çalışma alanına dağıtmak için paket kökünden komutunu çalıştırın bundle deploy
. Hiçbir komut seçeneği belirtilmezse, paket yapılandırma dosyasında bildirilen varsayılan hedef kullanılır:
databricks bundle deploy
Yapıtları belirli bir hedef bağlamında dağıtmak için( veya --target
) seçeneğini, paket yapılandırma dosyasında bildirilen hedefin adıyla birlikte belirtin -t
. Örneğin, adıyla development
bildirilen bir hedef için:
databricks bundle deploy -t development
hakkında bundle deploy
bilgi için bkz . Paket dağıtma.
İpucu
Paket tanımlı işleri ve işlem hatlarını Azure Databricks çalışma alanında mevcut işlere ve işlem hatlarına bağlayarak eşitlenmiş durumda tutabilirsiniz. Bkz . Paket kaynaklarını bağlama.
7. Adım: Paketi çalıştırma
Belirli bir işi veya işlem hattını çalıştırmak için paket kökünden komutunu çalıştırın bundle run
. Paket yapılandırma dosyasında bildirilen işi veya işlem hattını belirtmeniz gerekir. -t
Seçenek belirtilmezse, paket yapılandırma dosyasında bildirilen varsayılan hedef kullanılır. Örneğin, varsayılan hedef bağlamında adlı hello_job
bir işi çalıştırmak için:
databricks bundle run hello_job
adlı hello_job
development
bir işi adıyla bildirilen bir hedef bağlamında çalıştırmak için:
databricks bundle run -t development hello_job
hakkında bundle run
bilgi için bkz . Paket çalıştırma.
(İsteğe bağlı) 8. Adım: GitHub ile CI/CD paketini yapılandırma
CI/CD için GitHub kullanıyorsanız, belirli GitHub iş akışı olaylarına ve diğer ölçütlere göre ve databricks bundle run
komutlarını otomatik olarak çalıştırmak databricks bundle deploy
için GitHub Actions'ı kullanabilirsiniz. Bkz . Databricks Varlık Paketi ve GitHub Actions ile CI/CD iş akışı çalıştırma.
dbx proje ayarlarını databricks.yml dönüştürme
içindbx
, proje ayarları varsayılan olarak projenin .dbx
klasöründe adlı project.json
bir dosyada bulunur. Bkz. Proje dosyası başvurusu.
Paketlerde, paket yapılandırmaları varsayılan olarak paketin kök klasörünün içinde adlı databricks.yml
bir dosyada bulunur. Bkz. Databricks Varlık Paketi yapılandırması.
Aşağıdaki örnek içeriğe sahip bir conf/project.json
dosya için:
{
"environments": {
"default": {
"profile": "charming-aurora",
"storage_type": "mlflow",
"properties": {
"workspace_directory": "/Workspace/Shared/dbx/charming_aurora",
"artifact_location": "/Workspace/Shared/dbx/projects/charming_aurora"
}
}
},
"inplace_jinja_support": true
}
databricks.yml
İlgili dosya aşağıdaki gibidir:
bundle:
name: <some-unique-bundle-name>
targets:
default:
workspace:
profile: charming-aurora
root_path: /Shared/dbx/charming_aurora
artifact_path: /Shared/dbx/projects/charming_aurora
resources:
# See an example "resources" mapping in the following section.
Bu örneğin önceki conf/project.json
dosyasındaki aşağıdaki nesneler dosyalarda databricks.yml
desteklenmez ve geçici bir çözümü yoktur:
inplace_jinja_support
storage_type
Dosyalarda conf/project.json
aşağıdaki ek izin verilen nesneler dosyalarda databricks.yml
desteklenmez ve geçici bir çözümü yoktur:
enable-context-based-upload-for-execute
enable-failsafe-cluster-reuse-with-assets
dbx dağıtım ayarlarını databricks.yml dönüştürme
için dbx
dağıtım ayarları varsayılan olarak projenin conf
klasöründeki bir dosyada bulunur. Bkz. Dağıtım dosyası başvurusu. Dağıtım ayarları dosyası varsayılan olarak aşağıdaki dosya adlarından birine sahiptir:
deployment.yml
deployment.yaml
deployment.json
deployment.yml.j2
deployment.yaml.j2
deployment.json.j2
Paketlerde dağıtım ayarları varsayılan olarak paketin kök klasörünün içinde adlı databricks.yml
bir dosyada yer alır. Bkz. Databricks Varlık Paketi yapılandırması.
Aşağıdaki örnek içeriğe sahip bir conf/deployment.yml
dosya için:
build:
python: "pip"
environments:
default:
workflows:
- name: "workflow1"
tasks:
- task_key: "task1"
python_wheel_task:
package_name: "some-pkg"
entry_point: "some-ep"
databricks.yml
İlgili dosya aşağıdaki gibidir:
bundle:
name: <some-unique-bundle-name>
targets:
default:
workspace:
# See an example "workspace" mapping in the preceding section.
resources:
jobs:
workflow1:
tasks:
- task_key: task1
python_wheel_task:
package_name: some-pkg
entry_point: some-ep
Bu örneğin önceki conf/deployment.yml
dosyasındaki aşağıdaki nesne dosyalarda databricks.yml
desteklenmez ve geçici bir çözümü yoktur:
build
(ancak bkz. Databricks Varlık Paketlerini kullanarak Python tekerlek dosyası geliştirme)
Dosyalarda conf/deployment.yml
aşağıdaki ek izin verilen nesneler ve işlevler dosyalarda databricks.yml
desteklenmez ve aksi belirtilmedikçe geçici çözümü yoktur:
access_control_list
custom
(bunun yerine standart YAML bağlantı noktalarını kullanın)deployment_config
- Azure Databricks İşler 2.0 biçimi (bunun yerine İşler 2.1 biçimini kullanın)
dbx
Jinja özellikleri- Ad tabanlı özellikler