29 Aralık 2017 Cuma

Power BI Üzerinde Gerçek Zamanlı Raporlama - Real Time Reporting -1 (Giriş)

İnsan veya cihaz kaynaklı aktiviteleri gerçek zamanlı olarak izlemek, analiz etmek, özetlemek, raporlamak ve belli değerlerle karşılaşıldığında anında haberdar olmayı istemek, son yılların önemi giderek artan talepleri arasında. Artık hem müşteriler hem de teknoloji sağlayıcıları bu başlıklarda bir takım çalışmalar yapmakta veya bir an önce yapmak istemekte. 

Önceki yıllarda bu ihtiyaca cevap vermek zor ve pahalıydı. Gerçek zamanlı çalışmak bir lükstü. Ancak teknolojideki gelişmeler ve rekabet sayesinde artık çok daha kolay, ucuz ve kaliteli yöntemlerle bu ihtiyaçlara cevap üretmek mümkün.

Gerçek zamanlı akan veri işleme teknikleri durağan veri işleme tekniklerinden çok farklı bakış açıları ve teknolojiler gerektirir. Özellikle hız saniyede milyon/milyar transactiona ulaşıyorsa, akış esnasında verinin analiz edilmesi, özetlenmesi ve farklı hedeflere yönlendirilmesi gerekiyor üstüne bir de gerçek zamanlı tahminlemeler yapılması isteniyorsa, işin içine çok farklı teknik ve teknolojiler girecek demektir. 

Eğer ihtiyaç, veriyi akış esnasında analiz etmek değil doğrudan göstermek ise Microsoft Power BI ile bu ihtiyaca çok ucuz, kolay ve kaliteli bir biçimde cevap verebilirsiniz. Daha fazlası gerektiğinde ise Event Hub, IoT Hub, Stream Analytics, Azure ML gibi Microsoft Azure Servisleri hemen imdadınıza yetişir. Açık kaynak ürünlere nazaran inanılmaz pratik olan bulut servisleri sayesinde akan veri ile ilgili neredeyse tüm ihtiyaçlara cevap üretebilirsiniz. Buna ek olarak Microsoft SQL Server 2016/2017 ile birlikte duyurulan Operational Analytics, PolyBase, R in Database, Python in Database gibi yenilikler sayesinde de alışılmış yerel bir ortamda çalışmak mümkün.

Biz bu yazı serimizde akan verinin doğrudan Power BI'a nasıl yönlendirildiğine ve gerçek zamanlı raporlamanın nasıl yapıldığına odaklanacağız. Öncelikle Power BI ürünüyle yeni tanışanlar için bir giriş yapalım istiyorum.

Power BI, Gartner'in Magic Quadrant'ında lider konumunda olan bir Self-Serivce BI ürünü. Yani departman seviyesinde uçtan uca iş zekası ihtiyacına cevap üretebileceğiniz, üstelik teknik olmayan kişilerce de kullanılması amaçlanan kullanıcı dostu bir ürün. Excel'in Power BI eklentileri ve Power BI Desktop ile ücret ödemeden yerel kaynaklarınızı kullanarak çalışabilirsiniz. Eğer çalışma dosyalarınızı yayınlamak isterseniz Microsoft'un bir bulut hizmeti olan Power BI Portali (www.powerbi.com) bir noktaya kadar ücret ödemeden kullanabilirsiniz. Dilerseniz SQL Server 2017 ile birlikte duyurulan Power BI Report Server'ı edinerek yerel kaynaklarınız üzerinden de rapor paylaşım merkezi oluşturabilirsiniz. Bu raporlara tüm cihazlardan native uygulama olan Power BI App üzerinden veya tarayıcı üzerinden erişebilirsiniz.

Raporlama ihtiyacınızı Microsoft ürünleri ile nasıl seviyelendirebileceğinize bir göz atmak için:
Rapor ihtiyacını Seviyelendirme (Üst Yönetim, Yönetim, Veri Analistleri)

Power BI dünyasına demolarla giriş yapmak için:
Power BI Demo Serisi ( Meşrubat Satışları - 1 ) - Video
http://www.abdullahkise.com/2017/05/power-bi-demo-serisi-mesrubatc.html

Power BI Demo Serisi ( Meşrubat Satışları - 2 ) - Video
http://www.abdullahkise.com/2017/05/power-bi-demo-serisi-mesrubat-satslar-2.html

