Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide, belirli bir Docker kapsayıcı görüntüsü kullanarak kümede Python göreviyle bir iş çalıştıran Bildirim temelli Otomasyon Paketleri oluşturmak için özel bir şablon oluşturacaksınız.
Özel paket şablonları hakkında bilgi için bkz. Özel paket şablonları.
Gereksinimler
-
Databricks CLI sürüm 0.218.0 veya üzerini yükleyin. Zaten yüklediyseniz, komut satırından çalıştırarak
databricks -versionsürümün 0.218.0 veya üzeri olduğunu onaylayın.
Kullanıcı istemi değişkenlerini tanımlama
İlk olarak, kullanıcı istemi değişkenlerini tanımlayın databricks bundle init . Komut satırından:
adlı
dab-container-templateboş bir klasör oluşturun:mkdir dab-container-templateKlasörün kökünde adlı
databricks_template_schema.jsonbir dosya oluşturun:cd dab-container-template touch databricks_template_schema.jsonPaket projesi adı için kullanıcı girişi tanımlamak üzere aşağıdaki JSON'u
databricks_template_schema.jsondosyasına ekleyin:{ "properties": { "project_name": { "type": "string", "default": "project_name", "description": "Project name", "order": 1 } } }
Paket klasörü yapısını oluşturma
Ardından, oluşturduğunuz paketlerin klasör yapısını içeren bir template klasör oluşturun. Alt dizinlerin ve dosyaların adları Go paket şablonu söz dizimini izler.
Bu şablon, proje adı istemine göre paket proje klasörünü oluşturur:
mkdir -p "template/{{.project_name}}"
Şimdi alt dizinleri resources ve src paket dosyaları için oluşturun:
mkdir -p "template/{{.project_name}}/resources"
mkdir -p "template/{{.project_name}}/src"
YAML yapılandırma şablonları ekleme
template/{{.project_name}} klasöründe adlı databricks.yml.tmplbir dosya oluşturun:
touch template/{{.project_name}}/databricks.yml.tmpl
Aşağıdaki YAML'yi databricks.yml.tmpl öğesine ekleyin. Bu örnek, paket şablonu yardımcılarınıkullanır.
# This is a bundle definition for {{.project_name}}.
# See https://docs.databricks.com/dev-tools/bundles/index.html for documentation.
bundle:
name: {{.project_name}}
include:
- resources/*.yml
targets:
# The 'dev' target, used for development purposes.
# Whenever a developer deploys using 'dev', they get their own copy.
dev:
# We use 'mode: development' to make sure everything deployed to this target gets a prefix
# like '[dev my_user_name]'. Setting this mode also disables any schedules and
# automatic triggers for jobs and enables the 'development' mode for Lakeflow pipelines.
mode: development
default: true
workspace:
host: {{workspace_host}}
# The 'prod' target, used for production deployment.
prod:
# For production deployments, there is only a single copy, so override the
# workspace.root_path default of
# /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.target}/${bundle.name}
# to a path that is not specific to the current user. Avoid /Shared, which is writable
# by all workspace users.
#
# By making use of 'mode: production' we enable strict checks
# to make sure we have correctly configured this target.
mode: production
workspace:
host: {{workspace_host}}
root_path: /Workspace/Production/.bundle/${bundle.name}
{{- if not is_service_principal}}
run_as:
# This runs as {{user_name}} in production. Alternatively,
# a service principal could be used here using service_principal_name
# (see Databricks documentation).
user_name: {{user_name}}
{{end -}}
klasöründe adlı {{.project_name}}_job.yml.tmpltemplate/{{.project_name}}/resources başka bir YAML dosyası oluşturun. Bu yeni YAML dosyası iş tanımını içerir.
touch template/{{.project_name}}/resources/{{.project_name}}_job.yml.tmpl
Belirli bir Docker kapsayıcı görüntüsü kullanılarak bir iş kümesinde çalıştırılacak python görevini içeren şablon işini açıklamak için bu dosyaya aşağıdaki YAML'yi ekleyin. Bu örnekte varsayılan Databricks temel Docker kapsayıcı görüntüsü kullanılır, ancak bunun yerine kendi özel görüntünüzü belirtebilirsiniz.
# The main job for {{.project_name}}
resources:
jobs:
{{.project_name}}_job:
name: {{.project_name}}_job
tasks:
- task_key: python_task
job_cluster_key: job_cluster
spark_python_task:
python_file: ../src/task.py
job_clusters:
- job_cluster_key: job_cluster
new_cluster:
docker_image:
url: databricksruntime/python:10.4-LTS
node_type_id: i3.xlarge
spark_version: 13.3.x-scala2.12
Yapılandırmanızda başvurulan dosyaları ekleme
Ardından, şablondaki işle ilgili Python görev dosyasını oluşturun.
touch template/{{.project_name}}/src/task.py
Şimdi task.py'a aşağıdaki öğeleri ekleyin:
print(f'Spark version{spark.version}')
Paket şablonu yapısını doğrulama
Paket şablonu projenizin klasör yapısını gözden geçirin. Şu şekilde görünmelidir:
dab-container-template
├── databricks_template_schema.json
└── template
├── {{.project_name}}
├── databricks.yml.tmpl
├── resources
│ └── {{.project_name}}_job.yml.tmpl
└── src
└── task.py
Şablonunuzu test edin
Son olarak paket şablonunuzu test edin. Yeni özel şablonunuzu temel alan bir paket oluşturmak için yeni şablon konumunu belirterek databricks bundle init komutunu kullanın. Paket projeleri kök klasörünüzden:
databricks bundle init dab-container-template
Tip
Özel şablonunuzu doğrudan çalışma alanında diğer kullanıcıların kullanımına açmak için bir Git deposunda depolayın ve özel bir şablon klasörü yapılandırın. Kullanıcılar daha sonra CLI kullanmadan çalışma alanında bir paket oluşturduklarında bunu seçebilir. Bkz . Çalışma alanında özel şablon klasörü yapılandırma.
Sonraki adımlar
- Azure Databricks çalışma alanına not defteri dağıtan ve dağıtılan not defterini Azure Databricks işi olarak çalıştıran bir paket oluşturun. Bkz. Bildirim temelli Otomasyon Paketleri ile iş geliştirme.
- Azure Databricks çalışma alanına not defteri dağıtan ve ardından dağıtılan not defterini ETL işlem hattı olarak çalıştıran bir paket oluşturun. Bkz. Bildirim temelli Otomasyon Paketleri ile işlem hatları geliştirme.
- MLOps yazılım yığınını dağıtan ve çalıştıran bir paket oluşturun. Bkz. MLOps Yığınları için Bildirimsel Otomasyon Paketleri
- GitHub'da CI/CD (sürekli tümleştirme/sürekli dağıtım) iş akışına paket ekleyin. Bkz. GitHub Actions.
- Özel şablon klasörünü yapılandırarak özel şablonunuzu çalışma alanında diğer kullanıcıların kullanımına açın. Bkz . Çalışma alanında özel şablon klasörü yapılandırma.
Kaynaklar
- GitHub 'da Paket örnekleri deposu