Microsoft Power BI ile Real-Time Click Stream Verisinin Görüntülenmesi (Demo)

Serinin daha önceki yazılarında Microsoft Azure Event Hubs ve Stream Analytics servisleri kullanılarak real-time olarak akan büyük miktardaki stream verilerinin elde edilmesini ve analiz edilmesini örnek üzerinde gerçekleştirmiştik. Bu yazımızda ise Stream Analytics servisinden output olarak Power BI‘a bağladığımız analiz edilen verinin anlık olarak gerçek zamanlı olarak Power BI portali üzerinde görüntülenmesini örnekleri ile ele alacağız.

Yazılan uygulama üzerinde kullanıcıların sayfada ilgili bölümlere tıklamalarıyla oluşan click stream verilerinin Event Hub ile elde edilmesi sağlanmış, oluşturulan Stream Analytics job’ı bu verileri Event Hub’dan input olarak almış ve yazılan sorgu ile analiz edilmiş ve son aşamada da Power BI output ile analiz edilen çıktılar Power BI hesabına çıktı olarak bağlanmıştır. Artık bu aşamada gerçek zamanlı olarak üretilen tıklama verileri Power BI portali üzerinden raporlanabilecek ve panolarda (Dashboard) anlık yenilenme ile click stream verileri güncel olarak gerçek zamanlı yansıtılabilecektir.

  • Microsoft Power BI Portaline Giriş:

Power BI portaline giriş yapabilmek için https://powerbi.microsoft.com/en-us/ linkine giriş yapılmalı ve kullanıcı adı ve şifre bilgileri girilmelidir.

power bi giris

Açılan sayfada Sign In butonuna tıklayarak giriş yapılmalı ve Azure Stream Analytics job’ının output kısmını oluştururken verilen kullanıcı adı ve şifre bilgileriyle giriş yapılmalıdır.

power bi ozellikler

  • Microsoft Power BI Portal Özellikleri:

Uygulama tarafında kullanıcılar sayfanın belirli bölümlerine tıkladıkça oluşan click stream verileri bu şekilde Event Hub’a aktarılacak ve Stream Analytics job’ı input olarak aldığı bu verileri yazılan sorgu ile analiz edecek ve son aşamada da Power BI ortamına rapor ve panolar oluşturulabilmesi için data set olarak aktarılacaktır. Power BI portaline giriş yapıldığında sol taraftaki menüde Çalışma Alanım (My Workspace), Panolar (Dashboards), Raporlar (Reports), Veri Kümeleri (Datasets) çıkmaktadır. Stream Analytics job’ı hatasız bir şekilde çalışıyor ve verileri Power BI’a aktarıyorsa Datasets kısmında oluşturulan output dataset otomatik olarak çıkacaktır. Örneğimizde Power BI output oluşturulurken verilen “altintasdataset” ismindeki veri kümesi otomatik olarak sol tarafta listelenmiştir.

  • Power BI ile Rapor ve Pano Oluşturma:

Power BI portalinin sağ tarafında ise oluşturulan tabloya (altintastable) ait kolonlar, rapor formatı seçebilmek için kullanabileceğimiz görsel öğeler ve raporlara filtre eklemek için kullanabileceğimiz filtreler kısımları bulunmaktadır. Power BI portalinde ortadaki kısım ise raporları oluşturabileceğimiz, sürükle bırak yöntemiyle hızlıca görselliği kuvvetli raporlar geliştirebileceğimiz çalışma alanımızdır.

Oluşturduğumuz Microsoft Azure Stream Analytics job’ı tarafından gelen veri setini kullanarak raporlar oluşturulabilmekte ve panoya sabitlenebilmektedir. Bu işlemler sadece bir kaç mouse tıklaması ve sürükle bırak yöntemiyle yapılabilmektedir. Örneğimizde tıklanan resme ait kaç adet tıklama yapıldığının sayısını elde etmek için bir sütun grafik oluşturulmuştur. Bu rapor hangi resme kaç kez tıklandığını göstermektedir.

power bi rapor

