Databricks Varlık Paketi şablonları
Bu makalede, Databricks CLI 0.218.0 ve üzeri sürümleriyle çalışan Databricks Varlık Paketi şablonlarının söz dizimi açıklanmaktadır. Paketler, Azure Databricks iş akışlarının programlı yönetimini sağlar. Bkz . Databricks Varlık Paketleri nedir?
Paket şablonları, kullanıcıların bir geliştirme ortamı dağıtım işlem hattında ortak olan klasör yapıları, derleme adımları ve görevleri, testleri ve diğer DevOps kod olarak altyapı (IaC) öznitelikleri oluşturarak tutarlı ve tekrarlanabilir bir şekilde paket oluşturmasına olanak tanır.
Örneğin, yüklemeden sonra zaman alan bir derleme adımıyla özel paketler gerektiren Databricks işlerini düzenli olarak çalıştırırsanız, özel kapsayıcı ortamlarını destekleyen bir paket şablonu oluşturarak geliştirme döngünüzü hızlandırabilirsiniz.
Paket şablonları, oluşturulacak paketin dizin yapısını tanımlar ve bir databricks.yml.tmpl
yapılandırma dosyası şablonunun yanı sıra kullanıcı istemi değişkenlerini içeren bir databricks_template_schema.json
dosya içerir.
Şablona dayalı paket oluşturma
Bu bölümde, Azure Databricks varsayılan paket şablonu veya özel paket şablonu olmak üzere paket şablonunun nasıl kullanılacağı açıklanmaktadır.
Varsayılan paket şablonunu kullanma
Paketinizi oluşturmak için Azure Databricks varsayılan paket şablonunu kullanmak için, kullanılacak varsayılan şablonun adını belirterek Databricks CLI bundle init
komutunu kullanın. Örneğin, aşağıdaki komut varsayılan Python paket şablonunu kullanarak bir paket oluşturur:
databricks bundle init default-python
Varsayılan bir şablon belirtmezseniz, bundle init
komut aralarından seçim yapabileceğiniz kullanılabilir şablonlar kümesini sunar.
Azure Databricks aşağıdaki varsayılan paket şablonlarını sağlar:
Şablon | Açıklama |
---|---|
default-python |
Databricks ile Python kullanmaya yönelik bir şablon. Bu şablon, bir iş ve Delta Live Tables işlem hattı ile bir paket oluşturur. Bkz. default-python. |
default-sql |
Databricks ile SQL kullanmaya yönelik bir şablon. Bu şablon, SQL ambarı üzerinde SQL sorguları çalıştıran bir işi tanımlayan bir yapılandırma dosyası içerir. Bkz. default-sql. |
dbt-sql |
Yerel geliştirme için dbt-core ve dağıtım paketlerinden yararlanan bir şablon. Bu şablon, dbt görevi olan bir işi tanımlayan yapılandırmanın yanı sıra dağıtılan dbt işleri için dbt profillerini tanımlayan bir yapılandırma dosyasını içerir. Bkz. dbt-sql. |
mlops-stacks |
Yeni MLOps Stacks projelerini başlatmak için gelişmiş bir tam yığın şablonu. Bkz. MLOps Yığınları için mlops-stacks ve Databricks Varlık Paketleri. |
Özel paket şablonu kullanma
Azure Databricks varsayılan paket şablonları dışında bir paket şablonu kullanmak için, şablonun yerel yolunu veya uzak URL'sini Databricks CLI bundle init
komutuna geçirin.
Örneğin, aşağıdaki komut Özel Paket Şablonu Öğreticisi'nde oluşturulan şablonu kullanırdab-container-template
:
databricks bundle init /projects/my-custom-bundle-templates/dab-container-template
Paket şablonu oluşturma
Paket şablonları Go paketi şablon oluşturma söz dizimlerini kullanır. Go paket şablonu belgelerine bakın.
En azından bir paket şablonu projesinin şunları içermesi gerekir:
databricks_template_schema.json
Paket proje adı için bir kullanıcı istemi değişkeni tanımlayan proje kökündeki bir dosya.databricks.yml.tmpl
Şablonla oluşturulan tüm paketler için yapılandırmayı tanımlayan birtemplate
klasörde bulunan dosya. Dosyanızdatabricks.yml.tmpl
ek*.yml.tmpl
yapılandırma şablonlarına başvuruda bulunuyorsa bunların eşlemedekiinclude
konumunu belirtin.
İsteğe bağlı olarak, şablon tarafından oluşturulan paketlerde yansıtılmasını istediğiniz klasöre alt klasörler ve dosyalar template
ekleyebilirsiniz.
Kullanıcı istemi değişkenlerini tanımlama
Temel paket şablonu oluşturmanın ilk adımı, bir şablon proje klasörü ve proje kökünde adlı databricks_template_schema.json
bir dosya oluşturmaktır. Bu dosya, kullanıcıların kullanarak bundle init
bir paket oluşturmak için şablonu kullandıklarında için giriş değerleri sağladığı değişkenleri içerir. Bu dosyanın biçimi JSON Şema Belirtimini izler.
mkdir basic-bundle-template
touch basic-bundle-template/databricks_template_schema.json
Aşağıdakini dosyaya databricks_template_schema.json
ekleyin ve dosyayı kaydedin:
{
"properties": {
"project_name": {
"type": "string",
"default": "basic_bundle",
"description": "What is the name of the bundle you want to create?",
"order": 1
}
},
"success_message": "\nYour bundle '{{.project_name}}' has been created."
}
Bu dosyada:
project_name
tek giriş değişkeni adıdır.default
, komutun bir parçası olarak kullanıcı--config-file
tarafından bir değer sağlanmazsabundle init
veya komut isteminde kullanıcı tarafından geçersiz kılındıysa isteğe bağlı bir varsayılan değerdir.description
, komutun bir parçası olarak ile kullanıcı tarafından bir değer sağlanmazsa giriş değişkeniyle--config-file
ilişkilendirilmiş kullanıcı istemidirbundle init
.order
, komutun bir parçası olarak kullanıcı tarafından bir değer sağlanmazsa her kullanıcı--config-file
istemininbundle init
görüntülendiği isteğe bağlı bir sıradır. Sağlanmazsaorder
, kullanıcı istemleri şemada listelendikleri sırayla görüntülenir.success_message
, başarılı proje oluşturma işleminde görüntülenen isteğe bağlı bir iletidir.
Klasör yapısını oluşturma
Ardından gerekli template
klasörü oluşturun ve içindeki klasör yapısını oluşturun. Bu yapı, bu şablonla oluşturulan paketlerle yansıtılır. Ayrıca, bu klasörlere eklenmesini istediğiniz dosyaları da yerleştirin. Bu temel paket şablonu dosyaları bir src
klasörde depolar ve tek bir basit not defteri içerir.
mkdir -p basic-bundle-template/template/src
touch basic-bundle-template/template/src/simple_notebook.ipynb
Dosyaya simple_notebook.ipynb
aşağıdakileri ekleyin:
print("Hello World!")
Yapılandırma şablonu dosyalarını doldurma
Şimdi klasörde gerekli databricks.yml.tmpl
dosyayı template
oluşturun:
touch basic-bundle-template/template/databricks.yml.tmpl
Bu dosyayı temel yapılandırma şablonu YAML ile doldurun. Bu yapılandırma şablonu paket adını, belirtilen not defteri dosyasını kullanan bir iş ve bu şablon kullanılarak oluşturulan paketler için iki hedef ortam oluşturur. Ayrıca, kesinlikle önerilen paket değiştirmelerinden de yararlanır. Bkz. paket değiştirmeleri.
# This is the configuration for the Databricks Asset Bundle {{.project_name}}.
bundle:
name: {{.project_name}}
# The main job for {{.project_name}}
resources:
jobs:
{{.project_name}}_job:
name: {{.project_name}}_job
tasks:
- task_key: notebook_task
job_cluster_key: job_cluster
notebook_task:
notebook_path: ../src/simple_notebook.ipynb
job_clusters:
- job_cluster_key: job_cluster
new_cluster:
node_type_id: i3.xlarge
spark_version: 13.3.x-scala2.12
targets:
# The deployment targets. See https://docs.databricks.com/en/dev-tools/bundles/deployment-modes.html
dev:
mode: development
default: true
workspace:
host: {{workspace_host}}
prod:
mode: production
workspace:
host: {{workspace_host}}
root_path: /Shared/.bundle/prod/${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
user_name: {{user_name}}
{{end -}}
Paket şablonunu test edin
Son olarak, şablonunuzu test edin. Yeni bir paket proje klasörü oluşturun ve şablonu kullanarak yeni bir paket başlatmak için Databricks CLI'sini kullanın:
mkdir my-test-bundle
cd my-test-bundle
databricks bundle init ../basic-bundle-template
İstem için yazınWhat is your bundle project name?
my_test_bundle
.
Test paketi oluşturulduktan sonra şema dosyasından gelen başarı iletisi çıkar. Klasörün içeriğini my-test-bundle
incelerseniz aşağıdakileri görmeniz gerekir:
my-test-bundle
├── databricks.yml
└── src
└── simple_notebook.ipynb
databricks.yml dosyası artık özelleştirilmiştir:
# This is the configuration for the Databricks Asset Bundle my-test-bundle.
bundle:
name: my-test-bundle
# The main job for my-test-bundle
resources:
jobs:
my-test-bundle_job:
name: my-test-bundle_job
tasks:
- task_key: notebook_task
job_cluster_key: job_cluster
notebook_task:
notebook_path: ../src/simple_notebook.ipynb
job_clusters:
- job_cluster_key: job_cluster
new_cluster:
node_type_id: i3.xlarge
spark_version: 13.3.x-scala2.12
targets:
# The 'dev' target, used for development purposes. See [_](https://docs.databricks.com/en/dev-tools/bundles/deployment-modes.html#development-mode)
dev:
mode: development
default: true
workspace:
host: https://my-host.cloud.databricks.com
# The 'prod' target, used for production deployment. See [_](https://docs.databricks.com/en/dev-tools/bundles/deployment-modes.html#production-mode)
prod:
mode: production
workspace:
host: https://my-host.cloud.databricks.com
root_path: /Shared/.bundle/prod/${bundle.name}
run_as:
# This runs as someone@example.com in production. Alternatively,
# a service principal could be used here using service_principal_name
user_name: someone@example.com
Şablonu paylaşma
Bu paket şablonunu başkalarıyla paylaşmak istiyorsanız, Git'in desteklediği ve kullanıcılarınızın erişimi olan herhangi bir sağlayıcıyla sürüm denetiminde depolayabilirsiniz. Komutu bir Git URL'si bundle init
ile çalıştırmak için, dosyanın bu databricks_template_schema.json
Git URL'sine göre kök konumda olduğundan emin olun.
İpucu
Dosyayı, paketin databricks_template_schema.json
köküne göre farklı bir klasöre yerleştirebilirsiniz. Ardından komutun bundle init
--template-dir
seçeneğini kullanarak dosyayı içeren databricks_template_schema.json
klasöre başvurabilirsiniz.
Sonraki adımlar
- Databricks tarafından oluşturulan ve bakımı yapılan ek şablonlara göz atın. GitHub'daki paket örnekleri deposuna bakın.
- MLOps Yığınlarını Databricks Varlık Paketi şablonlarıyla kullanmak için bkz . MLOps Yığınları için Databricks Varlık Paketleri.
- Go paketi şablon oluşturma hakkında daha fazla bilgi edinin. Go paket şablonu belgelerine bakın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin