Azure Synapse + Power BI Entegrasyonu

Bu makalede Azure Synapse Analytics’de Power BI ile yapılabileceklerden bahsedilmiştir.

Herkese merhaba,

Bugün Azure Synapse Analytics ile Power BI engetrasyonundan bahsedeceğim. Öncesinde biraz Azure Synapse Analytics’e bakalım.

Azure Synapse Analiytics, Microsoft’un Big data ve modern veri ambarı için kullandığı bulut tabanlı bir servis. All-in-one bir servis yani hem big data için çözüm olabilir hem de modern veriambarı inşa edebilirsiniz yada ML veya data-driven experiment’ler için ihtiyaç duyulan veri çözümlerimizi implemente edebileceğimiz pek çok komponenti içinde barındıran platform gbi de düşünebilirsiniz. Tıpkı pek çok Azure servisi gibi kendine ait bir studio (Azure Synapse Studio) üzerinden veri entegrasyonlarını, veriambarı yönetimini, pipeline’ların izlemesini ve güvenliğini sağlayabilirsiniz.

Azure Synapse Analytics aslında sadece structured değil semi ve un-structured büyük veriyi de modellemeye izin veriyor. Big data ile semi/unstructured data kavramları analitik süreçlere girmeye başladı bu durumda Spark ve Hadoop on-prem implementasyonların bir parçası oldu. Mesela semi/unstructured datayı veri ambarına almak için kullandığımız HD-insight‘ın yaptığı işi veya Azure Data Factory‘de yaptığımız ETL orkestrasyonlarını artık Synapse Analytics üzerinden gerçekleştirebiliyoruz. Bu arada Azure Synapse Analytics’in tanımlayıcı (descriptive) analitik, diagnostik analitik, tahmine dayalı (predictive) analitik ve öngörüye dayalı (prescriptive) analitikler için uygun bir servis olduğunu da söyleyelim.

Biraz da kısaca nasıl çalıştığına bakalım..

Tüm veri ambarlarında olduğu gibi önce datayı içeri almak (data integration) gerekiyor. Bunun için iki main repository var (Analytics Runtimes): datayı ister datalake’e alabiliriz istersek de dedicated sql pool’da saklayabiliriz. Diyelim ki datalake’de veriniz var, python ile alıp SQL script sorgu oluşturabilirsiniz. Veri prosesi için spark kullanabiliriz, bunu pek çok farklı script dili üzerinden sağlayabiliriz: SQL, python, .NET, Java, Scala veya R gibi.. Hatta aynı notebook içinde ilk kodu python ile yazarken diğer kodları sql scripte çevirebilirsiniz.

Servisi Azure Portal’da deploy ettiğinizde aslında SQL server pool built-in bir şekilde geliyor. Bu serverless sql ve silinemeyen veya değiştirilemeyen bir repository. Tıpkı diğer cloud-based çözümler gibi SQL pool’lara veya veri ambarınıza erişimi sağlamak için portal üzerinden verilen servername ve endpointleri kullanıyorsunuz.

Servisi deploy ettikten sonra Azure Synapse Studio üzerinden dedicated SQL pool, apache spark pool veya data explorer pool oluşturabilirsiniz. Default olarak gelen serverless sql pool’u kendiniz oluşturamazsınız. Hem dedicated SQL’de hem de Serverless SQL’de yapı aslında distributed (dağıtık) yani tek bir makine yerine birden fazla makine görüyoruz. Big data ile çalışıyorsak hem ölçeklendirme hem de performans için distributed ortamlara ihtiyacımız var yani proses ve depolama dağıtık ortamlarda olmalı. Ama iki SQL pool arasındaki fark ise, ddicated sql pool’da ölçeklendirme Datawarehouse unit (DWHUs) üzerinden yapılırken Serverless SQL pool’da ölçeklendirme otomatik olarak yapılır.

Son olarak studio içindeki hub’lara bakalım..

Datahub, iki ana hizmeti var link ve workpace‘ler. Workspace’ler oluşturduğunuz dedicated sql pool’ları, spark databaseleri, Power BI datasetleri gösterir. Linker ise veritabanı repository‘lerine erişimi veya Cosmos Db gibi veritabanlarına erişimi , sistem dosyalarını ve container‘lara sağlar. Content type’da ACL (Access Control List) ile erişim yönetimi sağlanabilir. Yani datahub sadece repositoryleri göstermez onlara erişim ve erişim kontrolünü de sağlar.

Develop hub, SQL scriptleri, notebooklar, dataflowlar ve Power BI datasetleri oluşturmamızı ve raporlamamızı sağlar. Power BI servisteki workspace’lerden sadece birine içindeki kontentlerle beraber erişim sağlayabiliyor. Synapes üzerinden Power BI’da yapılabilecekleri

  • Workspace içine yeni rapor oluşturma
  • Workspace’de yayınlanan raporlara erişim sağlama
  • Synapse’de raporların real-time update edilmesi ve Power BI servis’de yayınlanması
  • Veri analizi ve görselleştirme

Integrate Hub, pipeline developmentı yaptığımız hub’dır. Tıpkı Azure Data Factory’de oluşturduğumuz ve ETL süreçlerini gerçekleştirdiğimiz pipeline’lar gibi burda da veriyi ana kaynaktan alıp proses edebilir ve hedef kaynağa gönderebiliriz. Veri dönüşümü için dataflow, synapse notebooklar, Azure Databricks notebooklar, Azure function’lar, HD-insight veya datalake analytics kullanılabilir. Bunlara uçtan uça pipeline’lar da diyebiliriz.

Monitor hub, Synapse workspace içindeki tüm contenleri izlemek için kullandığımız servis. Kontente göre değişen standart istatistikleri var. Herhangi bir hatayla karşılaştığımızda monitoring hub’dan görüntüleyebiliriz.

Gelelim Power BI entegrasyonuna,

Öncelikle Manage hub‘dan linked servis oluşturmam gerekiyor.

Power BI Servis tarafında bağlanmak istediğim worksapce’i seçiyorum. Worksapce eğer dropdown’da populate etmiyorsa edit ile workspace ID ile de seçebilirsiniz. Workspace ID’niz url‘deki guid oldugunu hatırlatalım.

Workspace’imi seçtim.

Publish ediyorum.

Develop hub’a gidiyorum. Burda workspaceim içindeki tüm kontentleri görebiliyorum. Raporuma ve datasete bakıyorum. Editleyebiliyorum. Kaydedebiliyoum ve kaydettiğim versiyonunun anında Power BI Servis’e yansıdığını görüyorum.

Rapora ait datasetten yeni bir dataset oluşturabiliyorum ancak Power BI Cloudda veri modelleme henüz preview‘da olduğu için modellemeyi yapabilmem için Power BI Desktop’ı kullanacağım ve ihtiyacım olan .pbids dosyasını indirebiliyorum. Hatırlayalım .pbids dosyaları veri kaynağı erişim bilgilerini, veri bağlantılarını içerir, dolayısıyla kaynağa hızlı erişim sağlar.

.pbids dosyasını indirdikten sonra verinizi modelleyip yeni dataseti Power BI Servis’te publish edebilirsiniz.

Bu dataseti datahub’da istediğiniz yerde kullanabilirsiniz yada yeni rapor oluşturabilirsiniz-ki bu raporda hemen Power BI Cloud’a yansıyacaktır.

Böylece Azure Synapse Analytics’den ve Power BI ile Synapse Analytics’de neler yapılabileceğinden bahsetmiş oldum.

Umarım faydalı bir yazı olmuştur.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s