Azure Data Factory Şablonları
Veri ambarı projelerinde ETL süreçlerini standartlaştırmak geliştirme sürelerini önemli ölçüde azaltır. Azure Data Factory’de (ADF) ETL standardizasyonu için şablon bileşenlerini kullanabiliriz.
Şablonlar, ADF’deki pipeline yapısını tanımlayan yeniden kullanılabilir ve önceden tanımlanmış JSON yapılarıdır. ADF’in sunduğu şablonları kullanmak için Author ekranında pipelines’a sağ tıklayıp Pipeline from template butonuna tıklayarak çeşitli işler için tasarlanmış pipeline’ları şablon galerisinde görebilirsiniz.
Herhangi bir şablona tıkladığınızda sol sekmede ilgili pipeline için açıklama, dokümantasyon linki, servis tipi ve girdileriyle karşılaşırsınız. Sağ sekmede ise pipeline’ın akış çizelgesi yer alır. Şablonu kullanmak için girdiler için ilgili ADF bileşenlerini seçerek Use this template butonuna tıklayarak pipeline’ı oluşturabilirsiniz.
Seçilen girdilere göre pipeline’nın default hali oluşmuş olur. Sonrasında istediğiniz şekilde modifiye edebilirsiniz.
Özel Şablon Oluşturma
Şablon galerisinin dışında önceden tasarladığınız bir pipeline’dan özel şablon oluşturabilirsiniz. Özel şablonlar bir code repo’suna kaydedilir. ADF’in sol üst köşesinde Set up code repository butonuna tıklayarak ADF’i bir repoya bağlayabilirsiniz. Bağladıktan sonra Author ekranında Templates sekmesini görebileceksiniz.
Demo: Truncate — Insert ETL Metodunun Şablonunu Oluşturma
Truncate-insert metodu veri ambarlarında genellikle büyüklüğü az olan tablolarda kullanılır. Bu metodu parametrik olarak çalıştırabilecek bir pipeline oluşturalım. Öncelikle veri ambarındaki tabloları tanımlayan bir tablo oluşturalım. Tabloların id’lerini, şemalarını ve adlarını ekleyelim.
CREATE TABLE [dwh].[table_definition](
[table_id] [int] IDENTITY(1,1),
[schema_name] [nvarchar](3),
[table_name] [nvarchar](50)
)
Sonrasında parametre olarak table_id alan ve o id’ye sahip tabloyu truncate eden stored prosedürü yazalım.
CREATE PROC [dwh].[sp_truncate_table]
@p_table_id int
AS
DECLARE @truncate_string nvarchar(100)
BEGIN
SET @truncate_string =
'TRUNCATE TABLE ' +
(SELECT schema_name + '.' + table_name FROM dwh.table_definition WHERE table_id=@p_table_id)
EXEC (@truncate_string)
END
Truncate-Insert pipeline’ını oluşturmak için stored procedure ve copy data aktiviteleri ekleyelim ve oluşturduğumuz stored prosedür için variable ve parameter tanımlayalım. Şablonu kaydetmek için Save as template butonuna tıklayalım.
Açılan sekmede şablonu açıklayan alanları ekleyelim ve şablonu kaydedelim.
Artık Template sekmesinden şablonu seçerek ve girdileri ekleyerek şablonu truncate-insert metodunu kullanacağımız tüm tablolar için kullanabiliriz.