Pentaho BI

Uzun zamandır sürecleri yönetmek için ihtiyaçlara yönelik veri topluyoruz. Süreci takip etmek için raporlara ihtiyacımız var elbette. Bunu da yapabiliyoruz ama artık ihtiyaçlarımız çok hızlı değişiyor. Sistemlerden ham veriyi ya da daha önceki ihtiyaçlara yönelik hazırlanmış raporları alıp bunları excel uygulaması ile dönüştürüp istediğimiz hale getirmek yeterli olmuyor. Bunu uygularken harcadığımız zaman diliminde güncel veri değişti, sonuçlar çoktan değişti. Raporlama artık bu düzene ayak uydurabilmeli. Aylık raporlar ile hızlı adımlar atmak neredeyse imkansız. Bu sürecin otomatikleşmesi gerekmekte, anlık durumlar günyüzüne çıkmalı.

Doğru ve zamanında kararlar vermek için veriye istediğimiz formatlarda ulaşmak günümüzün temel şartı haline geldi. Günümüzde rekabet edebilmek için veriyi toplamak değil veriyi kullanmak hedeflenmeli ve böylede oluyor. Rekabetin çok çetin olduğu bir dönemdeyiz, Dünya artık küresel bir köy oldu.

Veriyi kullanmanın çok daha ilerisine gidildiğini de biliyoruz.

Bu sorunlara çözümler bulmak için geliştirilen konsept ve araçlar mevcut. Bunlardan başlıcası BI(business intelligence) konseptidir. Şirketimiz bu konsept için uyguladığı çözümün ana elemanı olarak Pentaho BI aracını tercih etmiştir. Bu yazıda Pentaho BI aracının temel özelliklerini anlatmayı hedeflemekteyiz.

Konular

  • Plug-In / Marketplace
  • Report
  • OLAP Cube
  • Dashboard

Pentaho BI

Pentaho BI birden fazla araç barındıran bir uygulama grubudur. Bunlar;

  • Business Analytics Platform; BI platformu ve web erişim arayüzü
  • Data Integration; ETL aracı
  • Report Designer; BI platformda kullanılacak raporlar tasarlamayı sağlar
  • Schema Workbench; BI küpleri tasarlamayı sağlar
  • Aggregation Designer; Tanımlanan küpleri optimize etmeyi sağlar

Kurulum ve kullanım için bazı konuları aşağıda bulabilirsiniz.

http://community.pentaho.com/ adresinden “Business Analytics Platform” sekmesinden BI Server aracı indirin. Uygulamayı türkçe bir platformda çalıştırmak için “biserver-ce\tomcat\bin” dizinindeki “catalina.bat” dosyasına yurakıda biryerlere aşağıdaki satırı ekleyebilirsiniz.

set “JAVA_OPTS=%JAVA_OPTS% -Duser.language=en -Duser.region=US”

Uygulamayı başlatmak için “biserver-ce\start-pentaho.bat” komutunu çalıştırın. Sonrasında uygulama açıldı ise browserdan “http://localhost:8080/” adresine girmeniz yeterli. Uygulama düzgün açıldı ise aşağıdaki ekranı göreceksiniz. Design araçlarının versiyonu biserver versiyonuna uyumlu olmalıdır. Aksi takdirde tasarladığınız bir raporu sunucuya yükleyemeyebilirsiniz.

Sonrasında admin olarak login olun.

Datasource

Platform üzerinden veriye erişmeniz için bir datasource’a ihtiyacınız var, bunun için “Create New > Datasource adımlarını takip ederek bir datasource tanımlayın. Burada datasource’ a verdiğiniz ismi raporları ve OLAB cube’ ü yüklerken kullanacağınız için bu önemli.

Bağlanacağınız db’ nin driveri yoksa sunucuda “biserver-ce\tomcat\lib dizinine ilgili jdbc driverinin jar’ ını koymanız gerekmektedir.

Plug-In / Marketplace

Pentaho bi server’in en güzel özelliklerinden birisi plugin mantığı ile genişletilebilir olması. Uygulamayı ilk kurduğunuzda Marketplace’ e erişebilmeniz için bu plugini manuel kurmanız gerekiyor. Bunun için http://www.pentaho.com/marketplace/ adresinden “Pentaho Marketplace pluginini download edin ve sonra sunucunuzda “\biserver-ce\pentaho-solutions\system dizini altına koyun. Sonra uygulamayı restart edin. Artık ana menüde Marketplace linkini görüyor olacaksınız.

Marketplace üzerinden uygulamaya farklı görselleştirme araçları ekleyerek platformu zenginleştirebilirsiniz. Ya da custom bir plug-in geliştirerek Pentaho BI platformunu istediğiniz bir özelliği ekleyebilirsiniz. Bu konuda oldukça başarılır.

Report

Rapor tasarlamak için Report Designer aracına ihtiyacınız vardır. Rapor tasarımlarını kendi bilgisayarınızda bu araç ile yapabiliyorsunuz. Tasarımınız tamamlandığında Pentaho Server’e yükleyerek raporu kullanıma sunabiliyorsunuz.

Pentaho web sitesinden uygun versiyonlu uygulamayı indirin Türkçe olan işletim sisteminde çalıştırmak ve memory parametreleri için report-designer.bat dosyasına “-Duser.language=en -Xms1024m -Xmx2048m -XX:MaxPermSize=256m eklemesini yapmanız gerekir.

start “Pentaho Report Designer “%_PENTAHO_JAVA% -Duser.language=en -Xms1024m -Xmx2048m -XX:MaxPermSize=256m -jar “%~dp0launcher.jar %*

Oracle DB’ye bağlanmak için “lib\jdbc dizinine oracle jdbc driverini eklemeniz gerekmektedir.

DB’ye bağlanmak için Report Designer arayüzünden “Data>Add Data Source>JDBC adımlarını takip ediniz.

Datasource tanımladıktan sonra rapor tasarlarken kullanmak için sorgular tanımlamanız gerekiyor. Bu sorguları parametrik yapabiliyorsunuz. Oluşturduğunuz parametrelerin datasını yine farklı bir sorgu üzerinden alabiliyorsunuz.

OLAP Cube

OLAP Cube tasarlamak için “Schema Workbench sekmesinden uygun paket indirin.

Report aracındaki gibi bu araçtada dil ve driver ayarlarını yapmanız gerekmektedir. Tasarıma başlamadan bir connection tanımı yapmanız gerekmekte. “Options>Connection menüsünden db bağlantı parametrelerinizi tanımlayıp kaydedin.

Tasarımı tamamladıktan sonra “File > Publish seçenekleri ile sunucuya yükleyin.

Sonuç;

Pivot tabloları daha güzel sunan “Pivot4J pluginini marketplace’den kurabilirsiniz.

Dashboard
Pentaho biserver üzerinde gelişmiş dashboardlar tanımlayabilirsiniz. Anasayfada “Create New > CDE Dashboard seçenekleri ile yeni bir dashboard oluşturabilirsiniz. Pentaho üzerinde CDE (community dashboard editor)  dashboard ile oluşturulan dashboardların mantığı şöyledir;

3 bölümden oluşur :

Datasource bölümü; Burada grafiklerde ve diğer componentlerde kullanmak için farklı tiplerde queryler oluşturmanız gerekiyor
Components bölümü: Burada dashboarda eklemek istediğiniz grafik,harita.rapor vb. componentleri tanımlamanız gerekiyor. Burada tanımlama yaparken datasource bölümünde tanımladığınız query’leri kullanıyorsunuz.
Layout bölümü; Burada ise dashboardınızın nasıl görünmesi gerektiğini belirliyorsunuz. Yerleşimde kullanmak için ihtiyaçları karşılayacak nitelikte yeterli seçenek mevcut. Burada oluşturduğunuz alanlara verdiğiniz isimleri components bölümünde tanımladığınız componentlerin “HtmlObject” kısmına yazdığınızda hangi componentin layoutda nerede görüneceğini belirtiyorsunuz.

