Sayfalar

13 Eylül 2013 Cuma

İş Zekasına En Kolay Çözüm: QlikView

Merhaba Arkadaşlar,

Biraz uzunca bir zamandır yazı paylaşmaya ara verdim. Malum mezuniyet, işe alım süreci v.s. beni yeterince meşgul etti. Bu açıdan şimdi en azından biraz daha rahatlamış durumdayım. Yani öğrendiklerimi paylaşmaya devam ediyor olacağım.

Bu yazıda iş zekası ile haşır neşir olanları gerçekten memnun edecek, şirketlere bu konuda yeni bir soluk getirecek bir tool'dan bahsedeceğim. İlerleyen zamanlarda da bu tool'u ayrıntılı olarak blog üzerinde ele alabiliriz.

QlikView dediğimiz gibi bir iş zekası aracı. Diğer iş zekası ürünleriyle karşılaştırdığımızda neredeyse tüm özellikleri sunmasının yanı sıra bazı çok özel yeni teknolojiler de sunuyor. Şimdi en başından başlayarak bunları irdeleyelim.


QlikView Nedir?

Az önce de belirttiğimiz gibi, iş zekası alanında farklı bir bakış açısıyla esnek, kolay, başarılı sonuçlar üreten çapraz raporlamaya imkan veren, diğer ürünlere mukabil oldukça hızlı sonuçlar döndüren bir iş zekası ve raporlama aracı. Tabi tüm özellikler bunlarla sınırlı değil. Maddeler halinde bakalım:

