Aracılığıyla paylaş


Databricks Varlık Paketi şablonları

Bu makalede, Databricks CLI 0.205 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 CLIbundle 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 CLIbundle 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 bir template klasörde bulunan dosya. Dosyanız databricks.yml.tmpl ek *.yml.tmpl yapılandırma şablonlarına başvuruda bulunuyorsa bunların eşlemedeki include 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 initbir 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ğlanmazsa bundle 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ı istemidir bundle init .
  • order , komutun bir parçası olarak kullanıcı tarafından bir değer sağlanmazsa her kullanıcı --config-file isteminin bundle init görüntülendiği isteğe bağlı bir sıradır. Sağlanmazsa order , 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.