Azure Analysis Services modellerini process etmek için Logic Apps, Azure Automation Runbooks ve SSIS gibi çeşitli yöntemler vardır. Ancak biz Azure Data Factory (ADF) ile bu işlemin nasıl olacağını anlatmaya çalışacağız.
Azure Data Factory’de Azure Analysis Services’in (AAS) Rest Apisini çağırarak process işlemini yapabiliriz. Ama öncelikle AAS’de ADF izinlerini vermeniz gerekiyor.
AAS’de server yöneticisi olarak ekleyebileceğimiz bir kullanıcıya ihtiyacımız var. ADF’nin yönetilen bir hesabı olmadığı için bir tane oluşturmamız gerekecek ve bu kullanıcı da servis kullanıcısı olarak geçecek.
- Azure portal ekranında ADF’ye gidelim
- Sol menüde ayarlar (setting) altında yer alan özellikleri(Properties) tıklayın
- Managed Identity Tenant ve Managed Identity Application ID bilgilerini alarak aşağıdaki gibi diziyi oluşturalım;
app:< Managed Identity Application ID>@<Managed Identity Tenant>
app:54471264-b45b-49a7-944f-9a93a28ff0ce@7017e763-4466-56f2-9292-76aff7ygr24b
Resim-1
Şimdi de oluşturduğumuz kullanıcıyı server yöneticisi olarak eklemek için Sql Server Management Studio (SSMS) aracılığıyla AAS’e bağlanalım. Çünkü maalesef bu işlemi AzurePortal üzerinden yapamıyoruz.
- SSMS ile AAS’e giriş yapın
Resim-2
- Sunucunuza sağ tıklayın ve özellikleri(Properties) tıklayın
Resim-3
- Güvenlik(Security) bölmesine gidin
- Ekle(Add) düğmesine tıklayın
- Yukarıda oluşturduğumuz servis kullanıcısını Manual Entry alanına yapıştıralım.
- Daha sonrasında Ekle(Add) ve Ok diyerek tamamlayalım.
Resim-4
Bu adımlardan sonra kullanıcı Azure Portal üzerinde de görünecektir.
Resim-5
Şimdi sıra geldi ADF tarafında Web Activity ekleyerek Analysis Services Rest Api servisini çağırmaya.
Öncelikle Rest Api URL’ini belirlememiz gerekiyor.Aşağıdaki dizede <xxx> değerlerini Analysis Services’teki bölge, server adı ve model adıyla değiştirin.
https://<region>.asazure.windows.net/servers/<servername>/models/<modelname>/refreshes
Örneğin; https://westeurope>.asazure.windows.net/servers/bidataevaserver/models/bidatas/refreshes
İkinci adım olarak; Rest Api’deki kullanılmak üzere bir Json requesti oluşturmamız gerekiyor. Analysis Servisteki modelde yer alan tüm tabloları process etmek için aşağıdaki jsonı kullanabilirsiniz.
{
“Type”: “Full”,
“CommitMode”: “transactional”,
“MaxParallelism”: 2,
“RetryCount”: 2,
“Objects”: []
}
Ya da modeldeki sadece belirli tabloları process edecekseniz aşağıdaki jsonı kullanabilirsiniz.
{
“Type”: “Full”,
“CommitMode”: “transactional”,
“MaxParallelism”: 2,
“RetryCount”: 2,
“Objects”: [
{
“table”: “FactCustomer”,
“partition”: “CurrentYear”
},
{
“table”: “DimAdress”
}
]
}
- ADF’te bir pipeline oluşturalım ve oraya Web activitysini ekleyelim.
- Settings sekmesine gidelim
- URL alanında oluşturduğumuz Rest Api linini yapıştıralım
- Yöntem olarak POST’u seçellim
- Body alanına da yukarıda oluşturduğumuz Json’ı ekleyelim.
- Kimlik doğrulama yöntemi(Authentication) için de System Assigned Managed Identity seçelim
- Son olarak Resource alanına da https://*.asazure.windows.net yazalım.
Resim-6
Resim-7
Bu yazıda ADF ile AAS modellerimizi nasıl process edeceğimizi öğrenmiş olduk. Bu yöntem ile Power BI veri kümelerimizi de yenilemek için kullanabilirsiniz.
Umarım faydalı bir yazı olmuştur.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs: Data, Business intelligence, AzureDataFactory, Powerbi, AnalysisServices