Raporun dizaynı tamamlandığında sağ üst kısmında bulunan iğneye tıklayarak raporu panoya (dashboard) sabitlemek (pinlemek) mümkün olabilmektedir. Bu iğneye tıklandığında Panoya Sabitle ekranı açılmakta ve bizlere var olan bir panoya mı yoksa yeni oluşturulan bir panoya mı pinlemek istediğimiz sorulmaktadır. Uygun olan seçenek seçilerek oluşturulan rapor panoya pinlenir.

power bi pano

Power BI portalının sol tarafında yer alan Panolar kısmının altında oluşturduğumuz “pano” görünmektedir. Bu panoya tıklandığında raporun bu pano üzerine sabitlendiği görünebilmektedir. Bu şekilde oluşturulan raporlar panolara sabitlenerek tek bir yerden bütün ilgili raporların takip edilmesi sağlanabilmektedir. Üstelik bir yandan kullanılmaya devam eden uygulamadan üretilen click stream verileri de anlık olarak gerçek zamanlı bir şekilde panodaki raporlara yansımakta ve otomatik refresh özelliği ile veriler anlık olarak ekrana yansıtılmaktadır.

Power BI portal kullanılarak hızlı bir şekilde raporlar oluşturulabilmekte ve istenilen raporlar panolara sabitlenebilmektedir. Bunun için yapılması gereken tek şey ilgili dataset üzerine gelerek ilgili tablo üzerindeki alanlardan seçim yapmak, seçilen kolonlardaki değerleri hangi rapor formatında sunmak istediğinizi seçmek yetmektedir. Ardından oluşturulan raporlar içinden panoya sabitlemek istenilen raporlar için pin tuşuna tıklayarak raporları panoya pinleyebilmek mümkün olmaktadır.

Power BI portalinin en göze çarpıcı, etkileyici özelliklerinden birisi de “soru sorma” kısmıdır. Pano üzerinde üst kısımda yer alan soru sorma alanında belirli anahtar kelimeleri ve kolon adlarını kullanarak pratik, hazır raporlar oluşturabilmek mümkündür. İngilizce belirli anahtar kelimeler kullanarak bir nevi soru sorarak hazır raporlar üretmek çok basit ve eğlenceli bir şekilde yapılabilmektedir.

power bi soru sorma

Üstelik soru sorma kısmında yazılar yazılırken otomatik tamamlama (intellisense) desteği de sağlanarak rapor için yazacağınız soruda sizlere kolaylık sağlanmaktadır. Örneğimizde resimlere tıklanma adetini pasta grafik olarak getirmek üzere yazılmakta olan bir soru görünmektedir. Soru yazılmaya devam ettikçe alt kısımda rapor kendiliğinden oluşmaktadır.

power bi soru sorma2

Başka bir örnekte ise zaman kolonunun adet bilgisini almak için yazılan bir soru bulunmaktadır. Toplam tıklanma sayısını verecek olan bu soru tamamlandığında ve oluşan rapor panoya sabitlenmek istenildiğinde soru sorma kısmının sağ tarafında bulunan pin tuşuna tıklanarak panoya sabitleme işlemi gerçekleştirilebilmektedir.

power bi pano2

Bütün raporlar oluşturulduktan sonra, istenilen raporlar panoya sabitlenerek görsel açıdan kuvvetli, istenilen bilgileri tek bir ekranda farklı raporlar aracılığıyla gösterilebilecek bir pano oluşturmak mümkündür. Örneğimizde, resim adlarına göre kaç adet tıklandığını gösteren bir sütun grafik, resimlerin sayfa koordinat düzenine göre neresine tıklandığını gösteren bir XY-Dağılım grafiği, resimlerin tıklanma adetlerini gösteren bir pasta grafiği büyük olarak panomuzda yer almaktadır. Ayrıca daha küçük bir formatta olacak şekilde resim adlarına göre dağılımı veren bir huni grafiği, tıklanma sayısını veren bir ölçek grafiği, resim adlarına göre dağılımı veren halka grafiği ve toplam tıklanma sayısını gösteren bir kart grafiği panoda sabitlenmiştir. İstenilen raporlar kenarından tutup sürüklenerek boyut olarak küçültülüp büyültülebilmektedir.  Böylelikle istenilen raporlar istenilen formatta panolarda yer alabilmektedir.

  • Raporların Güncellenmesi ve Gerçek Zamanlı Verinin Gösterilmesi:

Power BI portali kullanılarak oluşturulan bu panolar ve raporlar anlık olarak uygulamadan gelen click stream verilerini gerçek zamanlı olarak refresh ederek sunmaktadırlar. Bu sayede oluşturulan panolar ile gerçek zamanlı veri takibi rahatça yapılabilmektedir. Uygulama kullanılmaya devam ettiğinden gelmeye devam eden veriler panolardaki raporlarda anlık olarak değişecek ve ekranda değişiklikler gözlemlenebilecektir.

power bi pano refresh

Bu yazımızda anlık olarak akan stream verinin gerçek zamanlı olarak Power BI portali üzerinde dashboard’lar ile görüntülenmesini uygulamalı olarak ele aldık. Event Hubs, Stream Analytics ve Power BI kısmını anlattığımız bu yazı serisindeki ilgili makaleleri sırayla bir sonraki yazımda sizlerle paylaşacağım.

Keyifli okumalar…

Yazar: Abdullah ALTINTAŞ

Microsoft Azure Stream Analytics Job’ının Oluşturulması (Demo)

Bir önceki yazımızda Microsoft Azure Event Hubs servisi ile uygulama tarafından tıklamalar ile gelen verilerin elde edilmesi kısmını ele almıştık. Uygulamamızın devamında Microsoft Azure Event Hubs ile alınan verilerin nasıl anlık olarak analiz edilebileceğini göreceğiz.

Bu aşamaya kadar uygulamadan gelen verileri artık JSON formatında Event Hub’da topladığımıza göre artık gelen verileri analiz etmek için Microsoft Azure Stream Analytics servisini ayağa kaldırabiliriz. Stream Analytics servisini oluşturmak için Azure portal üzerinde sayfanın alt kısmında bulunan New sekmesine tıklayarak Data Services butonuna tıklanır. Açılan sekmeden Stream Analytics seçilerek ve Quick Create kısmında ilgili servisi oluşturmak için bir job tanımlanır. Burada “Job Name” kısmında ilgili Stream Analytics job’ına bir isim verilir. Ardından bu job’ın hangi bölgede çalıştırılacağı seçilir. Burada dikkat edilmesi gereken noktalardan birisi stream olarak akan veriyi tutmak için oluşturduğumuz Event Hub ile bunu analiz etmek için oluşturduğumuz Stream Analytics servislerinin aynı bölgede oluşturulması bize avantaj sağlayacaktır. Farklı bölgelerde oluşturulan servisler için bölgeler arası veri transferi için ek ücret ödemesi gerekeceği unutulmamalıdır.

Bu kısımda oluşturulan Stream Analytics job’ını monitör etmek için saklanması gereken log bilgilerini saklayabileceğimiz bir storage bilgisi girmemiz gerekmektedir. Daha önce tanımlı olan bir Blob Storage hesabı yoksa burada yeni bir storage account’u da oluşturulabilir. Oluşturulan Azure Blob Storage hesabına bir isim girilir.

stream analytics job olusturma

Gerekli bilgiler sağlandıktan sonra sayfanın sağ alt köşesinde bulunan “Create Stream Analytics Job” butonuna tıklanarak ilgili job oluşturulmuş olur. Oluşturulan job’ı başlatmak için sayfanın altında bulunan Start butonu bu aşamada disabled olarak gelmektedir. Bunun nedeni, henüz oluşturulan job için verileri nereden alacağımızı belirteceğimiz input, gelen veri üzerinde işlem yapmamızı sağlayacak Query ve sorgunun sonucunda üretilecek olan verileri aktaracağımız output seçeneklerini set etmemiş olmamızdır.

Oluşturulan job üzerine tıklatıldığında veri akışını izleyebileceğimiz Dashborad, operasyonel logları izleyebileceğimiz Monitor, veri girişini sağlayabileceğimiz Input, gelen verileri sorgulayabileceğimiz Query, Azure Machine Learning ile entegre edebileceğimiz Functions (yazım aşamasında henüz preview konumunda bulunmaktadır), çıktıları göndermek istediğimiz seçenekleri belirleyebileceğimiz Output, Stream Analytics servisinin ölçeklendirilebileceği Scale ve gerekli ayarların yapılabileceği Configure tabları bulunmaktadır. Ayrıca sayfanın sağ tarafında da yine job’a ait temel bilgiler yer almaktadır.

  • Input Oluşturma:

Oluşturulan Stream Analytics job’ı için verilerin nereden geleceğini set etmek için Input sekmesine tıklayarak “Add an Input” seçeneği seçilir. Burada gelen verinin stream olarak akan bir veri mi olduğu yoksa referans bir veri mi olduğu seçilebilir.

stream analytics job input

Bizim örneğimizde uygulamadan stream olarak gelecek olan akan bir veri olduğu için Data Stream seçeneği seçilir. Ardından stream olarak gelen veri için hangi kaynaktan veri geldiği seçilecektir. Event Hub, Blob Storage ve IoT Hub (Henüz preview modunda) buradaki seçeneklerdir.

stream analytics job input2

Bizim uygulamamızdan üretilen stream veri Event Hub’da toplandığından burada Event Hub seçeneğini işaretleyerek bir sonraki aşamaya geçilir.

stream analytics job input3

Gelen ekranda sorgulamak için kullanacağımız tabloya ait isim olacak olan Input Alias kısmına akılda kalıcı bir isim verilmelidir. Query kısmında SQL sorgusu yazılırken buradaki verilen isim tablo adı yerine kullanılacaktır. Örneğimizde appdata ismi verilmiştir. Burada ayrıca kullanılan hesap için Subscription, Namespace, Event Hub Name, Policy Name ve Consumer Group seçenekleri de uygun şekilde seçilmelidir.

stream analytics job input4

Input oluşturmak için son aşamada da Event Hub’dan gelen verinin hangi formatta serialize edileceği (JSON, AVRO, CSV) ve Encoding olarak hangi formatın seçileceği set edilecektir. Örneğimizde JSON ve UTF8 seçenekleri seçilmektedir.

  • Query Oluşturma:

Bu aşamaya kadar Event Hub ile alınan gerçek zamanlı click stream verisinin toplanması gerçekleştirilmiş oldu. Oluşturulan Stream Analytics job’ı için input tanımlandı ve Event Hub’dan gelen verinin job için veri kaynağı olacağı set edildi. Şimdiki aşamada ise input olarak gelen verinin Query kısmında yazılan SQL sorguları ile analiz edilmesi gerekmektedir. Bunu gerçekleştirebilmek için Stream Analytics job’ında Input seçeneğinin yanında yer alan Query tabına tıklayarak sorgu yazılabilecek olan sayfa açılmalıdır.

stream analytics job query

Açılan sayfada görülebileceği üzere Microsoft SQL Server için kullanılmakta olan T-SQL diline çok benzeyen hatta bu dilin birçok özelliğini destekleyen bir analiz sorgusu yazılabilmektedir. Burada FROM komutundan sonra yazılması gereken tablo adı yerine, bir önceki aşamada input oluştururken belirlenen “Input Alias” doğru bir şekilde yazılmalıdır.

stream analytics job query2

Örneğimizde Input Alias olarak belirlediğimiz “appdata” ifadesi tablo gibi görülecek ve Event Hub’dan gelen veriler bu şekilde sorgulanabilecektir. Yazılan sorgu istenilen şekilde tamamlandığında sayfanın alt kısmında bulunan Save butonu ile kaydedilmelidir. Bunun ardından eğer istenilirse yine sayfanın alt bölümünde yer alan Test butonu ile daha önceden elimizde bulunan veya elde edilebilecek JSON formatındaki uygulamanın ürettiği veri yazılan sorgu ile analiz edilerek test ekranında gelen veriler tablo formatında görüntülenebilecektir.

stream analytics job query test

Örnekte görülebileceği üzere, daha önce uygulama tarafından üretilen ve JSON formatında kaydedilen bir veri kümesi test edilmiş ve sorgu sonuçları test ekranında listelenmiştir.

Query ekranında gelen verilere ait bütün bilgiler SELECT * FROM appdata sorgusu ile beraber getirilebilirken, Stream Analytics sorgulama dilinde T-SQL dilinde olmayan bazı ek geliştirmeler de bizlere sunulmaktadır. Bunlardan en dikkat çekici olanlar “Windowing Concepts” adı verilen belirli bir zaman dilimi üzerinde ilgili sorgunun çalıştırılmasıdır. Stream Analytics sorgulama dilinde üç farklı windowing concept tanımlanabilmektedir. Bunlar; Tumbling Window, Hopping Window ve Sliding Window’dur.