Avantajları
  1. Tek Ürün: Biliyoruz ki hali hazırda şirketler iş zekası çözümleri için pek çok ürünü kullanarak entegre bir sistem geliştiriyorlar. Mesela ETL için Oracle, raporlama için IBM ürünü kullanmak gibi... Ya da aynı firmaya ait ürünleri kullanarak iş zekası sistemlerini oluşturuyorlar. Bu da haliyle masraflı oluyor. Çünkü ETL, veri keşfi, OLAP, anlık sorgulama, raporlama için ayrı ayrı ürünler lisanslamak zorunda kalınıyor. Oysa QlikView tüm bahsedilen bu ürünlerin özelliklerini ve daha fazlasını zaten beraberinde tek bir ürün halinde getiriyor.
  2. Öğrenim ve Kullanım Kolaylığı: Bir önceki maddede saydığımız tüm ürünlerin hepsini öğrenip sindirmenin hiç de kolay olmadığını hepimiz biliyoruz. Sadece bir Oracle Data Integrator'ı tam anlamıyla öğrenmek bile en azından 1 sene isteyebilir. Oysa QlikView'in basit arayüzü, tek ürün olarak gelişi en fazla 1 ayda bu ürünü efektif bir şekilde kullanacak derecede öğrenmenizi sağlar. Bu da hem şirketleri eğitim masrafından kurtarır, hem de geliştirici tek bir ürünle tüm sisteme hakim olabilir.
  3. Hızlı: QlikView, aynı işi yapan rakiplerine nazaran gerçekten hızlı çalışır. Bunun birden fazla sebebi vardır. Son yıllarda revaçta olan In-Memory (Bellek İçi Veritabanı) Database yaklaşımı, QlikView'in de temelini oluşturmaktadır. Verileri her defasında gidip sabit diskten okumanın verdiği yavaşlık böylece saf dışı bırakılmıştır. Üzerinde işlem yapılan tüm veriler (örneğin bir satış data mart'ının tamamı) belleğe getirilir. Hızı artıran diğer önemli özellik; QlikView tarafından patentlenmiş bir teknolojidir ki biz onu Sıkıştırma olarak tanıyoruz. Ancak bildiğimiz sıkıştırma algoritmalarından daha performanslı olup %80 oranlarına varacak kadar yüksek sıkıştırma sağlar. Bu da çok çok büyük verilerin nasıl aynı anda bellekte tutulabildiğinin cevabıdır. Tekrar eden tüm alanlar (örneğin zaman verilerindeki yıl ve ay haneleri) tek bir alanmış gibi kabul görür ve özel bir indeksleme ile bu verilere erişilir. Elbette patentli bir teknoloji olduğu için tüm ayrıntıları bilemiyoruz :)
  4. Geliştirme Kolaylığı: Normal bir iş zekası projesinde süreç aylar içerisinde tamamlanabiliyor. Örneğin önce ETL tasarlanır, sonra veri ambarı modeli oluşturulur, ardından raporlama ortamı geliştirilir. Bunlar farklı farklı teknolojiler ve ürünler kullanılarak yapıldığı için inanılmaz vakit ve maliyet kaybı oluşturur. Oysa QlikView tek bir ürün olması ve her zaman işimizi kolaylaştırıcı bir yol sunması sebebiyle aynı boyuttaki bir projenin haftalar içerisinde bitmesine yardımcı olur.
  5. İlişkili Mantık: Bu da iş zekası tool'larında çok da görmediğimiz bir özellik. QlikView'de her obje birbiriyle ilişkili olarak çalışır. Yani rapor üzerinde seçtiğiniz bir değer; tüm komponentlerde aynı anda sergilenir. Örneğin 2004 yılına ait satış verilerini görmek istediğinizde rapor üzerindeki tüm objeler 2004 yılı ile ilgili verilerle çalışır. Yani çok dinamik bir ortam sunar. Aynı şekilde veritabanı da bu mantıkla çalışır. Açıklarsak; normal bir sistemde; kullanıcı 2004 yılına Ankara'daki ait satış verilerini görmek isterse sorgu veritabanına gönderilir, sonuç çekilir ve rapor bu kapsamda hazırlanır. Ancak kullanıcı Ankara'da X ürünün 2004 yılındaki satış raporlamasını görmek istediğinde yine aynı sorgu süreci yaşanır. Bu da büyük vakit kayıpları doğurur. Oysa QlikView'de bir sorgulama ile alakalı diğer tüm veriler belleğe zaten getirildiği için bu süreç sadece bir kere yaşanır. Kullanıcıya kalan tek şey istediği kriterin üzerine tıklamaktır! Zaten bu yüzden ismi Qlik-View olarak karşımıza çıkıyor. :) Bu aslında diğer ürünlerin Drag-Drop özelliğine bir alternatif olarak geliştirildi.
  6. Diğer Ürünlerle Kullanılabilmesi: QlikView ürünü normalde içerisinde gömülü ETL  aracıyla birlikte gelse de şirketinizin yapısı gereği farklı ETL toolları ile çalışıyor olabilirsiniz. Bu durumda QlikView'i raporlama aracı olarak da kullanabilirsiniz. QlikView'de kaynağın ne olduğunun hiçbir önemi yoktur. İsterseniz Oracle ve MS SQL gibi veritabanlarından, isterseniz Excel'den, XML'den v.s. pek çok veri kaynağından data set'lerinizi çekip QlikView de bunları aynı modele alabilirsiniz. Bu da size çok esnek bir geliştirme ortamı sunar. Tek yapılması gereken Join'lenecek alanların isimlerini aynı vermek. Artık bu alanlar otomatik olarak joinlenmiş olur ve sizin ekstra bir kod yazmanıza yada sürükle bıraklarla mapping yapmanıza gerek kalmaz.
  7. Verinin Offline Kullanılabilmesi: Bazı durumlarda veriyi sisteme bağlı olmadan da kullanmanız ve geliştirmeler yapmanız gerekebilir. QlikView de veriler aslında bir dokümanda (qvw dokümanı) tutulur. Bu doküman çift tıklandığı anda içerisinde ne varsa belleğe alınır. Yani siz bu dokümanı alıp istediğiniz yere (tabi gereken haklarınız ve lisansınız mevcutsa) götürüp inceleyebilir, geliştirmeler yapabilirsiniz. Aynı şekilde bir de qvd uzantılı dosyalar var ki bu bambaşka bir avantaj sağlar. QlikView'in sıkıştırma teknolojisi ile istediğiniz herhangi bir tablo verisini qvd dosyasına atabilirsiniz. Bu dosya, sıkıştırılmış bir yapıda olduğu için size inanılmaz hızlı bir ortam sunar. Ayrıca aynı tabloyu bir kere oluşturmakla tıpkı fonksiyonlardaki gibi bir mantıkla farklı farklı yerlerde birden çok kez kullanabilirsiniz. 
  8. Mobil Destek: QlikView'de raporların paylaşılması elbette PDF, Excel gibi ortamlara export edilerek de yapılabiliyor. Ancak sunulan diğer bir önemli avantaj; raporların web ortamında AJAX teknolojisi ile sunuluyor olması. Bu, bir bilgisayarda gördüğünüz raporlama ekranının aynısını mobil bir cihazdan girdiğinizde de görebileceğiniz ve dinamik olarak kullanabileceğiniz anlamına geliyor.
  9. Web'de Geliştirme: IE için geliştirilmiş bir plug-in ile QlikView yazılımının sunduğu ortamın aynısını web tarayıcısı üzerinde görmeniz mümkün. Raporlar oluşturupi geliştirmeleri bu ekrandan da yapabilirsiniz. 
  10. Tüm Modelleri Destekler: Bir veri ambarında tercih edilen tüm modelleri destekler. Snowflake, Star Schema, Normalize yapı gibi... Çünkü daha önce de dediğim gibi QlikView kaynaktan bağımsız çalışır.
  11. Model Bir Kere Tasarlanır: Sistem için istenen model sadece bir kere tasarlanır. Yani bu şu anlama geliyor: Farklı farklı ETL tasarımlarına ihtiyaç duymuyoruz. Bu da developer lar açısından müthiş bir kolaylık demek. Tasarlanan bu model artık tüm raporların hazırlanacağı modeldir. İstenirse model üzerinde güncellemeler yapılabilir.
