Doğrudan dağıtım altyapısına geçiş

Bildirim temelli Otomasyon Paketleri başlangıçta dağıtımları yönetmek için Databricks Terraform sağlayıcısının üzerine kurulmuştur. Ancak Databricks CLI sürüm 0.279.0 ve üzeri iki farklı dağıtım altyapısını destekler: terraform ve direct. Doğrudan dağıtım altyapısı önemli avantajlar sağlar ve Terraform'a bağımlı değildir.

Databricks CLI sürüm 1.3.0 ve üzeri kullanılarak oluşturulan yeni paketler varsayılan olarak doğrudan dağıtım altyapısını kullanır. Terraform dağıtım motorunu kullanmaya devam eden paketler otomatik olarak doğrudan motora taşınır, bu yüzden yapılandırma gerekmez. Bkz. Doğrudan dağıtımı kullanmaya başlayın.

Otomatik geçişi önlemek için bundle.engine: terraform veya DATABRICKS_BUNDLE_ENGINE=terraform ayarlayın. Bu, tüm Databricks CLI sürümlerinde otomatik göçü önler. Databricks CLI’nin 1.19’a kadar olan sürümlerinde Terraform motoru kullanılmaya devam etmektedir. Databricks CLI sürüm 1.20.0 ve üzerinde hata oluşur. Bkz. Yeni bir paketi doğrudan dağıtma.

Önemli

Databricks CLI sürüm 1.20.0'da Terraform dağıtım motoru kaldırıldı. Databricks CLI, Terraform state'e sahip paketleri doğrudan motora otomatik olarak taşıyabilir, ancak otomatik geçiş başarısız olursa dağıtım iptal edilir. Terraform dağıtım motorunu kullanmaya devam etmek için Databricks CLI sürüm 1.19'a sabitleyin. Bkz . Bildirim temelli Otomasyon Paketleri yakında varsayılan olarak doğrudan dağıtım altyapısını kullanacak.

Doğrudan dağıtım avantajları

Yeni doğrudan dağıtım altyapısı Databricks Go SDK'sını kullanır ve aşağıdaki avantajlara sahiptir:

  • Daha hızlı dağıtımlar: Paket dağıtımları en fazla 40% daha hızlıdır.
  • Daha güçlü ve ayrıntılı doğrulama ve planlama: bundle plan -o json kullanılarak yapılan değişikliklerin ayrıntılı fark dökümleri, belirli bir eylemi neyin tetiklediğini açıklayan alan bazında ayrıntılar sunan raporlar.
  • Yeniden yürütülebilir planlar: bundle deploy --plan plan.json Plan hesaplaması atlandığından yalnızca onaylanan eylemlerin üretime ve daha hızlı dağıtımlara ulaşmasını sağlayarak daha önce oluşturulmuş bir planı yürütür.
  • Basit kurulum: Güvenlik duvarları, proxy'ler ve özel sağlayıcı kayıt defterleriyle ilgili sorunlardan kaçınılır.
  • Daha fazla kaynak: Kataloglar, dış konumlar, Yapay Zeka Arama uç noktaları ve Genie alanları gibi ek kaynaklar desteklenir.
  • Sabit klasörler: Varlıklar, değişiklik koruması ve dağıtım tutarlılığı için isteğe bağlı olarak sabit, salt okunur bir klasöre dağıtılabilir. Bkz. immutable_folder.

Doğrudan dağıtımı kullanmaya başlayın

Doğrudan dağıtım motoru, Databricks CLI sürüm 1.3.0 ve üzeri ile oluşturulan yeni paketler için varsayılan olarak kullanılır. Databricks CLI sürüm 1.14 ve üzerinde, Terraform motorunu kullanan paketler dağıtımda otomatik olarak doğrudan motora taşınır.

Databricks CLI sürümleri 1.8 ve üzerinde, engine: direct ayarlayarak bir paketi doğrudan motora taşıyabilirsiniz. Bkz. Yeni bir paketi doğrudan dağıtma.

Yeni bir paketi doğrudan dağıtma

Doğrudan dağıtım motorunu açıkça ayarlamak için aşağıdakilerden birini yapın:

  • "databricks.yml dosyanızda bundle.engine ayarlayın."

    bundle:
      engine: direct
    
  • Ortam değişkenini ayarlayın ve dağıtın DATABRICKS_BUNDLE_ENGINE :

    DATABRICKS_BUNDLE_ENGINE=direct databricks bundle deploy -t my_target
    

