Aracılığıyla paylaş


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

Önemli

Bu özellik Deneysel'dir.

Databricks Varlık Paketleri başlangıçta dağıtımları yönetmek için Databricks Terraform sağlayıcısının üzerine kurulmuştur. Ancak, bu bağımlılıktan uzaklaşmak için 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ı Terraform'a bağımlı değildir ve yakında varsayılan haline gelecektir. Terraform dağıtım altyapısı sonunda kullanım dışı bırakılacaktır.

Doğrudan dağıtımın avantajları nelerdir?

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

  • Terraform ve terraform-provider-databricks dağıtımdan önce indirilmeye gerek yok.
  • Güvenlik duvarları, ara sunucular ve özel sağlayıcı kayıt defterleriyle ilgili sorunları önler
  • bundle plan -o json kullanarak yapılabilen değişikliklerin ayrıntılı farkları
  • Daha hızlı dağıtım
  • Yeni paket kaynaklarının yayınlanma süresi, Terraform sağlayıcı sürümü ile uyumlu hale getirilmesine gerek olmadığından azaldı.

Doğrudan dağıtımı kullanmaya nasıl başlayabilirim?

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

  • Mevcut paketleri databricks bundle deployment migrate kullanarak geçirin.
  • Yeni paketleri, ortam değişkeni DATABRICKS_BUNDLE_ENGINE olarak direct şekilde ayarlayıp dağıtın.

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. Paket dağıtım geçişi komutu 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
    
  3. Geçişin başarılı olduğunu doğrulayın. Komutun databricks bundle plan başarılı olması ve hiçbir değişiklik göstermemesi gerekir.

    databricks bundle plan -t my_target
    
    • Doğrulama başarısız olduysa yeni durum dosyasını kaldırın:

      rm .databricks/bundle/my_target/resources.json
      
    • Doğrulama başarılı olduysa, 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 ortam değişkenini ayarlayın ve dağıtın DATABRICKS_BUNDLE_ENGINE :

DATABRICKS_BUNDLE_ENGINE=direct databricks bundle deploy -t my_target

Doğrudan dağıtım altyapısındaki değişiklikler nelerdir?

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.

$resources değişkeni araması

En yaygın kullanımı $resources, Terraform ile doğrudan dağıtım motorları arasında aynı şekilde davranan değiştirme kimliklerini (örneğin, $resources.jobs.my_job.id) çözmektir.

Ancak, doğrudan dağıtım altyapısındaki değiştirmenin $resources çözümü (örneğin, $resources.pipelines.my_pipeline.name) 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.

Çözümleme için $resource kullanılan şema out.fields.txtdosyasında kullanılabilir. 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.