Aracılığıyla paylaş


Paket yapılandırma örnekleri

Bu makalede Databricks Varlık Paketleri özellikleri ve ortak paket kullanım örnekleri için örnek yapılandırma sağlanır.

Aşağıdaki tabloda özetlenen eksiksiz paket örnekleri, paket örnekleri GitHub deposunda mevcuttur:

Paket adı Açıklama
app_with_database OLTP Postgres veritabanı tarafından yedeklenen Databricks uygulaması içeren paket
dashboard_nyc_taxi AI/BI panosu ve panonun anlık görüntüsünü yakalayan bir görev ve bu görüntüyü aboneye e-posta ile gönderen bir paket
database_with_catalog OLTP veritabanı örneğini ve veritabanı kataloğunu tanımlayan paket
databricks_app Databricks Uygulamasını tanımlayan paket
geliştirme_kümesi Geliştirme (tüm amaçlı) kümeyi tanımlayan ve kullanan bir paket
job_read_secret Gizli kapsamı tanımlayan ve bu kapsamdan okuma yapan bir göreve sahip olan bir işi içeren paket
birden fazla tekerlekli iş Birden çok tekerlek bağımlılığına sahip bir işi tanımlayan ve kullanan paket
iş_çalışma_ile_çalıştırma_görevleri Birden çok görevi içeren ve iş görevlerini çalıştıran bir paket
job_with_sql_notebook SQL not defteri görevi kullanan bir işi içeren paket
pipeline with schema Unity Kataloğu şemasını ve bunu kullanan bir işlem hattını tanımlayan paket
özel_teker_paketleri bir işten özel tekerlek paketi kullanan paket
python_wheel_poetry Şiir ile bir whl oluşturan paket
sunucusuz iş İşi çalıştırmak için sunucusuz işlem kullanan paket
paylaşım_dosyaları_paketler_üzerinden Paket kök dizini dışında bulunan dosyaları içeren bir paket.
spark_jar_task Spark JAR görevini tanımlayan ve kullanan paket
işten hacme yaz Unity Kataloğu birimine dosya yazan paket

Paket senaryoları

Bu bölüm, üst düzey paket eşlemelerini kullanmayı gösteren yapılandırma örnekleri içerir. Bkz. Yapılandırma referansı.

Unity Kataloğu'na JAR dosyası yükleyen Paketi

Jar dosyaları ve tekerlek dosyaları gibi tüm yapıtların Unity Kataloğu birimlerine yüklenmesi için Unity Kataloğu birimlerini yapıt yolu olarak belirtebilirsiniz. Aşağıdaki örnek paket, bir JAR dosyasını derleyip Unity Kataloğu'na yükler. Eşleme hakkında artifact_path bilgi için bkz. artifact_path. hakkında artifactsbilgi için bkz. yapıtlar.

bundle:
  name: jar-bundle

workspace:
  host: https://myworkspace.cloud.databricks.com
  artifact_path: /Volumes/main/default/my_volume

artifacts:
  my_java_code:
    path: ./sample-java
    build: 'javac PrintArgs.java && jar cvfm PrintArgs.jar META-INF/MANIFEST.MF PrintArgs.class'
    files:
      - source: ./sample-java/PrintArgs.jar

resources:
  jobs:
    jar_job:
      name: 'Spark Jar Job'
      tasks:
        - task_key: SparkJarTask
          new_cluster:
            num_workers: 1
            spark_version: '14.3.x-scala2.12'
            node_type_id: 'i3.xlarge'
          spark_jar_task:
            main_class_name: PrintArgs
          libraries:
            - jar: ./sample-java/PrintArgs.jar

İş yapılandırması

Bu bölüm, iş yapılandırma örneklerini içerir. İş yapılandırma ayrıntıları için bkz. .

Sunucusuz işlem kullanan iş

Databricks Varlık Paketleri sunucusuz işlem üzerinde çalışan işleri destekler. İş akışları için bkz. Lakeflow İşlerinizi sunucusuz işlemle çalıştırma. Bunu yapılandırmak için, not defteri görevi olan bir işin clusters ayarını atlayabilir veya aşağıdaki örneklerde gösterildiği gibi bir ortam belirtebilirsiniz. Python betiği, Python tekerleği ve dbt görevleri için sunucusuz işlem için environment_key gereklidir. Bkz. environment_key.

# A serverless job (no cluster definition)
resources:
  jobs:
    serverless_job_no_cluster:
      name: serverless_job_no_cluster

      email_notifications:
        on_failure:
          - someone@example.com

      tasks:
        - task_key: notebook_task
          notebook_task:
            notebook_path: ../src/notebook.ipynb
# A serverless job (environment spec)
resources:
  jobs:
    serverless_job_environment:
      name: serverless_job_environment

      tasks:
        - task_key: task
          spark_python_task:
            python_file: ../src/main.py

          # The key that references an environment spec in a job.
          # https://docs.databricks.com/api/workspace/jobs/create#tasks-environment_key
          environment_key: default

      # A list of task execution environment specifications that can be referenced by tasks of this job.
      environments:
        - environment_key: default

          # Full documentation of this spec can be found at:
          # https://docs.databricks.com/api/workspace/jobs/create#environments-spec
          spec:
            environment_version: '2'
            dependencies:
              - my-library