Dezavantajları
Elbette her üründe olduğu gibi QlikView'de de bazı geliştirilmesi gereken yanlar mevcut. Kısaca bakalım:
  1. QlikView veriyi sadece kendi kullanımı için tutar. Yani farklı ürünlerle sorgu atılaması mümkün değildir.
  2. Gelişmiş bir metadata yönetimi mevcut değil. Ancak bunun için farklı yollara giderek çözümler üretmek mümkün. O yüzden çok da büyük bir dezavantaj olarak kabul edilmez.
  3. Yine mass mailing, matbu raporlama gibi çok ayrıntı konularda QlikView'in diğer ürünlere nazaran biraz daha geliştirilmesi gerektiği söylenebilir. Kim bilir, belki de bir sonraki versiyonda bunları göreceğiz. Çünkü çok hızlı bir geliştirme süreci olan bir ürün.
  4. QlikView geliştiricileri için dezavantaj olarak görülse de aslında bence avantaj sağlayan bir durum daha var. Bu da QLikView'de modelin drag-drop yöntemiyle oluşturulamaması. Sadece Script yapsını (tabi QlikView'e özel bir script) kullanarak modeli kodlayabiliyoruz. Bu çok da kötü değil. Çünkü SQL bilen herkes bu modeli oluşturacak kadar bu scripti biliyor demektir. Çünkü diğer özellikler için QlikView bir kod generator ekranı zaten sunuyor. QlikView'de script geliştirerek aslında ETL süreci tamamlanır ve model böylelikle geliştirilir. 
Bunların dışında, diğer iş zekası araçları size hangi imkanları sunuyorsa emin olun QlikView daha fazlasını sunuyor olacaktır :)

Dikkat Çeken Özellikler
Bu özelliklere biraz daha ayrıntılı bakalım:
  • In-Memory veritabanı
  • Associated yapı
  • Karşılaştırmalı analiz
  • Sıkıştırma teknolojisi
  • Ofis uygulamaları ile çalışma
In-Memory Veritabanı
Veriye kolay ve hızlı erişim için tasarlanmış bir teknolojidir. Bu teknoloji yeni değildir. Son yıllarda oldukça fazla firma bu alanda gerçekten performanslı ürünler ortaya çıkarıyor. Ancak istenen fiyatlarda oldukça astronomik olabiliyor. (Bkz: SAP Hana) 

Geleneksel yaklaşımda ise veriler sabit disklerde saklanıyor bir kısmı ise bellekte tutuluyor. Bellekte tutulan veriler genelde son talep edilen veriler şeklinde oluyor. Ancak kullanıcı bir anda bakış açısını farklı bir alana yönelttiğinde (örneğin ülke bazında satışları incelerken, departman bazında satışı incelemek istemesi) bu verilerin bellekte olmayışı yüzünden bir süre bekleme molası vermek durumunda kalabiliyor.  Yani geleneksel bu yapıda okuma-yazma süresi uzun bekleyişlere sebep oluyor. 

QlikView'de analizi yapılacak olan ilişkili tüm veriler olduğu gibi hafızaya alınır. Sabit diske gidip gelmek gibi bir durum olmaz. Bu, sadece ETL'in oluşturulup modele verilerin alınması anında yapılır. Bundan sonra ise tüm veriler QlikView'in özel sıkıştırılmış dokümanında saklanır. 

İşlemlerinizi hızlandırmanın farklı yolları da vardır. Mesela QlikView dokümanınızı, parçalara ayırabilirsiniz. Bu parçalar sizin data martlarınızı oluşturabilir. Böylece RAM'in kullanımını azaltabilirsiniz. Yani bir anda şirkete ait tüm verileri belleğe yüklemek yerine, birlikte kullanılacağını düşündüğünüz verileri aynı QlikView dokümanlarına koyarak bir organizasyon yapabilirsiniz. Bu da performansı artıracaktır. 

Associated Yapı
Veritabanının ve QlikView objelerinin birbiriyle ilişkili olması durumudur. Burada da amaç sürekli sabit diske gidip okuma-yazma sayısını artırmak yerine, ilişkili verileri aynı anda görerek hızı ve performansı artırmaktır. 

