Databricks Varlık Paketleri ile Delta Live Tables işlem hatları geliştirme
Yalnızca paket olarak da bilinen Databricks Varlık Paketleri, Delta Live Tables işlem hatları gibi Azure Databricks kaynaklarını program aracılığıyla doğrulamanıza, dağıtmanıza ve çalıştırmanıza olanak tanır. Bkz . Databricks Varlık Paketleri nedir?.
Bu makalede, işlem hattını program aracılığıyla yönetmek için bir paket oluşturma işlemi açıklanır. Bkz . Delta Live Tables nedir?. Paket, Python için Databricks Varlık Paketleri varsayılan paket şablonu kullanılarak oluşturulur ve bu şablon, işlem hattı ve çalıştırılacak işin tanımıyla eşleştirilmiş bir not defterinden oluşur. Ardından Dağıtılan işlem hattını Azure Databricks çalışma alanınızda doğrular, dağıtır ve çalıştırırsınız.
İpucu
Paketlere taşımak istediğiniz Azure Databricks kullanıcı arabirimi veya API kullanılarak oluşturulmuş mevcut işlem hatlarınız varsa, bunları bir paketin yapılandırma dosyalarında tanımlamanız gerekir. Databricks, önce aşağıdaki adımları kullanarak bir paket oluşturmanızı ve ardından paketin çalışıp çalışmadığını doğrulamanızı önerir. Daha sonra pakete ek tanımlar, not defterleri ve diğer kaynaklar ekleyebilirsiniz. Bkz. Pakete mevcut işlem hattı tanımını ekleme.
Gereksinimler
- Databricks CLI sürüm 0.218.0 veya üzeri. Yüklü Databricks CLI sürümünüzü denetlemek için komutunu
databricks -v
çalıştırın. Databricks CLI'yı yüklemek için bkz . Databricks CLI'yı yükleme veya güncelleştirme. - Uzak çalışma alanında çalışma alanı dosyaları etkinleştirilmelidir. Bkz . Çalışma alanı dosyaları nedir?.
(İsteğe bağlı) Yerel işlem hattı geliştirmeyi desteklemek için Python modülü yükleme
Databricks, IDE'nizde kod yazarken söz dizimi denetimi, otomatik tamamlama ve veri türü denetimi sağlayarak Delta Live Tables işlem hattı kodunu yerel geliştirmenize yardımcı olacak bir Python modülü sağlar.
Yerel geliştirme için Python modülü PyPi'de kullanılabilir. Modülü yüklemek için bkz . Delta Live Tabloları için Python saplaması.
Proje şablonu kullanarak paket oluşturma
Python için Azure Databricks varsayılan paket şablonunu kullanarak paketi oluşturun. Bu şablon, özgün veri kümesindeki verileri filtreleyen Delta Live Tables işlem hattını tanımlayan bir not defterinden oluşur. Paket şablonları hakkında daha fazla bilgi için bkz . Databricks Varlık Paketi proje şablonları.
Sıfırdan bir paket oluşturmak istiyorsanız bkz . El ile paket oluşturma.
1. Adım: Kimlik doğrulamayı ayarlama
Bu adımda, geliştirme makinenizdeki Databricks CLI ile Azure Databricks çalışma alanınız arasında kimlik doğrulamasını ayarlarsınız. Bu makalede, OAuth kullanıcıdan makineye (U2M) kimlik doğrulamasını ve kimlik doğrulaması için adlı DEFAULT
ilgili Azure Databricks yapılandırma profilini kullanmak istediğiniz varsayılır.
Not
U2M kimlik doğrulaması, bu adımları gerçek zamanlı olarak denemek için uygundur. Tam otomatik iş akışları için Databricks bunun yerine OAuth makineden makineye (M2M) kimlik doğrulamasını kullanmanızı önerir. Kimlik doğrulaması'nda M2M kimlik doğrulaması kurulum yönergelerine bakın.
-
Aşağıdaki komutta değerini çalışma alanı başına Azure Databricks URL'nizle değiştirin
<workspace-url>
, örneğinhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Databricks CLI, Azure Databricks yapılandırma profili olarak girdiğiniz bilgileri kaydetmenizi ister. Önerilen profil adını kabul etmek için basın
Enter
veya yeni veya mevcut bir profilin adını girin. Girdiğiniz bilgilerle aynı ada sahip mevcut tüm profillerin üzerine yazılır. Birden çok çalışma alanında kimlik doğrulama bağlamınızı hızla değiştirmek için profilleri kullanabilirsiniz.Mevcut profillerin listesini almak için, ayrı bir terminalde veya komut isteminde Databricks CLI'yi kullanarak komutunu
databricks auth profiles
çalıştırın. Belirli bir profilin mevcut ayarlarını görüntülemek için komutunudatabricks auth env --profile <profile-name>
çalıştırın.Web tarayıcınızda, Azure Databricks çalışma alanınızda oturum açmak için ekrandaki yönergeleri tamamlayın.
Profilin geçerli OAuth belirteci değerini ve belirtecin yaklaşan süre sonu zaman damgasını görüntülemek için aşağıdaki komutlardan birini çalıştırın:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Aynı
--host
değere sahip birden çok profiliniz varsa Databricks CLI'sının--host
doğru eşleşen OAuth belirteci bilgilerini bulmasına yardımcı olmak için ve-p
seçeneklerini birlikte belirtmeniz gerekebilir.
2. Adım: Paketi oluşturma
Varsayılan Python paket projesi şablonunu kullanarak bir paket başlatın.
Yerel geliştirme makinenizde şablonun oluşturulan paketini içerecek bir dizine geçmek için terminalinizi veya komut isteminizi kullanın.
Komutu çalıştırmak için Databricks CLI'yi
bundle init
kullanın:databricks bundle init
için
Template to use
, tuşuna basarakEnter
varsayılan değerinidefault-python
bırakın.için
Unique name for this project
varsayılan değerinimy_project
bırakın veya farklı bir değer yazın ve tuşuna basınEnter
. Bu, bu paket için kök dizinin adını belirler. Bu kök dizin, geçerli çalışma dizininiz içinde oluşturulur.için
Include a stub (sample) notebook
öğesini seçinno
ve tuşuna basınEnter
. Bu seçenekle ilişkilendirilmiş örnek not defterinin içinde Delta Live Tables kodu olmadığından Bu, Databricks CLI'ya bu noktada örnek not defteri eklememesi talimatını vermektedir.için
Include a stub (sample) DLT pipeline
, tuşuna basarakEnter
varsayılan değeriniyes
bırakın. Bu, Databricks CLI'ya Içinde Delta Live Tables kodu bulunan bir örnek not defteri eklemesini sağlar.için
Include a stub (sample) Python package
öğesini seçinno
ve tuşuna basınEnter
. Bu, Databricks CLI'ya paketinize örnek Python tekerlek paketi dosyaları veya ilgili derleme yönergeleri eklememesi talimatını vermektedir.
3. Adım: Paketi keşfetme
Şablonun oluşturduğu dosyaları görüntülemek için yeni oluşturduğunuz paketin kök dizinine geçin. Belirli bir ilgi alanı olan dosyalar şunlardır:
databricks.yml
: Bu dosya paketin programlı adını belirtir, işlem hattı tanımına bir başvuru içerir ve hedef çalışma alanıyla ilgili ayarları belirtir.resources/<project-name>_job.yml
veresources/<project-name>_pipeline.yml
: Bu dosyalar, işlem hattı yenileme görevini içeren işi ve işlem hattının ayarlarını tanımlar.src/dlt_pipeline.ipynb
: Bu dosya çalıştırıldığında işlem hattını yürüten bir not defteridir.
İşlem hatlarını özelleştirmek için işlem hattı bildirimi içindeki eşlemeler, REST API başvurusunda POST /api/2.0/pipelines içinde tanımlanan ve YAML biçiminde ifade edilen işlem hattı oluşturma işleminin istek yüküne karşılık gelir.
4. Adım: Projenin paket yapılandırma dosyasını doğrulama
Bu adımda paket yapılandırmasının geçerli olup olmadığını denetlersiniz.
Kök dizinden Databricks CLI'sini
bundle validate
kullanarak komutu aşağıdaki gibi çalıştırın:databricks bundle validate
Paket yapılandırmasının özeti döndürülürse doğrulama başarılı olur. Herhangi bir hata döndürülürse, hataları düzeltin ve bu adımı yineleyin.
Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek için bu adımı yinelemelisiniz.
5. Adım: Yerel projeyi uzak çalışma alanına dağıtma
Bu adımda, yerel not defterini uzak Azure Databricks çalışma alanınıza dağıtacak ve çalışma alanınızda Delta Live Tables işlem hattını oluşturacaksınız.
Aşağıdaki komutu çalıştırmak için paket kökünden Databricks CLI'sini
bundle deploy
kullanın:databricks bundle deploy -t dev
Yerel not defterinin dağıtılıp dağıtılmadığını denetleyin: Azure Databricks çalışma alanınızın kenar çubuğunda Çalışma Alanı'na tıklayın.
Users>
<your-username>
> .bundle ><project-name>
> dev > files > src klasörüne tıklayın. Not defteri bu klasörde olmalıdır.İşlem hattının oluşturulup oluşturulmadığını denetleyin: Azure Databricks çalışma alanınızın kenar çubuğunda Delta Live Tables'a tıklayın.
Delta Live Tables sekmesinde [dev
<your-username>
]<project-name>
_pipeline öğesine tıklayın.
Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek için 4-5 arası adımları yineleyip projeyi yeniden dağıtmanız gerekir.
6. Adım: Dağıtılan projeyi çalıştırma
Bu adımda, komut satırından çalışma alanınızdaki Delta Live Tables işlem hattının çalıştırılmasını tetiklersiniz.
Kök dizinden databricks CLI'sini
bundle run
kullanarak komutunu aşağıdaki gibi çalıştırın ve değerini 2. Adımdaki projenizin adıyla değiştirin<project-name>
:databricks bundle run -t dev <project-name>_pipeline
Terminalinizde görünen değerini
Update URL
kopyalayın ve bu değeri web tarayıcınıza yapıştırarak Azure Databricks çalışma alanınızı açın.Azure Databricks çalışma alanınızda işlem hattı başarıyla tamamlandıktan sonra ayrıntıları görmek için taxi_raw görünümüne ve filtered_taxis gerçekleştirilmiş görünüme tıklayın.
Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek, projeyi yeniden dağıtmak ve yeniden dağıtılan projeyi çalıştırmak için 4-6 arası adımları yinelemelisiniz.
7. Adım: Temizleme
Bu adımda, dağıtılan not defterini ve işlem hattını çalışma alanınızdan silersiniz.
Kök dizinden Databricks CLI'sini
bundle destroy
kullanarak komutu aşağıdaki gibi çalıştırın:databricks bundle destroy -t dev
İşlem hattı silme isteğini onaylayın: Kaynakları kalıcı olarak yok etmek isteyip istemediğiniz sorulduğunda yazın
y
ve tuşuna basınEnter
.Not defteri silme isteğini onaylayın: Önceden dağıtılan klasörü ve tüm dosyalarını kalıcı olarak yok etmek isteyip istemediğiniz sorulduğunda yazın
y
ve tuşuna basınEnter
.Paketi geliştirme makinenizden de silmek istiyorsanız, artık 2. Adım'dan yerel dizini silebilirsiniz.
Pakete mevcut işlem hattı tanımını ekleme
Paket yapılandırma dosyasında yeni bir işlem hattı tanımlamak için mevcut Delta Live Tables işlem hattı tanımını temel olarak kullanabilirsiniz. Mevcut bir işlem hattı tanımını almak için kullanıcı arabirimini kullanarak el ile alabilir veya Databricks CLI kullanarak program aracılığıyla oluşturabilirsiniz.
Kullanıcı arabirimini kullanarak mevcut bir işlem hattı tanımını alma
Azure Databricks çalışma alanı kullanıcı arabiriminden mevcut işlem hattı tanımının YAML gösterimini almak için:
Azure Databricks çalışma alanınızın kenar çubuğunda İş Akışları'ne tıklayın.
Delta Live Tables sekmesinde işlem hattınızın Ad bağlantısına tıklayın.
Geliştirme düğmesinin yanındaki kebap ve ardından Ayarları görüntüle YAML'ye tıklayın.
İşlem hattı ayarları YAML iletişim kutusundaki işlem hattı tanımının YAML'sini kopyalama simgesine tıklayarak yerel panonuza kopyalayın.
Paketinizin dosyasına kopyaladığınız YAML'yi
databricks.yml
ekleyin veya paket projenizin klasöründe işlem hattınızresources
için bir yapılandırma dosyası oluşturun ve dosyanızdandatabricks.yml
bu dosyaya başvurun. Kaynaklara bakın.Paketin proje kaynağına başvuruda bulunan Python dosyalarını ve not defterlerini indirin ve ekleyin. Genellikle paket yapıtları bir paketteki
src
dizinde bulunur.İpucu
Azure Databricks not defteri kullanıcı arabiriminden Dosya > Dışarı Aktarma > IPython Not Defteri'ne tıklayarak mevcut bir not defterini Azure Databricks çalışma alanından
.ipynb
biçime aktarabilirsiniz.Not defterlerinizi, Python dosyalarınızı ve diğer yapıtlarınızı pakete ekledikten sonra işlem hattı tanımınızın bunlara düzgün başvurduğunu doğrulayın. Örneğin, paketin dizinindeki
src/
adlıhello.ipynb
bir not defteri için:resources: pipelines: hello-pipeline: name: hello-pipeline libraries: - notebook: path: ../src/hello.ipynb
Databricks CLI kullanarak mevcut bir işlem hattı tanımı oluşturma
Mevcut bir işlem hattı için program aracılığıyla paket yapılandırması oluşturmak için:
Kullanıcı arabirimindeki işlem hattının İşlem hattı ayrıntıları yan panelinden mevcut işlem hattının kimliğini alın veya Databricks CLI
databricks pipelines list-pipelines
komutunu kullanın.bundle generate pipeline
İşlem hattı kimliğini ayarlayarak Databricks CLI komutunu çalıştırın:databricks bundle generate pipeline --existing-pipeline-id 6565621249
Bu komut, paketin klasöründe işlem hattı için bir paket
resources
yapılandırma dosyası oluşturur ve başvurulan yapıtları klasöresrc
indirir.İpucu
İlk olarak bir paketteki kaynağı çalışma alanında bir kaynağa bağlamak için kullanırsanız
bundle deployment bind
, çalışma alanı içindeki kaynak sonrakinden sonrabundle deploy
bağlandığı pakette tanımlanan yapılandırmaya göre güncelleştirilir. hakkındabundle deployment bind
bilgi için bkz . Paket kaynaklarını bağlama.