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. CLI'nın önceki sürümleri kullanılarak oluşturulan paketler, bu sayfada açıklanan geçiş adımları kullanılarak Terraform dağıtım altyapısından doğrudan dağıtım altyapısına geçirilebilir.

Önemli

Terraform dağıtım altyapısı yakında kullanımdan kaldırılacağı ve doğrudan dağıtım altyapısı varsayılan hale geleceği için Databricks doğrudan altyapıya geçiş yapmanızı önerir. 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şlama

Yeni doğrudan dağıtım altyapısını kullanmaya başlamak için:

  • Mevcut paketleri databricks bundle deployment migrate kullanarak geçirin. Bkz. Mevcut bir paketi taşıma.
  • Yeni veya mevcut paketler için, paket yapılandırmanızda engine: direct değerini ayarlayın veya DATABRICKS_BUNDLE_ENGINE ortam değişkenini direct olarak ayarlayın. Bkz. Yeni bir paketi doğrudan dağıtma.

Mevcut bir paketi taşıma

Doğrudan dağıtım altyapısı kendi JSON durum dosyasını kullanır. Şema Terraform JSON durum dosyasından farklıdır. komutu, bundle deployment migrate Terrform durum dosyasını (terraform.tfstate) doğrudan dağıtım durumu dosyasına (resources.json ) dönüştürür. komutu, mevcut dağıtımdaki kimlikleri okur.

  1. Terraform ile tam dağıtım gerçekleştirin:

    databricks bundle deploy -t my_target
    
  2. Dağıtımı taşıyın.

    databricks bundle deployment migrate -t my_target
    

    Note

    Databricks CLI sürümleri 0.280.0'dan 1.4.x'e kadar, bundle deployment migrate plan herhangi bir işlem bildirirse göçü çalıştırır bundle plan ve durdurur. Bu durumda, yeniden dağıtın ve göçü tekrar deneyin. Yine de başarısız olursa, plan kontrolünü atlayabilirsiniz.--noplancheck

  3. Geçişin başarılı olduğunu doğrulayın. Çalıştır databricks bundle plan, başarılı olmalı ve hiçbir işlem bildirmemeli.

    databricks bundle plan -t my_target
    

    Note

    Yerel yapılandırmanız dağıtılan kaynakla eşleşse bile plan kaynaklardaki değişiklikleri bildirebilir. Bunun nedeni, önceki Terraform durum dosyasının dağıtımdan sonra platformun doldurdığı meta veri alanlarını içermesi ve paket yapılandırmanızda mevcut olmaması olabilir. Bu farklılıklar gerçek yapılandırma kayması değildir ve iş davranışını değiştirmez. Doğrudan motor, bunları bir sonraki bundle deploy üzerinde uzlaştırır. Doğrudan motorun farkları nasıl hesapladığına ilişkin ayrıntılar için bkz. Kaynak durumu farkı hesaplaması.

    • Doğrulama başarısız olursa yeni durum dosyasını kaldırın:

      rm .databricks/bundle/my_target/resources.json
      
    • Doğrulama başarılı olursa, durum dosyasını çalışma alanına eşitlemek için paketi dağıtın:

      databricks bundle deploy -t my_target
      

Yeni bir paketi doğrudan dağıtma

Komut bundle migrate , hiçbir durum dosyası olmadığından hiç dağıtılmayan paketlerde çalışmaz. Bunun yerine 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ü.