Makale Özeti

Günümüzde şirketlerin çoğu verilerini dijital ortamda saklamayı tercih ediyorlar. Kimi şirket verillerini tutmak için excel tabloları, MS Access veri tabanı gibi daha küçük ölçekli çözümleri tercih ederken, daha fazla veriyi saklamaya ve yönetmeye ihtiyacı olan şirketler MS SQL Server, Oracle database server gibi daha enterprise düzeyde veritabanı sistemlerini tercih ediyorlar.

Makale

MS BI & Reporting Services

Günümüzde şirketlerin çoğu verilerini dijital ortamda saklamayı tercih ediyorlar. Kimi şirket verillerini tutmak için excel tabloları, MS Access veri tabanı gibi daha küçük ölçekli çözümleri tercih ederken, daha fazla veriyi saklamaya ve yönetmeye ihtiyacı olan şirketler MS SQL Server, Oracle database server gibi daha enterprise düzeyde veritabanı sistemlerini tercih ediyorlar.

Çoğu şirket sakladıkları verileri günlük bilgi sorgulama amaçları için kullanıyorlar. Buna bir örnek bir hava yolu şirketinden uçak bileti satın alacağınız zaman bilet gişesindeki çalışanın veritabanından “o anda” hangi koltukların boş olduğunu sorgulamasını örnek gösterebiliriz. Bu tip ham verilere sorgu göndererek işleyen  sistemlere OLTP sistemler denir.

(Microsoft SQL server’I bir OLTP sistem olarak yönetmek ve programlamak ilgili Microsoft’un 2072, 2071 ve 2073 kodlu kursları mevcuttur)

Zamanla geçmiş günlerden saklanan veriler eklene eklene elinizin altında eşi bulunmaz ve sizin için çok çok değerli olabilecek bir bilgi hazinesi oluşur ama ne yazık ki birçok firma ya bu bilgi hazinesininin varlığından haberdar olamaz, ya da bu hazineyi yeterince efektif, hızlı ve amacına uygun olarak kullanamaz.

Business Intelligence, şirketlerin ellerinde ham verileri doğru şekilde bilgiye dönüştürmesi işlemine denilir.

Reporting Services’in Business Intelligence İşlemindeki Yeri

Business Intelligence işleminin başlayabilmesi için ilk başta elinizde veriniz olması gerekir.

Veri Kaynakları

Veri kaynağı excel tabloları, CSV formatı dediğimiz virgülle ayrılmış değerleri içeren basit text dosyaları, MS Access, MS SQL Server, Oracle, Paradox, DB2 gibi birçok heterojen kaynak olabilir. Şirketinizin değişik departmanlarında değişik veri kaynakları kullanılabilir, ya da şirketiniz geçmişte MS Access kullanırken zamanla daha gelişmiş olan MS SQL Server yapısına geçmiş olabilir.

Elinizdeki geçmiş verileri yorumlayabilmek için ilk yapmanız gereken şey, elinizdeki farklı formattaki verileri ortak bir formatta ve ortak bir lokasyonda birleştirmeniz gerekmektedir.

Veri Ambarı (Data Warehouse)
Ham verilerinizin ortak bir formatta ortak bir lokasyonda birleştirilme işlemi için Microsoft’un sunduğu en güçlü araçlardan biri, SQL ile birlikte gelen ve SQL Yukon ile çok daha güçlendirilen Data Transofrmation Services (DTS)’dir.

(Verilerinizi DTS kullanarak birleştirmek, ortak bir formata getirmek için Microsoft’un 2092 kodlu kursu mevcuttur)

Veri ambarlarında her zaman geçmiş verilerin biriktiğini ve çoğu şirketin sadece güncel verileri üzerinde oynama yaptıklarını düşünürsek, geçmiş verileri içeren veri ambarlarında en çok kullanılan sorgu tipi “insert” olacaktır.

Veri ambarınızı oluşturduktan sonra teorik olarak geçmiş verileriniz yorumlanmaya ve raporlanmaya hazır hale gelir. Fakat enterprise bir yapıda, klasik OLTP sorgularıyla bir veri ambarındaki milyonlarca satırlık verileri yorumlamak çok zaman alan ve sistem kaynaklarını çok fazla kullanan bir işlemdir.

Çok büyük veri ambarlarını çok daha rahat yorumlayabilmek için Microsoft Analysis Services kurup OLAP yapısını kurmanız en doğru seçimdir.

