İş oluşturma ve yönetimi otomatikleştirme
Bu makalede, işlerin oluşturulmasını ve yönetilmesini otomatikleştirmek için geliştirici araçlarını kullanmaya nasıl başladığınız gösterilmektedir. Databricks CLI, Databricks SDK'ları ve REST API'sini tanıtır.
Not
Bu makalede Databricks CLI, Databricks Python SDK'sı ve REST API'yi kullanarak iş oluşturmaya ve yönetmeye yönelik örnekler verilmektedir. Programmatik olarak işleri CI/CD'nin bir parçası olarak yönetmek için Databricks Varlık Paketleri (DABs) veya Databricks Terraform sağlayıcısıkullanın.
Araçları karşılaştırma
Aşağıdaki tabloda, program aracılığıyla iş oluşturmak ve yönetmek için Databricks CLI, Databricks SDK'ları ve REST API'leri karşılaştırılır. Kullanılabilir tüm geliştirici araçları hakkında bilgi edinmek için bkz. Yerel geliştirme araçları.
Araç | Açıklama |
---|---|
Databricks CLI | REST API'yi sarmalayan Databricks komut satırı arabirimini (CLI) kullanarak Databricks işlevselliğine erişin. Deneme, kabuk betiği oluşturma ve REST API'yi doğrudan çağırma gibi tek seferlik görevler için CLI kullanın |
Databricks SDK'ları | Python, Java, Go veya R için kullanılabilen databricks SDK'sını kullanarak uygulama geliştirin ve özel Databricks iş akışları oluşturun. REST API çağrılarını doğrudan curl veya Postman kullanarak göndermek yerine, Databricks ile etkileşime geçmek için BIR SDK kullanabilirsiniz. |
Databricks REST API | Yukarıdaki seçeneklerden hiçbiri özel kullanım örneğiniz için işe yaramazsa Databricks REST API'sini doğrudan kullanabilirsiniz. Rest API'yi doğrudan tercih ettiğiniz programlama dilindeki bir SDK'nın şu anda kullanılamadığı işlemleri otomatikleştirme gibi kullanım örnekleri için kullanın. |
Databricks CLI'yi kullanmaya başlama
Databricks CLI kimlik doğrulamasını yüklemek ve yapılandırmak için bkz. databricks CLI yükleme veya güncelleştirme ve Databricks CLI için kimlik doğrulamasını.
Databricks CLI, işlerle ilgili olanlar da dahil olmak üzere Databricks özellikleri için alt komutlar içerebilen bir dizi ilgili komut seti içeren komut gruplarına sahiptir.
jobs
komut grubu, işlerinizi ve iş çalıştırmalarınızı create
, delete
ve get
gibi eylemlerle yönetmenizi sağlar. CLI, Databricks REST API'sini sarmaladığı için çoğu CLI komutu bir REST API isteğiyle eşlenir. Örneğin, databricks jobs get
GET/api/2.2/jobs/get
'e karşılık gelir.
"Jobs komut grubu, tek bir komut veya alt komut için daha ayrıntılı kullanım ve söz dizimi bilgilerini görmek için h
bayrağını kullanın."
databricks jobs -h
databricks jobs <command-name> -h
databricks jobs <command-name> <subcommand-name> -h
Örnek: CLI kullanarak bir Databricks görevi alma
Çalışma alanında tek bir iş hakkındaki bilgileri yazdırmak için aşağıdaki komutu çalıştırın:
$ databricks jobs get <job-id>
databricks jobs get 478701692316314
Bu komut JSON döndürür:
{
"created_time":1730983530082,
"creator_user_name":"someone@example.com",
"job_id":478701692316314,
"run_as_user_name":"someone@example.com",
"settings": {
"email_notifications": {
"no_alert_for_skipped_runs":false
},
"format":"MULTI_TASK",
"max_concurrent_runs":1,
"name":"job_name",
"tasks": [
{
"email_notifications": {},
"notebook_task": {
"notebook_path":"/Workspace/Users/someone@example.com/directory",
"source":"WORKSPACE"
},
"run_if":"ALL_SUCCESS",
"task_key":"success",
"timeout_seconds":0,
"webhook_notifications": {}
},
{
"depends_on": [
{
"task_key":"success"
}
],
"disable_auto_optimization":true,
"email_notifications": {},
"max_retries":3,
"min_retry_interval_millis":300000,
"notebook_task": {
"notebook_path":"/Workspace/Users/someone@example.com/directory",
"source":"WORKSPACE"
},
"retry_on_timeout":false,
"run_if":"ALL_SUCCESS",
"task_key":"fail",
"timeout_seconds":0,
"webhook_notifications": {}
}
],
"timeout_seconds":0,
"webhook_notifications": {}
}
}
Örnek: CLI kullanarak Databricks işi oluşturma
Aşağıdaki örnekte Databricks CLI'sı bir Databricks işi oluşturmak için kullanılır. Bu iş, belirtilen not defterini çalıştıran tek bir iş görevi içeriyor. Bu not defteri, wheel
PyPI paketinin belirli bir sürümüne bağımlıdır. Bu görevi çalıştırmak için, iş geçici olarak PYSPARK_PYTHON
adlı bir ortam değişkenini dışarı aktaran bir küme oluşturur. İş çalıştırıldıktan sonra küme sonlandırılır.
Aşağıdaki JSON dosyasını kopyalayıp bir dosyaya yapıştırın. Mevcut herhangi bir işin JSON biçimine, iş sayfası kullanıcı arabiriminden JSON'u Görüntüle seçeneğini seçerek erişebilirsiniz.
{ "name": "My hello notebook job", "tasks": [ { "task_key": "my_hello_notebook_task", "notebook_task": { "notebook_path": "/Workspace/Users/someone@example.com/hello", "source": "WORKSPACE" } } ] }
Aşağıdaki komutu çalıştırın ve
<file-path>
'ı yeni oluşturduğunuz dosyanın yolu ve adıyla değiştirin.databricks jobs create --json @<file-path>
Databricks SDK'sını kullanmaya başlama
Databricks, Python, Java ve Go gibi popüler programlama dillerini kullanarak işlemleri otomatikleştirmenize olanak sağlayan SDK'lar sağlar. Bu bölümde Databricks işleri oluşturmak ve yönetmek için Python SDK'sını kullanmaya nasıl başladığınız gösterilmektedir.
Databricks not defterinizden veya yerel geliştirme makinenizden Databricks SDK'sını kullanabilirsiniz. Yerel geliştirme makinenizi kullanıyorsanız, önce Python için Databricks SDK'sını kullanmaya başlamatamamladığınızdan emin olun.
Not
Databricks not defterinden geliştiriyorsanız ve Databricks Runtime 12.2 LTS ve altı kullanan bir küme kullanıyorsanız, önce Python için Databricks SDK'sını yüklemeniz gerekir. Bkz. Pythoniçin Databricks SDK'sını yükleme veya yükseltme.
Örnek: Python SDK'sını kullanarak Databricks işi oluşturma
Aşağıdaki örnek not defteri kodu, var olan bir not defterini çalıştıran bir Databricks işi oluşturur. Mevcut not defterinin yolunu ve ilgili iş ayarlarını istemlerle alır.
İlk olarak, SDK'nın doğru sürümünün yüklendiğinden emin olun:
%pip install --upgrade databricks-sdk==0.40.0
%restart_python
Ardından, not defteri göreviyle iş oluşturmak için aşağıdaki komutu çalıştırarak istemleri yanıtlayın:
from databricks.sdk.service.jobs import JobSettings as Job
from databricks.sdk import WorkspaceClient
job_name = input("Provide a short name for the job, for example, my-job: ")
notebook_path = input("Provide the workspace path of the notebook to run, for example, /Users/someone@example.com/my-notebook: ")
task_key = input("Provide a unique key to apply to the job's tasks, for example, my-key: ")
test_sdk = Job.from_dict(
{
"name": job_name ,
"tasks": [
{
"task_key": task_key,
"notebook_task": {
"notebook_path": notebook_path,
"source": "WORKSPACE",
},
},
],
}
)
w = WorkspaceClient()
j = w.jobs.create(**test_sdk.as_shallow_dict())
print(f"View the job at {w.config.host}/#job/{j.job_id}\n")
Databricks REST API'sini kullanmaya başlama
Not
Databricks, karşılık gelen Databricks SDK'sı olmayan bir programlama dili kullanmıyorsanız Databricks CLI ve Databricks SDKkullanılmasını önerir.
Aşağıdaki örnek, tek bir işin ayrıntılarını almak için Databricks REST API'sine bir istekte bulunur.
DATABRICKS_HOST
ve DATABRICKS_TOKEN
ortam değişkenlerinin, Azure Databricks kişisel erişim belirteci ile kimlik doğrulaması gerçekleştirmebölümünde açıklandığı gibi ayarlandığını varsayar.
$ curl --request GET "https://${DATABRICKS_HOST}/api/2.2/jobs/get" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data '{ "job": "11223344" }'
Databricks REST API'sini kullanma hakkında bilgi almak için Databricks REST API başvuru belgelerinebakın.
Temizlemek
Yeni oluşturduğunuz işleri silmek için Databricks CLI'dan databricks jobs delete <job-id>
çalıştırın veya işi doğrudan Databricks çalışma alanı kullanıcı arabiriminden silin.
Sonraki adımlar
- Databricks CLI hakkında daha fazla bilgi edinmek için bkz. Databricks CLI nedir? Diğer komut grupları hakkında bilgi edinmek için Databricks CLI komutlarını ve .
- Databricks SDK'sı hakkında daha fazla bilgi edinmek için Azure Databricks ile SDK'ları kullanmabölümüne bakın.
- Databricks kullanarak CI/CD hakkında daha fazla bilgi edinmek için Databricks Varlık Paketleri, Databricks Terraform Sağlayıcısı ve Databricks için Terraform CDKTF'e bakın.
- Tüm geliştirici araçlarına kapsamlı bir genel bakış için bkz. Yerel geliştirme araçları.