Hemen yazı serimizin odağı olan, Power BI üzerinde gerçek zamanlı raporlamanın (Real Time Reporting) nasıl yapılacağı konusuna geçelim.

Öncelikle www.powerbi.com adresinden bir Power BI hesabı açalım. Eğer şirketinizin Office 365 aboneliği mevcutsa zaten Power BI kullanıcısı olabilirsiniz. Bu durumda portal sizi tanıyacaktır. Şirket mailinizi ve şifresini kullanarak giriş yapabilirsiniz.

Giriş yaptıktan sonra soldaki menüyü kullanarak bir çalışma alanı (Workspace) açabilir, Get Data ile bir kaynağa bağlanabilir, içinde tablolar (Tables) barınan veri setleri (Data Sets) oluşturabilirsiniz. Tarayıcı üzerinde veya yerel Power BI dosyaları vasıtası ile veri setinden raporlar (Reports) tasarlayabilir, tasarladığınız farklı raporlardaki görselleri bir araya getirebileceğiniz panolar  (Dashboards) açabilirsiniz.


Power BI üzerinde gerçek zamanlı raporlama yapmak için doğrudan Power BI REST API ile çalışacağız. Bu API ile iki şekilde çalışabiliriz; doğrudan http istekleri göndererek veya bu istekleri kapsülleyen Microsoft.PowerBI.Api dll'lini kullanarak. Power BI REST API sayesinde yukarıda bahsi geçen nesnelere yazdığımız bir uygulama içinden erişebilir, yeni nesneler oluşturabilir, var olanları kaldırabiliriz.

Power BI Rest Api Referans dokümanına şu linkten erişebilirsiniz:

Biz de örneğimizde bir Console uygulaması içerisinden Power BI portalde bir Workspace (çalışma alanı) oluşturacağız. Oluşturduğumuz bu Workspace'e bir Streaming DataSet (Veri Seti) göndereceğiz. DataSet içerisinde tanımladığımız Table'ın (tablo) formatına uygun veriyi rüzgar tribünü simülasyonu şeklinde, bir döngü ile sürekli olarak göndereceğiz. Sonrasında çeşitli görseller kullanarak Dashboard (pano) üzerinde bu gönderileri gerçek zamanlı izleyeceğiz.



Bu çalışmada hangi adımları atacağımızı özetleyelim;
  1. Öncelikle Azure Active Directory servisi üzerinde OAuth 2.0 protokolüne göre güvenliğin/yetkilerin denetlenebilmesi için uygulamamızı kaydedeceğiz (register). Power BI hesapları arkaplanda Azure Active Directory Servisi ile yönetilmektedir.
  2. Kayıt sırasında uygulamamızın Power BI API'yi hangi yetkilerle kullanabileceğini belirteceğiz.
  3. Tamamen kodun işleyişine odaklanabilmek için Visual Studio'da bir Console projesi açacağız. Bu proje içerisinden gönderdiğimiz isteklerle gerekli nesneleri portalde oluşturacak, hemen ardından bir döngü ile ürettiğimiz verileri portale göndereceğiz.
  4. İhtiyacımız olan sınıfları kullanabilmek için öncelikle Azure Active Directory ve Power BI API dll'lerini projemizin referanslarına ekleyeceğiz.
  5. Kaydettiğimiz uygulama bilgilerini veya kullanıcı kimlik bilgilerini kullanarak Azure AD'den token alacağız. Bu token, API istekleri sırasında kullanılmaktadır. API'ye erişim yetkileri bu token sayesinde doğrulanmaktadır.
  6. Projemiz içerisinden sırasıyla gerekli Power BI nesnelerini oluşturacağız ve veri göndermeye başlayacağız.
  7. Gönderdiğimiz verileri Power BI portalde oluşturacağımız Dashboard (pano) üzerinde yayınlayacağız. Önceden tanımlı görselleri kullanarak akışı farklı bakış açıları ile izleyebileceğiz.

Bu yazımızda Power BI ile yeni tanışanlar için konuya bir giriş yapalım istedim. En sonda özetlediğimiz geliştirme aşamasına sonraki yazımızda odaklanıyoruz.

Eğer kendiniz hızlıca bir şeyler denemek isterseniz şu linkler size yol gösterecektir:

Overview of Power BI REST API

Power BI REST API reference

Power BI API - Apiary

Hiç yorum yok:

Yorum Gönderme