OLAP, daha önceden OLTP veritabanından yorumlayacağınız bilgi tiplerini seçerek (Ürün, ürün kategorisi, bölge, şehir, toplam satış, kar v.s.) bu bilgilerin çok daha hızlı yorumlanmasını sağlayacak multi-dimentional bir veritabanı şema tipidir. Örneğin, bir OLTP veritabanında “Son 4 yılda, İstanbul – Beşiktaş bölgesinde, veritabanı yöneticiliği ürününden, kaç tane satmışım ve ne kadar kar etmişim?” sorusunu OLTP veritabanına bir sorguyla yönelttiğinizde bu oluşturulması oldukça zor bir sorgu tipidir, aynı zamanda OLTP sistem size cevabı verirken birçok tablodan birçok JOIN / Group by işlemi yapmak zorundadır. Aynı soruyu bir OLAP sistemine sorduğunuzda, OLAP sisteminde bu hesapların hepsi daha önceden hesaplanıp çok boyutlu bir şekilde saklandığı için minimum sistem kaynakları kullanarak en hızlı cevabı size verecektir.

MS SQL OLTP veritabanı sistemlerini sorgulama dili olarak T-SQL kullanırken, OLAP veritabanlarını sorgulama dili olarak MDX kullanılır.

(Microsoft’un OLAP veritabanları oluşturmak ve MDX ile ilgili 2074 ve 2093 kodlu kursları mevcuttur).


Reporting Services’in Devreye Girdiği Nokta

OLAP veritabanını da oluştuktan sonra geriye elimizdeki hazır verileri kullanıcıya sunacak bir arayüz hazırlamak kalır. Microsoft’un bugüne kadar bu noktada önerebileceği en iyi çözüm Excel – pivot tables idi.

Eğer Excel, OLAP’daki verilerin son kullancıya raporlanması için yeterli gelmiyorsa, ADO MD ya da daha low level’da OLEDB for OLAP kullanarak OLAP’ın önünde kendi custom user application’larınızı yazabiliyordunuz.

MS Reporting Services işte tam bu noktada devreye girerek Microsoft’un Business Intelligence ayağındaki end-user açığını da kapattı.ADO MD ile custom application yazmak mı, yoksa .NET kullanarak Reporting Services kullanmak mı?” sorusuna cevap, “ASP.NET kullanarak bir intranet site oluşturmak mı, yoksa Sharepoint kullanarak bir intranet site oluşturmak mı?” sorusuna eşdeğer bulduğumu söylersem sanırım Reporting Services’in ne demek olduğunu çok daha iyi anlatabilirim.

Reporting Services kullanarak, 10 dakika içinde “Her gece saat 2’de Finans departmanı için şu şu şu raporlar OLAP veritabanından çekilsin ve hazır olsun, bu raporları sadece şu kullanıcılar görebilsin. Saat 4 te satış departmanı için şu rapor hazır olsun, raporun görünüşü şöyle olsun ve sadece satış müdürü görebilsin, ve üretilen tüm raporlar, raporu web’den görüntüleyen kişiler tarafından aynı zamanda PDF, Excel, XML v.b. formatlarında kolayca save edilebilsin” cümlesini sağlayan bir sistem oluşturabilirsiniz.

Aşağıda bir veri kaynağından verilerin Reporting Services ile raporlanmasına çok basit bir örnek vereceğim.

Unutmayın, wizard’ların tamamı .NET platformunda olduğu için, raporlarınız her yönüyle customizable’dır.

Reporting Services’in Bileşenleri

Reporting Services Reporting Server ve Report Server Database (RSD) bileşenlerinden oluşur. Report Server Database raporlama işlemleri için kullanılan veritabanıdır. Reporting Server ise raporlama işlemlerini yöneten, raporları yaratan, raporları değişik formatlara çeviren ve zamanlanmış raporları yöneten bileşendir.

Reporting Services’I kuracağınız bilgisayarda VS.NET kurulu olmalıdır.

Visiual Studio.NET’te yeni bir proje oluşturmak istediğinizde “Business Intelligence Projects” adlı proje grubu gelecektir.

Yapacağım ufak örnekte, “Report Project Wizard” ‘seçiyorum.


Bir sonraki ekranda raporu oluşturmak için bağlanacağım veri kaynağı soruluyor.

MS SQL Server, Oracle, OLAP gibi birçok veri kaynağına bağlantı kurabiliyoruz.

Bağlantı kurduktan sonra veritabanındaki hangi verilerden rapor çıkarmak istediğimizi bir soru ile belirliyoruz (bu örnekte bir OLTP veritabanından rapor çıkarıyorum)

Bir sonraki ekranda oluşturacağım rapor formatı için tabular (düz) ya da matrix seçeneklerinden birini seçiyorum.

Ben örneğimde matrix rapor formatını seçiyorum.

Bir sonraki pencerede matrix’de görmek istediğiniz verileri seçiyorsunuz (buradaki veriler başta seçtiğiniz veri kaynağından gelmektedir)


Bir sonraki pencerede matrix formatındaki raporunuzun stil olarak (renk v.s) nasıl görüneceğini seçiyorsunuz.

Bir sonraki pencerede raporu sunacağınız Report Server’i ve hangi folder altında sunacağınızı (örneğin, finans’ın tüm raporlarını “Finans” folder’ı altında sunabilirsiniz v.b.) seçiyorsunuz.


Son olarak raporun ismini verip, son bir kez yaptığınız seçimleri gözden geçirmenize olanak tanınıyor.