Örneğimizde biz de Tumbling Window kullanarak uygulamadan gelen verileri “Resim Ad” kolonuna göre gruplayarak sadece son 60 saniye içinde tıklanan verilerin analiz edilmesini sağlamaktadır. Burada kullanılan sorguda yer alan TIMESTAMP BY komutu ise ilgili zaman bileşeninin uygulamada gerçekleşen zaman birimi mi yoksa Event Hub’a uygulamadan ilgili verinin geliş zamanını mı kullanılacağını belirtmek için kullanılabilmektedir.

stream analytics job query3

Yazılan yeni sorgu aynı örnek test datası kullanılarak tekrar test edilebilmekte ve çıktıları test ekranında görüntülenebilmektedir.

  • Output Oluşturma:

Yazılan uygulama tarafından üretilen gerçek zamanlı click stream verisi Event Hub’a aktarılmış ve oluşturulan Stream Analytics job’ına input olarak verilmiş, ardından yazılan Query ile akan stream verinin analizi yapılmıştı. Son aşamada ise analiz edilen veri çıktı (output) olarak bir yere aktarılacaktır.

stream analytics job output

Burada output seçeneklerinden hangisini tercih edeceğimiz ihtiyaca göre değişkenlik gösterebilmektedir. Örneğin analiz edilen veri kalıcı olarak bir yerde saklanmak isteniliyorsa Azure SQL Database kullanılarak ilişkisel bir veri tabanına aktarılabilir, daha sonra başka bir analizde kullanılmak için saklanmak isteniliyorsa istenilen formatta Azure Blob Storage üzerinde saklanabilir, ilişkisel olmayan bir veri tabanı yapısında tutulmak isteniliyorsa Azure DocumentDB veya key-value çiftleri olarak tutulmak isteniliyorsa Table Storage, başka uygulamalara tekrar analiz edilmek için gönderilmek isteniliyorsa Event Hub, Service Bus Queue, Service Bus Topic, gerçek zamanlı olarak raporlar halinde panolar oluşturularak görsel bir şekilde sunumu yapabilmek için de Power BI seçenekleri tercih edilebilir.

Örneğimizde gerçek zamanlı olarak uygulamaya tıklatılarak üretilen click stream verisinin analiz edilmesi sonucu oluşan çıktıyı gerçek zamanlı olarak raporlama ihtiyacımız olduğu için Power BI çıktı seçeneği bizler için output olarak seçilecektir.

stream analytics job output2

Power BI output seçeneği tercih edildiğinde karşımıza çıkacak olan ekranda var olan bir Power BI hesabımızın olup olmadığı sorulmaktadır. Eğer kurumsal bir domain üzerinde var olan bir Power BI hesabımız varsa “Existing Microsoft Power BI User” seçeneğini, henüz bir Power BI hesabına sahip değilseniz de hesap oluşturabilmek için “New User” seçeneğine tıklanmalıdır. Burada kullanılan Power BI hesabı Microsoft’a ait domainlerden (hotmail, outlook, windowslive vb) oluşturulduğunda kabul edilmemektedir. Bu nedenle şirket veya okul hesabınızı kullanarak Power BI hesabınızı oluşturmanız gerekmektedir.

stream analytics job output powrbi giris

Örneğimizde BilgeAdam domainine ait mail hesabımıza bağlı Power BI kullanıcı bilgileri girilerek bu işlem gerçekleştirilmektedir. İlgili hesap ile oturum açıldığında karşımıza output olarak girmemiz gerek bazı bilgi ekranları gelecektir.

stream analytics job output3

Output Alias”, “Dataset Name”, “Table Name” ve “Workspace” gibi bilgiler daha sonra kullanacağımızda anlamlı olması açısından uygun ifadeler ile isimlendirilmelidir. Bu bilgiler girildikten sonra işlem tamamlandığında stream verinin output tanımlanması tamamlanmış olacaktır.

stream analytics job output4

  • Stream Analytics Job’ının Çalıştırılması:

Output bilgisi de tanımlanan Stream Analytics job’ı için daha önce pasif durumda bulunan ve tıklanamayan sayfanın alt bölümündeki Start butonu artık aktif hale gelmiş durumdadır. Uygulama tarafından üretilen ve Event Hub’a aktarılan, orada toplana click stream verileri artık job’ın çalıştırılmasıyla birlikte Stream Analytics tarafından input olarak alınacak, analiz edilecek ve output olarak Power BI hesabına analiz sonuçları gönderilecektir.

Oluşturulan Stream Analytics job’ını çalıştırmak için sayfanın alt kısmında bulunan Start butonuna tıklandığında karşımıza hangi zaman diliminden itibaren gelen veriler ile bu job’ın çalıştırılacağı sorulan bir ekran gelmektedir.

stream analytics job execute

Burada ilgili job’ın başlatıldığı andan itibaren gelen verileri kullanarak analiz gerçekleştirebileceğimiz “Job Start Time” ve istenilen herhangi bir başlangıç zamanından itibaren gelen verilerin analiz edilebileceği “Custom Time” seçenekleri mevcuttur. Örneğimizde job’ın başlatıldığı andan itibaren gelen verileri analiz etmek istediğimiz için “Job Start Time” seçeneği seçilerek işlem tamamlanmış ve Stream Analytics job’ı başlatılmıştır.

stream analytics job execute2

Oluşturulan Stream Analytics job’ı için herhangi bir hata ile karşılaşılmadığında ilgili job başlatılabilecek ve Dashboard tabına tıklandığında verilerin geldiğini ve sayfanın sağ tarafında yer alan Status kısmında da ilgili job’ın başarılı bir şekilde çalıştığını belirten “Running” ifadesini görebilmekteyiz.

Bu yazımızda daha önce Event Hub servisi ile alınan stream verisinin Stream Analytics job’ına nasıl input olarak verildiği, yazılan sorgular ile nasıl analizinin yapılabildiği ve tanımlanan output ile analiz edilen verinin nasıl dışarıya aktarılacağını ele aldık. Bir sonraki yazımızda output olarak alınan verinin Power BI portali üzerinde nasıl anlık olarak dashboard’lar ile görüntülenebileceğini örnek uygulama ile ele alacağız.

Keyifli okumalar…

Yazar: Abdullah ALTINTAŞ

Microsoft Azure Event Hubs Servisinin Ayağa Kaldırılması (Demo)

Serinin daha önceki yazılarında stream olarak hızlı bir şekilde akan verinin elde edilmesi ve analizinin gerçekleştirilmesi için kullanabileceğimiz seçeneklerden ve genel mimariden bahsetmiştik. Microsoft Azure Event Hubs ve Microsoft Azure Stream Analytics servislerinin bu amaçla ne gibi çözümler sağladığını açıklamaya çalıştık. Bu yazımızda Microsoft Azure Event Hubs ile bir uygulamadan gelen click stream verilerinin nasıl elde edilebilineceğini örnek bir uygulama yaparak göstereceğiz.

Örnek uygulamada yazılan bir .Net uygulamasına belirli görsel fotoğraflar konulmuştur. Bu uygulama bir web sitesini simule ediyor gibi düşünülebilir. Kullanıcılar uygulamaya bağlandıklarında istedikleri yerlere tıklayarak işlemlerini gerçekleştirebilmektedir.  Bu tıklamalar örneğimiz için veri kaynağını oluşturmaktadır.

Uygulamada amacımız gelen verileri Event Hubs ile toplayarak Stream Analytics için veri input’u olmasını sağlamaktır. Stream Analytics ile alınan veriler analiz edilerek sorgular yazılabilecek ve buradan dönen sonuçlar output olarak Power BI’ya yönlendirilerek anlık olarak gerçek zamanlı tıklamalar raporlanabilecektir.

  • MICROSOFT AZURE HESABI OLUŞTURULMASI

Örneğimizde ilk olarak yazmış olduğumuz uygulamanın üreteceği verileri tutacak olan Microsoft Azure Event Hubs servisi kurulacaktır. Bunu için herhangi bir Microsoft kullanıcı hesabınız ile aylık ücretsiz 610 TL kullanım imkanı sunulan Microsoft Azure hesabı alabilmektesiniz. Ücretsiz Azure hesabı açmak için https://azure.microsoft.com/tr-tr/ adresine giderek yeni bir Azure hesabı oluşturabilmektesiniz. Yeni bir ücretsiz hesap açarken bile telefon numarası ve kredi kartı bilgileri girilmesi gerekmektedir. Kullanım süresi dolduğunda ücretli olarak kullanmaya devam etmeniz için onay vermeniz gerekmektedir. Onayınız olmadan kredi kartınızdan herhangi bir kesinti yapılmamaktadır.

  • MICROSOFT AZURE EVENT HUBS SERVİSİNİN OLUŞTURULMASI

