Azure Data Factory

Yetenekli Orkestra Şefiniz Azure Data Factory

2022-02-03 Abdullah Kise

Azure üzerinde, farklı bulut sağlayıcıları üzerinde ve yerel ortamlarda onlarca teknoloji ve veri kaynağı mevcut. Bu farklı dünyalara ait teknolojilerin aynı amaç için bir arada ve doğru sırada çalışması, verilerin tam zamanında ve doğru şekilde işlenmesi, bütün bu sürecin akıcı bir şekilde daha fazla kişinin iş birliği ile geliştirebilmesi ve kolayca yönetilebilmesi her geçen gün çok daha kritik hale geliyor.

Bu mevcut kritik ihtiyaca çözüm olarak çıkan ve geldiğimiz noktada yetenekli bir orkestra şefine dönüşen Azure Data Factory ürünü ile hem yerel hem de bulut teknolojileri bir arada kullanabilir, veri kopyalayabilir, ETL işlemlerini yapabilir, SSIS paketlerini çalıştırabilir, Azure üzerindeki bir çok hizmeti tetikleyerek tam da amacınıza uygun veri odaklı iş akışları oluşturabilirsiniz.

Üstelik bu başarılı veri entegrasyonu ürünü tüm çalışmaları json halinde tutuyor ve Github, Azure DevOps ile entegre hale getirilebiliyor. Böylece geliştiriciler arasında iş birliği, kodların versiyonlanması ve sürekli geliştirme (CI/CD) mümkün hale geliyor.

Bir çok Azure hizmetinde olduğu gibi tüm çalışmalarla ilgili detaylı loglara ulaşmak ve aktif çalışmaları izlemek mümkün.

Azure Data Factory 100'den fazla kaynağa bağlantı imkanı sunuyor. Bu kaynaklardan veri kopyalama ve bağlantıları tetikleyerek doğru sırada çalışmalarını sağlamak temel yeteneğidir diyebiliriz. İlk çıktığında daha çok ELT yapmak mümkün iken zamanla çeşitli bileşenlerin dahil olması ile ETL yapmak da mümkün hale geldi.

Hadoop, Databricks, SQL Database ile kompleks ETL işlemlerini kodlar yardımıyla yapabileceğimiz gibi SSIS paketleriyle veya Data Flow ve yeni dahil olan Power Query bileşenleriyle ara yüz kullanarak da yapabiliriz. Bu ara yüzlerde belli noktalarda küçük expressionlar yazmak mümkün.

Azure DF üzerine veri odaklı iş akışlar oluşturabilmek için aşağıdaki bileşenleri kullanıyoruz:

Pipelines: Activityleri bir arada tutar. SSIS paketlerine benzetebiliriz. Birbirinden izole veya parametreler ile haberleşen iş akışları oluşturabiliriz.

Activities: Pipeline içerisine ekleyebileceğimiz bir işlem adımıdır. Veri kopyalayabilir, veri işleyebilir, karar yapıları ve döngüler tanımlayabilir, diğer Azure hizmetlerinin çalışmasını tetikleyebilirsiniz. Activityleri Succeeded, Failed, Skipped, Completed gibi sonuçlara göre farklı şekillerde bağlayarak güçlü iş akışları oluşturabilirsiniz.

Datasets: Kopyalama ve veri işleme Activitilerinde girdi ve çıktı olarak kullanılacak veri yapılarını tutar.

Linked Services: Harici bir kaynağa yapılan bağlantı bilgilerini tutar. Harici kaynaklar depolama hizmetleri olabileceği gibi, işlem gücü sunan hizmetler de olabilir.

Data Flows: Arka planda yatay ölçeklendirilmiş bir Spark gücü kullanarak hiç kod yazmadan fakat bazı expressionlar yazma özgürlüğü vererek veri dönüştürme imkanı sunar.

Power Query: Power BI'dan aşina olduğumuz Power Query penceresini ve M dilini kullanarak veri dönüştürme imkanı sunuyor. Şu aralar M dili yeteneklerini tümüyle desteklemese de zamanla daha iyi olacağını ve popüler hale geleceğini düşünüyorum.

Integration Runtimes: Farklı ağ ortamlarında çeşitli veri entegrasyon yeteneklerine kavuşmak için gereklidir. Eğer Azure teknolojiler arasında veri taşıyacaksak Azure IR, bulut ile yere arasında veri taşıyacaksak Self-hosted IR, var olan SSIS paketlerini çalıştırmak için Azure-SSIS IR kullanmamız gerekli.

Parameters: Sadece okunabilirdir. Pipeline içinde veya glolal olarak oluşturulabilir. Bir takım ayarlar parametre olarak key-value şeklinde depolanabilir ve pipeline içerisinde çalışma esnasında kullanılabilir. Mesela bir Databricks hizmeti üzerinde çalıştıracağımız Notebooklara çalışma sırasında üretilen bazı değerleri gönderebiliriz.

Triggers: Pipelineların çalışmasını tetiklemek için kullanılır. Pipelineları anında tetikleyebildiğimiz gibi belli bir zamanda ve zaman aralığında tetiklemek de mümkün.

Azure Data Factory portal.azure.com üzerinden kolayca oluşturulabilir. Temel olarak bir isim vermek kaynakların bulunacağı bölgeyi, ve versiyonu seçmek (v2 tavsiye edilir) yeterli olur. Sonraki "Git Configuration" penceresinde bulunan "Configure Git Later" seçeneğini işaretleyip hizmetin oluşmasını tetikleyebilirsiniz.

 

 

Hizmet oluştuktan sonra "Overview" pencersinden "Open Azure Data Factory Studio" linki ile geliştirme ortamını açabilirsiniz. Author bölümünden geliştirmelere başlayabilir, Monitor bölümünden çalışmaları izleyebilir, Manage bölümünden IR ve hizmet bağlantılarını, parametreleri, git konfigürasyonu, güvenlik ayarlarını yapabilirsiniz.


Eğer yerel ve bulut teknolojilerin bir arada olduğu veri entegrasyon süreci içerisindeyseniz, CI/CD yaklaşımlarının desteklendiği hem ara yüz hem de kodlarla çalışma imkan veren bir geliştirme ortamı arıyorsanız, üstelik bunlar için alt yapı yatırımı yapmak istemiyorsanız Azure Data Factory tam aradığınız çözüm demektir.