Hem yapılandırma hem de ortam değişkeni ayarlanırsa, yapılandırma önceliklidir.

Dağıtım motoru karşılaştırması

Yeni doğrudan dağıtım altyapısı çoğunlukla Terrform dağıtım altyapısıyla aynı şekilde davranır, ancak bazı farklılıklar vardır.

Kaynak durumu fark hesaplaması

Tek bir kaynak durumunu (yerel yapılandırma ve uzak durumun bir karışımı) koruyan Terraform'un aksine, yeni altyapı bu yapılandırmaları ayrı tutar ve yalnızca yerel yapılandırmayı kendi durum dosyasında kaydeder.

Kaynak durumu fark hesaplaması iki adımda yapılır:

  1. Yerel paket yapılandırması, en son dağıtım için kullanılan anlık görüntü yapılandırmasıyla karşılaştırılır. Uzak durum rol oynamaz.
  2. Uzak durum, en son dağıtım için kullanılan anlık görüntü yapılandırmasıyla karşılaştırılır.

Sonuç şudur:

  • databricks.yml kaynak değişiklikleri asla yoksayılmaz ve her zaman bir güncelleştirme tetikler.
  • Uygulama tarafından işlenmeyen kaynak alanları tutarsız bir sonuç hatası tetiklemez. Bu kaynaklar doğrudan motor tarafından başarıyla dağıtılır, ancak bu bir drift'e neden olabilir. Dağıtılan kaynaklar bir sonraki plan veya dağıtım sırasında güncelleştirilir.

Yapılandırma ayarları kaldırıldı

İki altyapı, paket yapılandırmanızdan kaldırdığınız ayarları farklı şekilde işler:

  • Terraform motoruyla, databricks.yml öğenizden bir küme alanını kaldırdığınızda platformdaki ilgili değer değişmeden kalır. Terraform yalnızca yapılandırmada açıkça mevcut olan alanları yönetir, bu nedenle kaldırılan bir alan son dağıtım sırasında sahip olduğu değeri korur.
  • Doğrudan altyapıda, databricks.yml öğenizden ayarlanmış bir alanı kaldırmak, değeri kaynağın varsayılan değerine döndürür. Doğrudan altyapı yerel yapılandırmanızı önceki anlık görüntüyle karşılaştırdığından, artık mevcut olmayan bir alan bir değişiklik olarak değerlendirilir ve kaynak bir sonraki dağıtımda varsayılan değerine güncelleştirilir.

Bir değeri kalıcı hale getirmek için, daha önce dağıtılan değere güvenmek yerine bunu yapılandırmanızda açıkça ayarlayın.

Kaynak değiştirme araması

Kaynak değiştirmeleri, kaynak kimliklerini çözümlemek için kullanılabilir; örneğin, ${resources.jobs.my_job.id}. Bkz. Değiştirmeler. Doğrudan dağıtım altyapısındaki kaynak değiştirmelerinin çözümü iki adımda gerçekleştirilir:

  1. Yerel yapılandırmada bulunan alanlara işaret eden başvurular, yerel yapılandırmada sağlanan değere çözümlenir.
  2. Yerel yapılandırmada bulunmayan başvurular uzak durum verisinden çözümlenir. Bu, belirli bir kaynak için uygun GET istek kullanılarak getirilen durumdur.

Değiştirme işlemini çözümlemek ${resource.*} için kullanılan şema out.fields.txtdosyasındadır. ve ALL olarak STATE işaretlenen alanlar yerel çözümleme için kullanılabilir. ALL veya REMOTE olarak işaretlenen alanlar uzaktan çözünürlük için kullanılabilir.

Kaynak uyumluluğu

Aşağıdaki kaynaklar doğrudan dağıtım altyapısını gerektirir ve Terraform dağıtım altyapısıyla desteklenmez:

Buna ek olarak, lifecycle.started alanı yalnızca doğrudan dağıtım motorunda ve yalnızca apps, clusters ve sql_warehouses için kullanılabilir. true olarak ayarlandığında, kaynağı başlatılmış modda dağıtır. Bkz . yaşam döngüsü.