Microsoft Azure hesabını açtıktan sonra ilk olarak verileri geçici olarak tutmak için kullanacağımız Azure Event Hubs servisini oluşturmamız gerekmektedir. Event Hubs oluşturmak için Azure portali üzerinde altta bulunan New sekmesine tıklanarak açılan servislerden App Services kısmına tıklanır. Açılan servisler listesinden Service Bus seçilir. Ardından gelen ekranda Event Hub seçeneğine tıklanarak yan tarafta açılan Quick Create butonuna tıklanır. Gelen ekranda oluşturulacak olan Event Hub’a bir isim verilmelidir. Oluşturulmak istenilen Event Hub servisinin hangi bölgede olacağı seçildikten sonra, namespace kısmında verilen Event Hub ismine göre bir namespace otomatik olarak oluşturulacaktır. Bu işlemler tamamlandıktan sonra sayfanın en altında bulunan Create a New Event Hub kısmına tıklanarak Event Hub’ın oluşturulması sağlanır.

azure portal ana ekran

Bu aşamada arka tarafta yapılan işlemler ve işlemin hatasız bir şekilde tamamlanıp tamamlanmadığı bilgisini sayfanın altında bulunan kısımdan (ribbon) takip edebilirsiniz.

azure portal ana ekran2

Oluşturulan Event Hub’a ilgili uygulamalardan bağlanıp veri gönderebilmek için sayfada ilgili Event Hub ismine tıklanır. Gelen ekranda oluşturulan Event Hub için veri akışını izleyebileceğiniz Dashboard, Event Hub için gerekli ayarları yapabileceğiniz Configure ve her bir Event Hub’ın dahil edildiği Consumer Group ayarlarını yapabilmek için Consumer Group tabları bulunmaktadır. Ayrıca bu ekranın sağ tarafında oluşturulan Event Hub ile ilgili Status, Event Hub URL, Operation Logs, Retention, Partition Count ve Namespace bilgilerini bulabilmektesiniz.

azure portal ana ekran3

Oluşturulan Event Hub servisine dışarıdan bir uygulama bağlanacağı için gerekli yetkiye sahip olması gerekmektedir. Bu nedenle dışarıdan ilgili Event Hub’a erişim için Configure tabına gelerek “manage” ismini verdiğimiz bir shared access policy oluşturmamız gerekmektedir. İlgili tam yetkiye sahip olabilmek için Manage, sadece veri gönderimi için Send, gelen verileri dinlemek için Listen olarak gelen seçeneklerden uygulamamız için Manage yetkisini seçmekteyiz.

event hub config

Ayrıca bu sayfada Event Hub’ın verileri ne kadar geçmişe dönük olarak saklayacağı set edilebilmektedir. Default olarak 1 gün olarak gelen bu seçeneği 30 güne kadar çıkarmak mümkündür. Benzer şekilde Event Hub’ın aktif veya pasife çekilmesi yine bu ekrandan sağlanabilmektedir.

Microsoft Azure Event Hub, partition yapısına göre tasarlanmış bir çözümdür. Ne kadar çok veriyle çalışacaksak partition sayısının o kadar fazla olması gerekmektedir. Her bir partition 1MB/sec veri alabilmektedir. Default olarak 4 partition ile oluşturulan bir Event Hub için bu değer ihtiyaca göre artırılıp azaltılabilmektedir. Event Hub için partition sayısı ne kadar yüksek olursa paralel olarak alınabilecek veri miktarı da o kadar yüksek olacaktır. Tabi bu da diğer yandan kullanım ücretine yansıyacaktır.

