Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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-databricksdağı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 jsonkullanarak 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 migratekullanarak geçirin. - Yeni paketleri, ortam değişkeni
DATABRICKS_BUNDLE_ENGINEolarakdirectş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.
Terraform ile tam dağıtım gerçekleştirin:
databricks bundle deploy -t my_targetDağıtımı taşıyın.
databricks bundle deployment migrate -t my_targetGeçişin başarılı olduğunu doğrulayın. Komutun
databricks bundle planbaşarılı olması ve hiçbir değişiklik göstermemesi gerekir.databricks bundle plan -t my_targetDoğrulama başarısız olduysa yeni durum dosyasını kaldırın:
rm .databricks/bundle/my_target/resources.jsonDoğ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:
- 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.
- 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.ymlkaynak 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:
- Yerel yapılandırmada bulunan alanlara işaret eden başvurular, yerel yapılandırmada sağlanan değere çözümlenir.
- Yerel yapılandırmada bulunmayan başvurular uzak durum verisinden çözümlenir. Bu, belirli bir kaynak için uygun
GETistek 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.