Klasik yapılarda, sorgulama kullanıcının ihtiyacına göre şekillenir. Yani kullanıcı ne zaman farklı raporlar görmek istese, veritabanına giden sorgu da değişir. Bu da yeni bir çalıştırma planı, yeni verilerin belleğe alınması v.s. demektir. Oysa QlikView de dokümanınızı çift tıkladığınız anda, istediğiniz tüm veriler zaten bellekte olacaktır. Bu da associated yapının ne kadar kullanışlı olduğunu ispatlar. Aşağıdaki ekran Brazilya'da 2006 yılının 3. çeyreğinde yapılan satışlarla ilgili bazı dashboard analizlerini gösteriyor. Buradaki ve diğer sayfalardaki tüm bileşenler Brezilya-2006-3. çeyreğe göre kendilerini güncelliyor:

Yine kullanıcı bir raporu izlerken, yaptığı her seçim tüm dokümanı etkiler. Tüm göstergeler, grafikler, tablolar ve tüm diğer yapılar yapılan bu seçimi gösterecek şekilde güncellenir. Her obje, her sayfa, kısacası tüm dokümanda durum böyledir. Özel durumlarda birbirini etkilemesini istemediğiniz seçimler olabilir. Merak etmeyin! :) QlikView buna da kolay uygulanan bir çözüm sunuyor. İstediğiniz objeyi veya sayfayı seçimlerden etkilenmeyecek şekilde ayarlayabiliyorsunuz. Hatta bu size çok güzel bir özelliği de beraberinde getiriyor: Karşılaştırmalı analizler... Hemen bakalım:

Karşılaştırmalı Analizler

Şirketlerde çoğunlukla önceki sene ile bu seneki satışlar arasındaki farkları keşfetmek amacıyla karşılaştırmalı raporlar önem arz eder. Bunu bildiğimiz tool larla tasarlamak hiç de kolay sayılmaz. Oysa QlikView çok zekice bir yaklaşımla farklı iki durumu, kolayca karşılaştırmayı sağlar. Örneğin 2004 yılının Nisan ayı satışlarıyla 2006 yılının Nisan ayı satışlarını kıyaslayabilmek için birbirini etkilemeyen iki ayrı komponent grubunu raporunuza ekleyebilirsiniz. Bu çok dikkat çekici bir QlikView özelliği olarak karşımıza çıkıyor. Aşağıdaki ekran görüntüsü bu duruma basit bir örnek:


Bu örnekte 2006 yılının 3. çeyreği ile 2007 yılının 3 çeyreği ülke bazındaki satışlar için karşılaştırılıyor. Sadece bu özellik bile QlikView'ı ön plana çıkarmaya yeter gibi :)

Sıkıştırma Teknolojisi
Diğer teknolojilerde genelde satır bazlı bir sıkıştırma mantığı vardır. Oysa QlikView verileri sütun bazında sıkıştırır. Bu da büyük boyutlarda, %50-%80 oranlarında sıkıştırmaya olanak sağlar. 

Tekrar sayısının fazla olması sıkıştırma oranını artırır. Çünkü QlikView'de bir verinin kaç kere tekrar ettiğin önemsizdir. Verilerde Ankara kaydı 1000 kere geçse bile QlikView bu kaydı 1 kere tutar. 

Yine diğer yaklaşımlarda performanslı bir sorgu (sorgu optimize etme) oluşturduğunuzu düşünelim. Bu sorguda minik bir değşim yapmak sorgunun inanılmaz derecede yavaş çalışmasına sebep olabilir. Ama QlikView'de sorgu sürecinde böyle bir yavaşlama gözlenmez. 

Ofis Uygulamaları İle Çalışma
QlikView komponentlerini istersek Ofis uygulamaları üzerine Copy-Paste edebiliyoruz. Bu da sunum anında büyük kolaylıklar sağlıyor. "O dokümanı kapat, bu grafiği aç" gibi karmaşalar oluşmuyor. Tabi bu özellik için Named User Call lisansı gerekecektir. 

QlikView'in ilk bakışta göze çarpan özellikleri bunlar :) Daha ayrıntılara indikçe size hem tasarımda hem de kullanımda sunulan pek çok kolaylık fark edeceksiniz. Bunları tek bir yazıda anlatmak bu yazıyı uzattıkça uzatır. O yüzden başka bir yazıda farklı ayrıntılara inmek ümidiyle. Hoşçakalın!

4 yorum:

  1. Meta data konusunda QlikView'un gelistiricisi Qlik firmasinin ek cozumu var. Ismi Expressor.

    YanıtlaSil
    Yanıtlar
    1. Teşekkürler Levent Bey :) İnceliyor olacağım.

      Sil
  2. Harika paylaşım. Ben ki BO, OBI, SAS çözümlerine yakın biri olarak bunca zaman neden Qlik den uzak kalmışsız. Şimdi saldırıyor olacağım.

    YanıtlaSil
  3. harika muhammed bey yazılarınızı özenle okuyorum ancak uzun süredir yazı yazmıyorsunuz en kısa zamnda yazmanızı umarım saygılarımla

    YanıtlaSil