Bu sayfada gerekli ayarlar yapıldıktan sonra sayfa altında bulunan Save butonuna tıklanarak gerekli değişiklikler kaydedilir. Bu aşamada ilgili Event Hub oluşturulması tamamlanmış durumdadır. Yapılması gereken sadece uygulamadan buraya bağlantı kurabilmemiz için gerekli olan bağlantı cümlesini (connection string) buradan almamız gerekmektedir. Bunun için de ilgili Event Hub için Dashboard tabına tıkladığımızda sağ tarafta bulunan View Connection String kısmına tıklayarak gerekli bilgiler alınabilir.

event hub yetki

Açılan sayfada oluşturulan “manage” ismindeki shared access policy için gelen connection string bilgisi kopyalanabilir.

  • UYGULAMA AYARLARININ YAPILMASI

Event Hub oluşturma işlemi tamamlandığına ve uygulamadan bağlanabilmek için gerekli olan izinler verilip connection string elde edildiğine göre yazılan uygulamamızda gerekli ayarları artık yapmamız gerekmektedir. Bunun için daha önce yazmış olduğumuz tıklama verilerini alacağımız uygulama içinde Event Hub için gerekli olan bağlantı bilgisi ilgili yere eklenir.

Yazılan uygulama içinde conneciton bilgisi ister direkt olarak kod içerisinde istenirse de appconfig dosyası içinde set edilerek alınabilir.

event hub kod1

Oluşturulan connection için Event Hub üzerinde oluşturulan ve kopyalanan connection string bilgisi burada kullanılır.

event hub kod2

Uygulamadan üretilen bilgiler (tıklanan noktaya ait X ve Y koordinatları, tıklayanın adı, tıklanan nesnenin adı, olay tarihi vb.) daha sonra Stream Analytics servisine gönderileceği için serialize edilmelidir. Bunun için geçerli olan daha önce de bahsedilen JSON, CSV ve AVRO seçenekleri mevcuttur. Örneğimizde üretilen datalar JSON formatına serialize edilmektedir.

event hub kod3

Uygulamada yazılan kodlar ile program çalıştırıldığında üzerine tıklanılan resim ile ilgili bilgiler JSON formatına serialize edilerek connection bilgisi girilen Event Hub’a gönderilmektedir.

Uygulamayı çalıştırdığımızda karşımıza çıkan ekranda “Event Hub Name” kısmına oluşturmuş olduğumuz Event Hub’ın adını giriyoruz. Bizim örneğimizde altintashub olarak belirlemiştik. Connection String kısmına da manage isminde tanımlamış olduğumuz shared access policy için kopyaladığımız connection string bilgisini girmemiz gerekiyor. Bu bilgileri az önce belirttiğimiz gibi appconfig dosyasında tanımlayıp böyle bir giriş ekranı tanımlamamıza gerek kalmadan da oluşturabilirdik. Bu işlemleri tamamlayıp Connect butonuna tıkladığımızda uygulamamız herhangi bir hata olmaması durumunda Microsoft Azure Event Hub servisine bağlanacak ve tıklama verileri Event Hub’a JSON formatında serialize edilerek gönderilecektir.

uygulama ekrani1

Bu aşamada artık uygulama üzerinde tıklama işlemleri ile veri oluşturabilir ve Event Hub’a gönderilmesini sağlayabiliriz. “Your Name” kısmına tıklayan kullanıcı adı olarak kendi adımızı yazabiliriz. Örneğimizde biz altintas olarak bu kısmı dolduruyoruz. Ardından ekran üzerinde istediğimiz bir bölüme tıklayarak veri oluşturulmasını sağlayabiliriz. Oluşturulan veriler JSON formatına göre serialize edilerek hem Event Hub’a gönderilecek hem de görmemiz için uygulamanın altında bulunan listede tıklandıkça JSON verisi listelenecektir.

uygulama ekrani2

Bu yazımızda Microsoft Azure hesabının açılması, Azure Event Hubs servisinin configure edilmesi ve son kısımda da yazılan uygulama ile bağlantısının yapılıp tıklama verilerinin Event Hub‘a aktarılmasını bir örnek üzerinde incelemiş olduk. Bir sonraki yazımızda Event Hub‘a gelen verilerin gerçek zamanlı olarak analizinin yapılmasını sağlayacak olan Azure Stream Analytics servisi üzerinde örneğimize devam edeceğiz.

Görüşmek dileğiyle…

Yazar: Abdullah ALTINTAŞ