Tambahkan tugas ke proyek dalam Bundel Aset Databricks
Artikel ini menyediakan contoh berbagai jenis tugas yang dapat Anda tambahkan ke pekerjaan Azure Databricks di Databricks Asset Bundles. Lihat Apa itu Bundel Aset Databricks?.
Sebagian besar tipe tugas pekerjaan memiliki parameter khusus tugas di antara pengaturan yang didukung, tetapi Anda juga dapat menentukan parameter pekerjaan yang diteruskan ke tugas. Referensi nilai dinamis didukung untuk parameter tugas, yang memungkinkan melewatkan nilai khusus untuk pelaksanaan pekerjaan antar tugas. Lihat Apa itu referensi nilai dinamis?.
Catatan
Anda dapat mengambil alih pengaturan tugas pekerjaan. Lihat Menyetel ulang pengaturan tugas pekerjaan di Databricks Asset Bundles.
Tips
Untuk menghasilkan konfigurasi sumber daya dengan cepat untuk pekerjaan yang ada menggunakan Databricks CLI, Anda dapat menggunakan perintah bundle generate job
. Lihat perintah bundel.
Tugas buku catatan
Anda menggunakan tugas ini untuk menjalankan buku catatan.
Contoh berikut menambahkan tugas buku catatan ke pekerjaan dan mengatur parameter pekerjaan bernama my_job_run_id
. Jalur untuk notebook yang akan disebarkan relatif terhadap berkas konfigurasi di mana tugas ini dideklarasikan. Proses mengambil buku catatan dari lokasi tempat penyebarannya di dalam ruang kerja Azure Databricks.
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
parameters:
- name: my_job_run_id
default: '{{job.run_id}}'
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > notebook_task
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML. Lihat Tugas Notebook untuk pekerjaan.
Tugas pernyataan kondisi if/else
condition_task
memungkinkan Anda menambahkan tugas dengan logika kondisi if/else ke proyek Anda. Tugas mengevaluasi kondisi yang dapat digunakan untuk mengontrol eksekusi tugas lain. Tugas kondisi tidak memerlukan kluster untuk dijalankan dan tidak mendukung percobaan ulang atau pemberitahuan. Untuk informasi lebih lanjut tentang tugas if/else, lihat Tambahkan logika percabangan ke pekerjaan dengan tugas if/else.
Contoh berikut berisi tugas bersyarat dan tugas buku catatan, di mana tugas buku catatan hanya dijalankan jika jumlah perbaikan tugas kurang dari 5.
resources:
jobs:
my-job:
name: my-job
tasks:
- task_key: condition_task
condition_task:
op: LESS_THAN
left: '{{job.repair_count}}'
right: '5'
- task_key: notebook_task
depends_on:
- task_key: condition_task
outcome: 'true'
notebook_task:
notebook_path: ../src/notebook.ipynb
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > condition_task
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML.
Untuk setiap tugas
for_each_task
memungkinkan Anda menambahkan tugas dengan loop foreach ke pekerjaan Anda. Tugas menjalankan tugas bertumpuk untuk setiap input yang diberikan. Untuk informasi selengkapnya tentang for_each_task
, lihat Menggunakan tugas For each
untuk menjalankan tugas lain dalam perulangan.
Contoh berikut menambahkan for_each_task
ke tugas, yang mana ia mengulangi nilai-nilai dari tugas lain dan memprosesnya.
resources:
jobs:
my_job:
name: my_job
tasks:
- task_key: generate_countries_list
notebook_task:
notebook_path: ../src/generate_countries_list.ipnyb
- task_key: process_countries
depends_on:
- task_key: generate_countries_list
for_each_task:
inputs: '{{tasks.generate_countries_list.values.countries}}'
task:
task_key: process_countries_iteration
notebook_task:
notebook_path: ../src/process_countries_notebook.ipnyb
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > for_each_task
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML.
Tugas Pembuatan Skrip Python
Anda menggunakan tugas ini untuk menjalankan file Python.
Contoh berikut menambahkan tugas skrip Python ke pekerjaan. Jalur untuk file Python yang akan disebarkan relatif terhadap file konfigurasi tempat tugas ini dideklarasikan. Tugas ini mengambil file Python dari lokasi yang sudah dideploy di ruang kerja Azure Databricks.
resources:
jobs:
my-python-script-job:
name: my-python-script-job
tasks:
- task_key: my-python-script-task
spark_python_task:
python_file: ./my-script.py
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > spark_python_task
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML. Lihat juga tugas skrip Python untuk pekerjaan.
Tugas roda Python
Anda menggunakan tugas ini untuk menjalankan file roda Python.
Contoh berikut menambahkan tugas roda Python ke pekerjaan. Jalur untuk file wheel Python yang akan disebarkan adalah relatif terhadap file konfigurasi di mana tugas ini dideklarasikan. Lihat dependensi pustaka Bundel Aset Databricks.
resources:
jobs:
my-python-wheel-job:
name: my-python-wheel-job
tasks:
- task_key: my-python-wheel-task
python_wheel_task:
entry_point: run
package_name: my_package
libraries:
- whl: ./my_package/dist/my_package-*.whl
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > python_wheel_task
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML. Lihat juga Kembangkan file roda Python menggunakan Bundel Aset Databricks dan tugas roda Python untuk pekerjaan.
Tugas JAR
Anda menggunakan tugas ini untuk menjalankan file JAR. Anda dapat mereferensikan pustaka JAR lokal atau yang ada di ruang kerja, volume Katalog Unity, atau lokasi penyimpanan cloud eksternal. Lihat dependensi pustaka Bundel Aset di Databricks.
Contoh berikut menambahkan tugas JAR ke pekerjaan. Jalur untuk JAR berada di lokasi volume yang ditentukan.
resources:
jobs:
my-jar-job:
name: my-jar-job
tasks:
- task_key: my-jar-task
spark_jar_task:
main_class_name: org.example.com.Main
libraries:
- jar: /Volumes/main/default/my-volume/my-project-0.1.0-SNAPSHOT.jar
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > spark_jar_task
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML. Lihat tugas JAR untuk pekerjaan.
Tugas file SQL
Anda menggunakan tugas ini untuk menjalankan file SQL yang terletak di ruang kerja atau repositori Git jarak jauh.
Contoh berikut menambahkan tugas file SQL ke pekerjaan. Tugas file SQL ini menggunakan gudang SQL yang ditentukan untuk menjalankan file SQL yang ditentukan.
resources:
jobs:
my-sql-file-job:
name: my-sql-file-job
tasks:
- task_key: my-sql-file-task
sql_task:
file:
path: /Users/someone@example.com/hello-world.sql
source: WORKSPACE
warehouse_id: 1a111111a1111aa1
Untuk mendapatkan ID gudang SQL, buka halaman pengaturan gudang SQL, lalu salin ID yang ditemukan di tanda kurung setelah nama gudang di bidang Nama
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > sql_task > file
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML. Lihat Tugas SQL untuk pekerjaan tertentu.
Tugas dalam alur DLT
Anda menggunakan tugas ini untuk menjalankan pipeline DLT. Lihat Apa itu DLT?.
Contoh berikut menambahkan tugas alur DLT ke pekerjaan. Tugas alur DLT ini menjalankan alur yang ditentukan.
resources:
jobs:
my-pipeline-job:
name: my-pipeline-job
tasks:
- task_key: my-pipeline-task
pipeline_task:
pipeline_id: 11111111-1111-1111-1111-111111111111
Anda bisa mendapatkan ID alur dengan membuka alur di ruang kerja dan menyalin nilai ID Alur pada tab detail Alur dari halaman pengaturan alur.
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > pipeline_task
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML. Lihat alur kerja DLT untuk pekerjaan.
tugas dbt
Anda menggunakan tugas ini untuk menjalankan satu atau beberapa perintah dbt. Lihat Menyambungkan ke dbt Cloud.
Contoh berikut menambahkan tugas dbt ke proyek. Tugas dbt ini menggunakan gudang SQL yang ditentukan untuk menjalankan perintah dbt yang ditentukan.
resources:
jobs:
my-dbt-job:
name: my-dbt-job
tasks:
- task_key: my-dbt-task
dbt_task:
commands:
- 'dbt deps'
- 'dbt seed'
- 'dbt run'
project_directory: /Users/someone@example.com/Testing
warehouse_id: 1a111111a1111aa1
libraries:
- pypi:
package: 'dbt-databricks>=1.0.0,<2.0.0'
Untuk mendapatkan ID gudang SQL, buka halaman pengaturan gudang SQL, lalu salin ID yang ditemukan di tanda kurung setelah nama gudang di bidang Nama
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > dbt_task
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML. Lihat dbt task untuk pekerjaan.
Bundel Aset Databricks juga menyertakan dbt-sql
templat proyek yang mendefinisikan sebuah pekerjaan dengan tugas dbt, serta profil dbt untuk pekerjaan dbt yang telah disebarkan. Untuk informasi tentang templat Bundel Aset Databricks, lihat Templat bundel default.
Jalankan tugas pekerjaan
Anda menggunakan tugas ini untuk menjalankan pekerjaan lain.
Contoh berikut berisi tugas menjalankan pekerjaan di pekerjaan kedua yang memicu pekerjaan pertama.
resources:
jobs:
my-first-job:
name: my-first-job
tasks:
- task_key: my-first-job-task
new_cluster:
spark_version: '13.3.x-scala2.12'
node_type_id: 'i3.xlarge'
num_workers: 2
notebook_task:
notebook_path: ./src/test.py
my_second_job:
name: my-second-job
tasks:
- task_key: my-second-job-task
run_job_task:
job_id: ${resources.jobs.my-first-job.id}
Contoh ini menggunakan substitusi untuk mengambil ID tugas yang akan dijalankan. Untuk mendapatkan ID pekerjaan dari UI, buka pekerjaan di ruang kerja dan salin ID dari nilai ID Pekerjaan di tab Detail Pekerjaan halaman pengaturan pekerjaan.
Untuk pemetaan tambahan yang dapat Anda tetapkan untuk tugas ini, lihat tasks > run_job_task
dalam payload permintaan operasi pembuatan pekerjaan seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML.