Aracılığıyla paylaş


DLT işlem hatları geliştirme

İşlem hattı kodu geliştirme ve test etme, diğer Apache Spark iş yüklerinden farklıdır. Bu makalede, işlem hattı kodu geliştirirken desteklenen işlevlere, en iyi yöntemlere ve dikkat edilmesi gerekenlere genel bir bakış sağlanır. Daha fazla öneri ve en iyi uygulama için bkz. DLT işlem hatlarına yazılım geliştirme & DevOps en iyi yöntemlerini uygulama.

Not

Kodu doğrulamak veya bir güncelleştirmeyi çalıştırmak için işlem hattı yapılandırmasına kaynak kodu eklemeniz gerekir. Bkz. DLT işlem hattını yapılandırma.

İşlem hattı kaynak kodu için hangi dosyalar geçerlidir?

DLT işlem hattı kodu Python veya SQL olabilir. Tek bir işlem hattının desteklediği Python ve SQL kaynak kodu dosyalarının bir karışımına sahip olabilirsiniz, ancak her dosya yalnızca bir dil içerebilir. Bkz. Python ile işlem hattı kodu geliştirme ve SQL ile işlem hattı kodu geliştirme.

İşlem hattı için kaynak kodu belirtirken not defterlerini ve çalışma alanı dosyalarını kullanabilirsiniz. Çalışma alanı dosyaları, tercih ettiğiniz IDE veya Databricks dosya düzenleyicisinde yazılan Python veya SQL betiklerini temsil eder. Bkz. Çalışma alanı dosyaları nedir?.

Python kodunu modül veya kitaplık olarak geliştirirseniz, kodu yükleyip içeri aktarmanız ve ardından kaynak kod olarak yapılandırılmış bir Python not defterinden veya çalışma alanı dosyasından yöntemleri çağırmanız gerekir. bkz. DLT işlem hatları için Python bağımlılıklarını yönetme.

Not

Python not defterinde rastgele SQL komutları kullanmanız gerekiyorsa, SQL'i Python kodu olarak çalıştırmak için söz dizimi deseni spark.sql("<QUERY>") kullanabilirsiniz.

Unity Kataloğu işlevleri, SQL'de kullanmak üzere rastgele Python kullanıcı tanımlı işlevleri kaydetmenize olanak tanır. Bkz. Unity Kataloğu'nda kullanıcı tanımlı işlevler (UDFs).

DLT geliştirme özelliklerine genel bakış

DLT, birçok Azure Databricks özelliğini genişletir ve bu özelliklerden yararlanır ve yeni özellikler ve kavramlar sunar. Aşağıdaki tabloda, işlem hattı kodu geliştirmeyi destekleyen kavramlara ve özelliklere kısa bir genel bakış sağlanmaktadır:

Özellik Açıklama
Geliştirme modu Yeni işlem hatları varsayılan olarak geliştirme modunda çalışacak şekilde yapılandırılır. Databricks, etkileşimli geliştirme ve test için geliştirme modunun kullanılmasını önerir. bkz. Geliştirme ve üretim modları.
Doğrulamak Validate bir güncelleştirme, herhangi bir tabloda güncelleştirme çalıştırmadan işlem hattı kaynak kodunun doğruluğunu doğrular. Bkz. Tabloların güncellenmesini beklemeden işlem hattını hatalara karşı kontrol edin.
Not Defterleri DLT işlem hattı için kaynak kodu olarak yapılandırılan not defterleri, kodu doğrulamak ve güncelleştirmeleri çalıştırmak için etkileşimli seçenekler sağlar. Not defterlerinde DLT işlem hatlarını geliştirme ve hata ayıklamabölümüne bakın.
Parametreler Test ve genişletilebilirliği basitleştirmek için kaynak kodu ve işlem hattı yapılandırmalarındaki parametrelerden yararlanın. Bkz. DLT işlem hatlarıyla parametreleri kullanma.
Databricks Varlık Paketleri Databricks Varlık Paketleri, işlem hattı yapılandırmalarını ve kaynak kodunu çalışma alanları arasında taşımanıza olanak tanır. bkz. DLT işlem hattını Databricks Varlık Paketi projesine dönüştürme.

Geliştirme ve test için örnek veri kümeleri oluşturma

Databricks, işlem hattı mantığını beklenen verilerle ve potansiyel olarak hatalı biçimlendirilmiş veya bozuk kayıtlarla test etmek için bir geliştirme ve test veri kümesi oluşturmanızı önerir. Geliştirme ve test için yararlı olabilecek veri kümeleri oluşturmanın aşağıdakiler de dahil olmak üzere birden çok yolu vardır:

  • Üretim veri kümesinden bir veri alt kümesi seçin.
  • PII içeren kaynaklar için anonimleştirilmiş veya yapay olarak oluşturulmuş verileri kullanın.
  • Aşağı akış dönüştürme mantığını temel alan iyi tanımlanmış sonuçlarla test verileri oluşturun.
  • Veri şeması beklentilerini bozan kayıtlar oluşturarak olası veri bozulmalarını, hatalı biçimlendirilmiş kayıtları ve yukarı akış veri değişikliklerini tahmin edin.

Örneğin, aşağıdaki kodu kullanarak bir veri kümesini tanımlayan bir not defteriniz varsa:

CREATE OR REFRESH STREAMING TABLE input_data
AS SELECT * FROM STREAM read_files(
  "/production/data",
  format => "json")

Aşağıdaki gibi bir sorgu kullanarak belirli kayıtları içeren örnek bir veri kümesi oluşturabilirsiniz:

CREATE OR REFRESH MATERIALIZED VIEW input_data AS
SELECT "2021/09/04" AS date, 22.4 as sensor_reading UNION ALL
SELECT "2021/09/05" AS date, 21.5 as sensor_reading

Aşağıdaki örnekte, geliştirme veya test için üretim verilerinin bir alt kümesini oluşturmak üzere yayımlanan verilerin filtrelenmesi gösterilmektedir:

CREATE OR REFRESH MATERIALIZED VIEW input_data AS SELECT * FROM prod.input_data WHERE date > current_date() - INTERVAL 1 DAY

Bu farklı veri kümelerini kullanmak için, dönüştürme mantığını uygulayan not defterleriyle birden çok işlem hattı oluşturun. Her işlem hattı input_data veri kümesindeki verileri okuyabilir, ancak ortama özgü veri kümesini oluşturan not defterini içerecek şekilde yapılandırılır.