Birden çok tekerlek dosyası içeren iş

Aşağıdaki örnek yapılandırmalar, birden çok *.whl dosya içeren bir iş içeren bir paketi tanımlar.

# job.yml
resources:
  jobs:
    example_job:
      name: 'Example with multiple wheels'
      tasks:
        - task_key: task

          spark_python_task:
            python_file: ../src/call_wheel.py

          libraries:
            - whl: ../my_custom_wheel1/dist/*.whl
            - whl: ../my_custom_wheel2/dist/*.whl

          new_cluster:
            node_type_id: i3.xlarge
            num_workers: 0
            spark_version: 14.3.x-scala2.12
            spark_conf:
              'spark.databricks.cluster.profile': 'singleNode'
              'spark.master': 'local[*, 4]'
            custom_tags:
              'ResourceClass': 'SingleNode'
# databricks.yml
bundle:
  name: job_with_multiple_wheels

include:
  - ./resources/job.yml

workspace:
  host: https://myworkspace.cloud.databricks.com

artifacts:
  my_custom_wheel1:
    type: whl
    build: poetry build
    path: ./my_custom_wheel1

  my_custom_wheel2:
    type: whl
    build: poetry build
    path: ./my_custom_wheel2

targets:
  dev:
    default: true
    mode: development

Parametrelere sahip iş

Aşağıdaki örnek yapılandırma, parametreleri olan bir işi tanımlar. İşleri parametreleştirme hakkında daha fazla bilgi için bkz. İşleri parametreleştirme.

resources:
  jobs:
    job_with_parameters:
      name: job_with_parameters

      tasks:
        - task_key: task_a
          spark_python_task:
            python_file: ../src/file.py
            parameters:
              - '--param1={{ job.parameters.param1 }}'
              - '--param2={{ job.parameters.param2 }}'

          new_cluster:
            node_type_id: i3.xlarge
            num_workers: 1
            spark_version: 14.3.x-scala2.12

      parameters:
        - name: param1
          default: value1
        - name: param2
          default: value1

Bu parametreler çalışma zamanında iş parametreleri'nebundle rungeçirilerek ayarlanabilir, örneğin:

databricks bundle run -- --param1=value2 --param2=value2

requirements.txt dosyası kullanan iş

Aşağıdaki örnek yapılandırma, requirements.txt dosyası kullanan bir işi tanımlar.

resources:
  jobs:
    job_with_requirements_txt:
      name: 'Example job that uses a requirements.txt file'
      tasks:
        - task_key: task
          job_cluster_key: default
          spark_python_task:
            python_file: ../src/main.py
          libraries:
            - requirements: /Workspace/${workspace.file_path}/requirements.txt

Zamanlamaya göre iş

Aşağıdaki örneklerde, bir zamanlamaya göre çalışan işler için yapılandırma gösterilmektedir. İş zamanlamaları ve tetikleyicileri hakkında bilgi için bkz. Zamanlamalar ve tetikleyicilerle işleri otomatikleştirme.

Bu yapılandırma, belirtilen bir zamanda günlük olarak çalışan bir işi tanımlar:

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-task
          notebook_task:
            notebook_path: ./my-notebook.ipynb
      schedule:
        quartz_cron_expression: '0 0 8 * * ?' # daily at 8am
        timezone_id: UTC
        pause_status: UNPAUSED

Bu yapılandırmada, iş son çalıştırıldıktan bir hafta sonra çalışır:

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-task
          notebook_task:
            notebook_path: ./my-notebook.ipynb
      trigger:
        pause_status: UNPAUSED
        periodic:
          interval: 1
          unit: WEEKS

İşlem hattı yapılandırması

Bu bölümde işlem hattı yapılandırma örnekleri yer alır. İşlem hattı yapılandırma bilgileri için bkz. işlem hattı.

Sunucusuz işlem kullanan işlem hattı

Databricks Varlık Paketleri sunucusuz işlem üzerinde çalışan işlem hatlarını destekler. Bunu yapılandırmak için işlem hattı serverless ayarını olarak trueayarlayın. Aşağıdaki örnek yapılandırma, bağımlılıkların yüklü olduğu sunucusuz işlem üzerinde çalışan bir işlem hattını ve işlem hattının saatte bir yenilenmesini tetikleyen bir işi tanımlar.

# A pipeline that runs on serverless compute
resources:
  pipelines:
    my_pipeline:
      name: my_pipeline
      target: ${bundle.environment}
      serverless: true
      environment:
        dependencies:
          - 'dist/*.whl'
      catalog: users
      libraries:
        - notebook:
            path: ../src/my_pipeline.ipynb

      configuration:
        bundle.sourcePath: /Workspace/${workspace.file_path}/src
# This defines a job to refresh a pipeline that is triggered every hour
resources:
  jobs:
    my_job:
      name: my_job

      # Run this job once an hour.
      trigger:
        periodic:
          interval: 1
          unit: HOURS

      email_notifications:
        on_failure:
          - someone@example.com

      tasks:
        - task_key: refresh_pipeline
          pipeline_task:
            pipeline_id: ${resources.pipelines.my_pipeline.id}