Power BI üzerinde gerçek zamanlı raporlama konusuna dördüncü yazımızla devam ediyoruz.
Bir önceki yazımızda Power BI üzerinde gerçek zamanlı raporlama yapmak için Power BI REST API ile Workspace ve Dataset oluşturmuştuk.
Önceki yazıya şu linkten ulaşabilirsiniz:
Bu yazımızda Dataset içerisinde tasarladığımız tablonun formatına uygun satırları üretip portale göndereceğiz. Hemen ardından gönderdiğimiz verileri gerçek zamanlı izlemek için bir Dashboard (Pano) tasarımı yapacağız.
Bu çalışmada genel olarak şu adımları atacağımızı ifade etmiştik:
- Ö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.
- Kayıt sırasında uygulamamızın Power BI API'yi hangi yetkilerle kullanabileceğini belirteceğiz.
- 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.
- İ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.
- 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.
- Projemiz içerisinden sırasıyla gerekli Power BI nesnelerini oluşturacağız ve veri göndermeye başlayacağız.
- 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.
Bir Dataset İçerisindeki Tabloya Veri Göndermek
Önceki yazılarda başlattığımız Console uygulamasını açıp geilştirmeye devam edelim.
Göndereceğimiz satırları rahatça hazırlayabilmek için bir Class açıp YeniKayıt isimli bir tip tanımlıyoruz.
Hemen ardından PowerBIClient nesne örneğimiz üzerinden PostRowsInGroup metotu ile satırları göndermeye başlayabiliriz. Bu metotun istediği groupId ve datasetKey parametrelerini daha önceki yazılarımızda değişkenlerde tutmuştuk. tableName parametresine bir önceki yazıda oluşturduğumuz tablo adını veriyoruz. En son parametreye de satırların olduğu nesnemizi veriyoruz.
Simülasyon örneğimizde bir while döngüsü içerisinde Random sınıfı ile rastgele değerler üretip gönderiyoruz.
Kodları, aynı nesneleri tekrar oluşturmayacak şekilde düzenleyip projeyi başlatalım.
Akışın sağlıklı olduğunu gördüğümüzde akan veriyi izlemek için Power BI portale geçip bir Dashboard tasarlayalım.
Gerçek Zamanlı Raporlama için Dashboard Tasarlamak
www.powerbi.com adresinden portale giriş yapıyoruz. Sol menüden oluşturduğumuz YeniGroup isimli Workspace'i seçelim. Sağ üst köşedeki 'Create' butonu ile bir Dashboard (Pano) oluşturalım.
Oluşturduğumuz Dashboard ekranında üstteki 'Add tile' butonu ile görselleri eklemeye başlayalım. Çeşitli görseller mevcut. Biz REAL - TIME DATA grubundaki CUSTOM STREAMING DATA butonu ile veri izlemeye odaklanalım.
Veri akşını yumuşak bir animasyonla bize sunan görselleri bu menüden seçiyoruz. Açılan pencerelerden adım adım oluşturduğumuz Dataseti ve görseli seçelim. Her bir görselin kendine ait alanları var. Uygun alanları tablonun kolonları ile eşleştirelim. Son ekranda görsele başlık ve link verebilirsiniz.
Görselleri 'Add tile' butonu ile teker teker ekliyoruz. Böylece aşağıdakine benzer bir görüntüyü kolayca elde edebilirsiniz.
Sonuç
Eğer akış esnasında çeşitli filtrelemeler veya hesaplamalar yapmak ve bunları farklı hedeflere iletmek sizin için önemliyse gelişmiş bir çok ürünü / Azure Servislerini tercih edebilirsiniz. Bu hedeflerden birini de Power BI olarak belirleyebilirsiniz. Azure Stream Analytics servisi akan veriyi Power BI'a kolayca yönlendirebilmektedir.
Eğer Power BI haricinde bir maliyete girmek istemiyorsanız ve akışı farklı hedeflere yönlendirmek öncelikleriniz arasında değilse Power BI REST API'den faydalanabilirsiniz. Yazı serimizdeki yönlendirmeleri kendi projelerinize uygulayarak kolayca gerçek zamanlı raporlar tasarlayabilirsiniz.
Aslında bu konu oldukça geniş bir konu. Bu seride hızlıca ve kolayca neler yapabileceğimize odaklandık.
Detaylar için:
Limitler için:
Kodlama ve testler destek için:
Dilerseniz tüm işlemleri doğrudan Http istekeri ile Json alışverişleri halinde de yapabilirsiniz. Böylece her platform üzerinden veri akışını Power BI'a iletebilirsiniz. Hatta bazı adımları kod ile değil de Power BI Portal üzerinden yapabilirsiniz.
Bunların nasıl yapıldığına da farklı bir yazıda değiniriz.