24 Mayıs 2015 Pazar

Power BI Dashboard Üzerinde Anlık Raporlama - Rest API

Power BI REST API yardımıyla herhangi bir platformdan HTTP istekleri gönderebilir, gerçek zamanlı çalışan bir Power BI Dashboard oluşturup verilerinizi anlık olarak takip edebilirsiniz.

Yaptığım çalışmanın sonuçlarını sizlerle paylaşmak istedim. ilerleyen günlerde ise nasıl yapıldığının ayrıntılarını yine buradan aktarıyor olurum.




Merak edenler için bir kaç yönlendirme;

  1. Azure Active Directory üzerinde bir kullanıcı oluştur.
  2. Oluşturulan bu kullanıcı ile Power BI hesabı aç.
  3. OAuth 2.0 kimlik doğrulaması için Azure Active Directory üzerinde bir uygulama kaydet. Bu sayede ClientId ve Token bilgisi çekip bu bilgiler sayesinde uygulamalarımızda Power BI Rest API'dan faydalanabileceğiz.
  4. Uygulama kaydederken gerekenler; bir ad ve bir url. Bu bilgileri mantıklı şekilde uyduruyoruz.
  5. Uygulamayı kaydettiğimiz pencerede diğer uygulamalara yetki ataması yapabiliyoruz. Burada Power BI Service için yetkilerimizi veriyoruz.
  6. Veri gönderilecek uygulamamız basit bir Console uygulaması olabilir. (.NET geliştiricileri isterse) Install-Package PowerBI.Api.Client ile gerekli dll leri yükledikten sonra Authentication ve Request-Response işlemlerini yaparak Power BI ile iletişim kuruyoruz.
  7. Taleplerimizi Json formatında gönderiyoruz ve cevaplar yine Json formatında geliyor. İletişim HTTP metotları ile sağlanıyor.

Testlerim için üzerinde dört adet resmin bulunduğu bir WinForm uygulaması yazdım. Resimler üzerinde yapılan tıklama hareketlerini  Power BI Rest API yardımıyla Power BI Dashboarda gönderiyorum. 

işte çalışmanın sonucu :



İnternet hızınıza ve gönderdiğiniz veri büyüklüğüne bağlı olarak farklı performans sonuçları elde edebilirsiniz.

Biraz karmaşık görünebilir. Eğer karmaşık adımlara bulaşmadan hızlıca test etmek isterseniz Microsoft'un sunduğu şu sayfayı kullanabilirsiniz:
http://docs.powerbi.apiary.io

Belli bir zaman aralığındaki verileri göstermek için neler yapılabilir? (Windowing)


Bir kaç değerli profesyonel ile yaptığım fikir alışverişi sonucu şu bilgileri de paylaşmam gerektiğini fark ettim.

Veri göndermeye başladığımızda Dataset kümülatif olarak büyür. Grafikler varsayılan olarak ilk veri alındığından itibaren birikenleri sonuç olarak bize verir. Programatik olarak satırların bir kısımını silme özelliği ilerleyen günlerde geleceğe benziyor ancak şimdilik sadece tablodaki kayıtların tümünü silmek mümkün.

İsterseniz belli aralıklarla DELETE talebi gönderip programınızın mesela son 10 dakikadır gönderdiği verileri Dashboard da tutmasını sağlayabilirsiniz.

Veya benim yaptığım gibi tablonuzda zaman bilgisinin tutulduğu bir kolon oluşturarak Q&A yardımıyla bu kolonu filtrelemede kullanabilirsiniz.

Q&A sorusundan elde ettiğim sonuçları dashboarduma 'Pin'leyerek, tam istediğim gibi belli bir aralıktaki değerleri gerçek zamanlı olarak sunabiliyorum.

"Show number of tiklama bilgisis where zaman is after 10 minutes before now"




Hiç yorum yok:

Yorum Gönderme