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

dbxJinja ş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 wheelderleme 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

dbxAzure 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.

  1. 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.
  2. 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

  1. Örneğin Visual Studio Code Market'ten YAML uzantısını yükleyerek Visual Studio Code'a YAML dil sunucusu desteği ekleyin.

  2. 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
    
  3. 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.

  4. 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 .

  5. Daha önce eklediğiniz YAML dil sunucusu özelliklerini kullanın. Daha fazla bilgi için YAML dil sunucunuzun belgelerine bakın.

PyCharm Professional

  1. 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
    
  2. 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.

  3. 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

  1. 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
    
  2. 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.

  3. 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 validatebilgi 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 developmentbildirilen bir hedef için:

databricks bundle deploy -t development

hakkında bundle deploybilgi 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 developmentbir 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 runbilgi 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 dbxdağı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:

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)
  • dbxJinja özellikleri
  • Ad tabanlı özellikler