Finish’e tıkladığınızda raporunuz hazırlanıp seçtiğiniz Report Server’da yayınlanıyor.

Daha sonra publish ettiğiniz raporu görebilmek için SQL Reporting Services’den Report Manager’ı açıyoruz.


Açılan Report Manager’da hazırladığımız raporu görebiliyoruz.

Raporumuzu görüntülerken, değişik formatlarda kaydedebiliyoruz.

Kısaca, SQL Reporting Services Business Intelligence senaryolarında son kullanıcıya verilerinizi sunmanız için profesyonel ve custmizable bir servis sunuyor.

SQL Server Yukon ile birlikte iyice güçlenecek olan Reporting Services Microsoft’un Business Intelligence framework’unde ciddi bir açığı kapatacağa benziyor.


SQL Server Reporting Services’in Lisanslaması

SQL Server 2000 Reporting Services’in 2 adet temel server component’i mevcuttur : Report Server ve Report Server Database.

Report server,  raporların değişik formatlara dönüştürülmesinde, raporların iletilmesinde ve zamanlanmış işlemlerin gerçekleşmesinde rol alır. Report Server Database (RSD), rapor tanımlarını, raporların metadatalarını (şemalarını), raporlara üyelik bilgilerini v.b. içerir. Her Report Server’ın local makinada ya da remote bir lokasyondaki bir report server database’e bağlanması gerekir.

Reporting Services kullanmak istiyorsanız, Report Server’ın ve Report Server Database’in kurulu olduğu bilgisayarda geçerli bir SQL Server 2000 lisanslaması şarttır.

SQL Server Reporting Services SQL Server’a paralel olarak ki lisanslama tipi mevcuttur :

  • Per processor licensing : Reporting Services çalıştıran işletim sistemindeki her işlemci için tek bir lisans gerektiren lisanslama tipidir. Ekstra herhangi bir aygıt ya da user client access (CAL) lisansına ihtiyaç duyulmaz.
  • Server plus CAL licensing : Reporting Services çalıştıran her bilgisayar ve raporlara direk ya da dolaylı olarak (Report Designer tool’unu kullanan kişiler dahil) erişen her kullanıcı ya da aygıt için ayrı lisans gerektirir.

Aşağıdaki örneklerde değişik SQL Server 2000 Reporting Services lisanslama tiplerini göreceksiniz.

1. Senaryo – Eğer Report Server’iniz ve RDS (Report Server Database)’iniz aynı makinadaysa :

Bu lisanslama tipinde, Report Server ve Report Server Database (RDS) aynı makinada çalışıyor. Dolayısıyla 1 adet geçerli SQL Server 2000 lisansı bu yapının çalışması için yeterli olacaktır.


2. Senaryo – Eğer Report Server’ınız ve RDS’iniz aynı SQL Server Edition’larını kullanan farklı makianalardaysa :

  1. konfigurasyonda SQL Server Report Server ve RDS, her ikiside SQL Server Standart Edition kullanan farklı makinalarda kurulu.
  2. konfigurasyonda SQL Server Report Server ve RDS, her ikiside SQL Server Enterprise Edition kullanan farklı makinalarda kurulu.

Her iki senaryoda da 2 adet geçerli SQL Server lisansına ihtiyacınız olacaktır.


3. Senaryo – Eğer Report Server’ınız ve RDS’iniz farklı  SQL Server Edition’larını kullanan farklı makianalardaysa :

  1. konfigurasyonda SQL Server Report Server, SQL Server 2000 Standart Edition ve RDS, SQL Server 2000 Enterprise Edition kurulu farklı makinalar üzerine kurulu.
  2. konfigurasyonda SQL Server Report Server, SQL Server 2000 Enterprise Edition ve RDS, SQL Server 2000 Standart Edition kurulu farklı makinalar üzerine kurulu.

Her iki senaryoda da 2 adet geçerli SQL Server lisansına ihtiyacınız olacaktır.


4. Senaryo – Bu web farm senaryosunda enterprise düzeyde isteklere yanıt verebilmek için 3 ayrı Report Server’ın 3’ü de dördüncü bir RDS’e bağlanmıştır.  Web farm konfigurasyonları sadece SQL Server 2000 Enterprise Edition tarafından desteklendiği için bu senaryo Report Server’ların kurulu olduğu makinalarda 3 adet geçerli SQL Server 2000 Enterprise Edition lisansı ve RDS’in çalıştığı makinaya da 1 adet geçerli SQL server lisansi gerekmektedir. RDS SQL server 2000 Standart ya da Enterprise edition’da çalışabilir.

Not: Reporting Services yapınızı kurarken hangi lisanslama modelinizin sizin için doğru olduğuna daha rahat karar verebilmeniz için http://www.microsoft.co m/sql/reporting/productinfo/features.asp link’ini ziyaret ediniz.

Alper ÖNSOY

SQL Server Yukon & Reporting Services Beta Tester