Aracılığıyla paylaş


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.

  1. Her hedef çalışma alanı için aşağıdaki komutu çalıştırarak yerel olarak OAuth belirteci yönetimini başlatmak için Databricks CLI'sini kullanı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>
    
  2. 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 komutunu databricks auth env --profile <profile-name>çalıştırın.

  3. Web tarayıcınızda, Azure Databricks çalışma alanınızda oturum açmak için ekrandaki yönergeleri tamamlayın.

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

  1. Yerel geliştirme makinenizde şablonun oluşturulan paketini içerecek bir dizine geçmek için terminalinizi veya komut isteminizi kullanın.

  2. Komutu çalıştırmak için Databricks CLI'yi bundle init kullanın:

    databricks bundle init
    
  3. içinTemplate to use, tuşuna basarak Entervarsayılan değerini default-python bırakın.

  4. için Unique name for this projectvarsayılan değerini my_projectbırakın veya farklı bir değer yazın ve tuşuna basın Enter. Bu, bu paket için kök dizinin adını belirler. Bu kök dizin, geçerli çalışma dizininizde oluşturulur.

  5. için Include a stub (sample) notebooköğesini seçin yes ve tuşuna basın Enter.

  6. için Include a stub (sample) DLT pipelineöğesini seçin no ve tuşuna basın Enter. Bu, Databricks CLI'ya paketinizde örnek bir Delta Live Tables işlem hattı tanımlamamasını sağlar.

  7. için Include a stub (sample) Python packageöğesini seçin no ve tuşuna basın Enter. 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.

  1. Kök dizinden Databricks CLI'sini bundle validate kullanarak komutu aşağıdaki gibi çalıştırın:

    databricks bundle validate
    
  2. 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.

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

  3. Users><your-username>> .bundle ><project-name>> dev > files > src klasörüne tıklayın. Not defteri bu klasörde olmalıdır.

  4. İşin oluşturulup oluşturulmadığını denetleyin: Azure Databricks çalışma alanınızın kenar çubuğunda İş Akışları'na tıklayın.

  5. İşler sekmesinde [dev <your-username>]<project-name>_job öğesine tıklayın.

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

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

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

  1. Kök dizinden Databricks CLI'sini bundle destroy kullanarak komutu aşağıdaki gibi çalıştırın:

    databricks bundle destroy -t dev
    
  2. İş silme isteğini onaylayın: Kaynakları kalıcı olarak yok etmek isteyip istemediğiniz sorulduğunda yazın y ve tuşuna basın Enter.

  3. 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ın Enter.

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

  1. Azure Databricks çalışma alanınızın kenar çubuğunda İş Akışları'ne tıklayın.

  2. İşler sekmesinde, işinizin Ad bağlantısına tıklayın.

  3. Şimdi çalıştır düğmesinin yanında kebap ve ardından Koda geç (YAML) seçeneğine tıklayın.

  4. Paketinizin dosyasına kopyaladığınız YAML'yi databricks.yml ekleyin veya paket projenizin dizininde resources işiniz için bir yapılandırma dosyası oluşturun ve dosyanızdan databricks.yml bu dosyaya başvurun. Bkz. (/dev-tools/bundles/settings.md#resources).

  5. 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:

  1. İş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.

  2. 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öre src 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 sonra bundle deploybağlandığı pakette tanımlanan yapılandırmaya göre güncelleştirilir. hakkında bundle deployment bindbilgi 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.