Basit bir dashboard oluşturup bir grafik ekleyelim;

Önce datasource bölümünde bir query tanımlayalım. Sol taraftaki sekmelerden “SQL Queries kısmından “sql over sqljndi linkine tıklayarak bir query oluşturun. Sonra sağ tarafta name kısmına anlamlı bir isim verin. JNDI özelliğini ilk aşamada tanımladığımız datasource’nin ismini yazın. İlk harfini yazdığınızda ya da aşağı ok tuşuna bastığınızda sistemde tanımlı datasource’ lar listelenir. Query kısmına kendinize uygun bir aşağıdakine benze bir sorgu oluşturun;

select hizmet_tipi_ad hizmet_tipi,bolge_adi bolge,adet from BI_BOLGE_VW where yil = ${yil} [Bu sorgu bölge bazında yapılan hizmetleri hizmet tipine göre adetlerini vermekte]

Bu sorgu yil parametresine göre çalışmakta. Dashboarda bir yıl parametresi ekleyip o parametrenin değerine göre grafiği filtreleyeceğiz.

Parameters kısmına “Name:yil, value : yil, type : string şeklinde parametre tanımlayın. Bu şekilde query’imizi tanımlamış olduk.

Sonra components bölümüne geçiyoruz.

Burada sağ tarafta “Generic sekmesinden “Simple Parameter seçeneğini seçerek bir parametre oluşturuyoruz. [Name: yil, property value : 2012]

Sonra yılların olduğu bir combobox oluşturmamız gerekiyor. Bunun için sağ bölümden “Select sekmesinden “Select Component seçerek ekleyin. [Name: YilSecim, parameter : yil, Listeners : yil, values : 2011,2012,2016 ]

Sağ tarafta “Charts sekmesinden “CCC Bar Chart seçeneğini seçerek bir bar chart oluşturuyoruz. [name : bolgeBazliHizmet, Listeners : yil, parameters : (yil,yil), datasource : (datasource bölümünde tanımladığımız query adı, crosstabMode : False)]

Sonra layout bölümüne geçiyoruz, burada dashboard yerleşimini oluşturacağız. İlk aşamada hazır template’lerden birini seçerek devam ediyoruz. Üst kısımda 2. buton olan “Apply Template seçeneği ile uygun bir template seçin. Ben iki sütunlu olanı seçtim.

Sonrasında üstten “spacer satırından sonra bir satır daha ekledim ve adına “Kriterler dedim. İçerisine bir column ekleyerek adına “YilKriteri dedim. Bu bilgiyi şimdi gidip components bölümünde tanımladığımız “YilSecim componentinin “HtmlObject kısmına yazmamız gerekiyor. Böylece yil comboboxı yerleşimde bu kısımda görünecek.

Sonra kriterlerden sonraki “Body kısmındaki ilk columna (yani Panel_1)’in name bilgisini components bölümünde tanımladığımız bar chartın “HtmlObject kısmına yazıyoruz.

Böylece dashboardımızı tamamlamış oluyoruz.

Not :

Tanımladığınız dashboardı farklı bir web uygulamasında iframe içerisinde göstermek için aşağıdaki değişikliği yapmanız gerekmekte;

“biserver-ce\pentaho-solutions\system\security.properties dosyasındaki aşağıdaki parametreyi true yapmanız gerekiyor.

requestParameterAuthenticationEnabled=true

Anasayfadan “Browse Files seçeneği ile dashboardınızı kaydettiğiniz dizinden bulun ve seçip sağ taraftan “Open in a new window seçeneği ile açın. Açılan pencereden adresi kopyalayın. Adresin sonuna aşağıdaki parametreler ile user ve password bilgisini ekleyin.

http://:8080/pentaho/api/repos/%3Apublic%3ASteel%20Wheels%3ADashboards%3ADilaver.wcdf/generatedContent?userid=admin&password=password

Bu şekilde farklı bir web uygulamasında dashboardınızı görüntüleyebilirsiniz.