24 Aralık 2014 Çarşamba

1. Dünya Savaşı İstatistikleri ve Power View Raporlarının Web Sayfalarına Gömülmesi

Sharepoint hesabını kaldırdığım için aşağıda görüntüleme yapılamıyor.




Öncelikle rapor üzerinde çalışmak isteyenler için bir kaç ipucu verelim:

  • Raporlar üzerinde herhangi bir ülke bayrağını veya bir sütunu tıklarsanız diğer alanlar bu seçiminize göre ön plana alınır.
  • Haritalar, Microsoft harita alt yapısına bağlıdır. Dolayısıyla yakınlaştırıp uzaklaştırarak farklı detayları görüntüleyebilirsiniz.
  • Bir alanın üzerine gelerek açılan tooltiplerden ek açıklamalara erişebilirsiniz (örn. sayısal verilere).
  • Sağ köşede bulunan < butonunu tıklayarak tüm raporu filtreleyebilirsiniz
  • Tam ekran yaparak daha rahat çalışabilirsiniz.

Gelelim teknik konuya:

Sharepoint Online üzerindeki Excel çalışma kitaplarınızı web sayfaları içerisinde görüntülemeniz artık mümkün.

Bu özellik sayesinde PivotTable veya PowerView raporlarınızı dış dünyaya açabilir, üzerinde çalışılmasını sağlayabilirsiniz. Hatta raporu görüntülemek isteyenlerin herhangi bir şekilde login olmasına da gerek olmamaktadır.

Siz de bir kaç adımda yukarıdaki gibi PowerView raporlarınızı web sayfalarında sunabilirsiniz.

Hadi başlayalım!

Seçtiğimiz SharePoint Online dokumanını herkes ile paylaştığımızdan emin olalım.

Sharepoint Online'a upload ettiğim  ve içerisinde PowerView raporları olan dokumanın yanındaki (...) ile eriştiğimiz pencereden SHARE linki ile dosyayı paylaşıyoruz.



"Everyone", "Can view" ayarlarını yaparak dokumanı görüntülemek üzere herkesle paylaştığımızı ifade ediyoruz. Unutmadan "Require sign-in" kutucuğunu boş bırakıyoruz ki raporu görüntülemek için giriş yapma zorunluluğu olmasın.


"Share" diyerek paylaşım ayarlarını onaylayalım. Tekrar (...) ve sonrasında"a guest link"'i tıklayarak misafir linkimize ulaşalım.


Bu linki iframe elementi içerisinde çeşitli parametrelerle birlikte kullanıyor olacağız.


Excel çalışma kitabını web sayfasına gömebilmek için yukarıdaki URLin sonuna &action=embedview ifadesini ekliyoruz. Eğer çalışma kitabında PowerView veya PivotTable gibi BI karakterine sahip bir şey varsa &wdbipreview=True ifadesini de eklememiz gerekiyor

Gerekli iframe elementini Web sayfasının body kısmında şu şekilde kullanabilirsiniz:



Bu URL sonuna farklı parametreler ekleyerek kullanıcı deneyimini bir miktar daha geliştirebilirsiniz. Örneğin Excel sayfalarını gizleyebilir, indirme özelliğini aktif edebilirsiniz (interaktif sayfaları henüz indirmiyor bu arada). 

Kullanılabilecek tüm parametreleri bu linkten inceleyebilirsiniz.

SSRS veya benzeri HTML raporlarını sunmak için hazırlanan web sitelerinde PowerView raporlarını da kullanıcılarla buluşturabilmek harika bir şey. Ancak bu şekilde web sayfasına gömülen çalışma kitaplarının 10 MB büyüklük ve aynı anda 1000 görüntüleme limiti olduğunu da unutmamak gerekir.

Özellikle raporlarını dış dünya ile paylaşan firmaların, raporlama projelerine bir miktar daha renk geleceğe benziyor.

Yukarıdaki raporda 1. Dünya Savaşı'na ait gerçek verileri kullandım. Çalışmayı yaparken savaşa dair bir çok şey zihnimde daha net hale geldi diyebilirim. Dünya ülkelerinin zayiatları ve maliyetleri ile ilgili verileri rahatça analiz etme imkanını sizlere de sunmak istedim. Sayfalar arasında gezinerek diğer raporlara da bir göz atmanızı öneririm.

Faydalı olması dileğiyle...

22 Aralık 2014 Pazartesi

Etkili Rapor Tasarlama Teknikleri - 3 (Raporlama Projeleri için Strateji Belirleme)

Serinin bir önceki yazısında karar vericileri etkileyebilmek için gerekli olan ilham verici bilgilere yani; hafıza süreçlerine, algıya ve görme duyusunun çalışma prensiplerine odaklanmıştık. Bu yazımızda ise tasarımlara başlamadan önce nasıl bir strateji belirlememiz gerektiğine yani; raporların sınıflandırılmasına, uygun içerik ve teknolojiye karar verilebilmek için, cevaplarına ihtiyaç duyduğumuz sorulara odaklanıyor olacağız.

Bir önceki yazıya göz atmak isterseniz şu bağlantıyı kullanabilirsiniz:

İlk okul yıllarında elime geçen bir motivasyon kitabında anlatılan bir enstantane hayatımın çeşitli dönemlerine yön vermeyi başarmıştır. Özetle, iki arkadaş ormanda gezinirken uzaklardan bir aslan sesi duyarlar ve dikkatle baktıklarında aslanın hızla onlara yaklaştığını görürler. İçlerinden birisi hemen koşmaya başlarken diğeri ise ayakkabısının bağcıklarını bağlamak için eğilir ve ayakkabıyı ayağından çıkmayacak şekilde sıkılaştırmaya çalışır. Hikâyede bunun akıllıca bir davranış olduğu vurgulanmaktadır.

Tam da bu noktadaki hazırlığın ne kadar yerinde bir hazırlık olduğunu dönem dönem sorgulamaktan kendimi alamamışımdır. Çünkü bir yandan malum kişinin hızla yaklaşan aslana rağmen bağcıklarıyla meşgul olup riske girdiğini düşünüyorum, bir yandan da hazırlık yapmayıp rastgele koşan kişinin takılıp düşebilme ihtimalinden dolayı zaten riskte olduğunu düşünüyorum. Tabi ki her şey bir yana hazırlık yapan kişinin de takılıp düşme ihtimali daima vardır. Madem her zaman takılıp düşme ihtimali var, o halde neden hazırlık yapan daha makul davranıyor olsun ki diye düşünüyor insan.




Hazırlık yapmayan kişinin daha yüksek düşme ihtimalini bir yana, hazırlık yapanın daha az düşme ihtimalini ve başta hazırlanmakla feda ettiği zamanı bir yana koyarsak acaba kim daha fazla risk almış olur. Kara vermek zor. Genelde böyle karışıklıklar yeterli bilgiyi bir arada düşünmediğimizden kaynaklanır. Ben zamanında üzerinde biraz düşünmüştüm. Paylaşayım.

Sadece ayakkabı bağlama hazırlığı ve düşme ihtimali karar vermek için yeterli parametreler değildir. Yeni parametrelere de göz atmak gerekir. Yeni parametreleri aslanın uzaklığı ve tırmanılabilecek ağacın yakınlığı olarak kabul edebiliriz. Aslanların istediklerinde ağaçlara tırmanabileceklerini göz ardı ederek ilk başta şöyle bir sonuca varmak mümkün; Bu yeni parametrelerin değeri arttıkça hazırlık yapılması da daha makul bir davranış haline gelir.

Peki, bu durumda aslan çok uzaklarda ağaç ise çok yakınlarda ise bağcıkları bağlamak, kıyafeti düzeltmek, jimnastik hareketleri yapmak gibi hazırlıklar makul karşılanabilir mi? Tabi ki hayır. Eğer yakındaki ağaç gidilebilecek en iyi ağaç ise bir an önce tırmanmakta fayda vardır. Çünkü aslan yaklaştıkça aksiliklerin artması ve aslana yem olma ihmali artar.

Çıkarım yapmadan önce farklı bir konu üzerinde de düşünelim istiyorum. Turistik geziler. Daha önce hiç gezmediğiniz bir yer için ne gibi hazırlıklar yaparsınız? Sırt çantanızı alır yola koyulur kendinizi sürprizlere açık mı bırakırsınız, yoksa her an neler yapacağınızı planlayıp, tam da hesapladığınız gibi bir seyahat mi istersiniz?

Ben ikinci tarafa daha yakınım. Bazen her şeyi en ince detayına kadar hesaplarım. Ama birinci tarafın hislerini değerli buluyorum. O yüzden sürprizlere de açığım. Bu meseleyi, genel kalıpları kesine yakın ve alternatifli olarak planlayıp, detayları esnek bırakarak çözdüm. Yani büyük sürprizleri kontrolümde tutup, küçük sürprizlerden iyi olanlarını keyif sebebi, kötü olanlarını da gelişme sebebi olarak görmeyi prensip haline getirdim.

Her ne kadar son zamanlarda sayıları azalsa da bazı firmalar iş zekâsı projelerinde hazırlık aşamasını ya vakit kaybı olarak görüp direk atlıyor ya da yeterli özeni göstermeden geçiştiriyor. Teknik becerileri ve tecrübeleri yetersiz olan yöneticiler yukarıda her iki örnek durumda da karşı karşıya kaldığımız karmaşanın içerisinde kendilerini buluyor ve bütçeyi gereğinden fazla kısarak hazırlık aşamasına yeterli özeni göstermiyor. Tabi bunun sonucu olarak standardı olamayan kişilere bağımlı projelerin, yoldaki sıkıntılardan yorgun düşmüş ekiplerin ve istediği kaliteyi bir türlü yakalayamayan karar vericilerin ortaya çıkması kaçınılmaz oluyor.

Yukarıdaki ilk hikâyede aslana olan uzaklığı bütçe, kişileri projelerdeki geliştiriciler ve ağaca olan yakınlığı başarıyla tamamlanmış proje tanımı olarak yeniden ele alırsak, projelerde hazırlık konusunda nasıl hareket edeceğimize karar verebiliriz.

Her iki örnek durumu ve gerçek dünyayı birleştirdiğimizde şunu söylemek mümkün; Öncelikle bütçe kısıdı baskı oluşturmayacak şekilde göz önünde bulundurulmalıdır. Sonra gerekli ve yeterli en kaliteli proje için en kısa yol seçilmelidir. Sonrasında ise bu yolda oluşabilecek riskleri en aza indirmek için ne kadar hazırlık yapılması gerektiğine karar verilmelidir. Gidilecek kilometre taşları belli olan ancak küçük sürprizlerle (örneğin yeni bir teknolojik gelişmenin projede kullanılması) yolculuğa renk katma esnekliğene sahip bir proje yönetimi tercih edilmelidir.



Ekibin eğitilmesi, plan yapma, strateji geliştirme ve POC(proof of concept) gibi konular hazırlık aşamasında değinilebilecek konulardandır. Hazırlık aşaması proje başlamadan önce ayrılan bir zaman olmayabilir. Özellikle bütçe baskısının arttığı durumlarda “kervan yolda düzülür” düsturuyla hazırlığın bir kısmı proje ile birlikte sürdürülebilir. Örneğin ekibin gelişimi proje süresine yedirilebilir. Ancak plan ve stratejinin işe başlamadan önce mutlaka özenle ve en azından genel kalıplarıyla ortaya konması gerekir. Yine de yolda çeşitli stratejik değişiklikler yapılabilir. Bu değişiklikler çoğu zaman işin doğası gereği zaten olur. Baştaki plana inancını yitirmesine rağmen sadık kalmak isteyen yöneticilerle de karşılaşmak mümkün. Unutmamak gerekir ki elbette yanlış hesap Bağdat’tan da olsa döner. Yani yeterli esnekliğe sahip olunmadığında şartlar projeyi başladığı noktaya sürükleyebilir.

Rapor tasarımlarına başlamadan önce de belli miktarda hazırlık yapmak proje bütünün kalitesi ve istenen etkinin uyandırılması açısından kesinlikle çok önemlidir. Proje yönetimi teknikleri veya çevik süreç metodolojileri bir yana, raporlama projelerine özel stratejiler kurmayı kolaylaştıracak bir yol haritası oluşmuş değildir. Ancak tecrübelerimizden yola çıkarak bir araya getirdiğimiz aşağıdaki sorulara cevap verdiğimizde, aynı zamanda bir harita da hazırlamış oluruz. Bu soruların cevapları konusunda netlik arttıkça raporlama projelerine hazır olma yüzdesi de artacaktır.

Hangi alana ait bilgiyi sunacağız?


Elimizde satış, finans, pazarlama, teslimat, üretim, insan kaynakları, teknik destek, tedarik zinciri, sistem sağlık durumu, hizmetler, teslimat vs. gibi birçok alana ait bilgiler bulunabilir. Hangi bilgileri ve ne kadarını raporlamak istiyoruz? Hangilerinin katma değeri yüksek ve gerçekleştirilmesi daha kolay? Vereceğimiz kararla başlangıç kapsamını doğru belirleyebilir en az eforla en yüksek memnuniyeti elde edebiliriz.

Raporları kimlere sunacağız?


Raporları tüm dünya, şirketler gurubu, şirket geneli, bölüm seviyesinde veya bireysel seviyede paylaşmamız gerekebilir. Seviyeye uygun içeriğin seçilmesi ilgiyi ve bilgi güvenliğini arttıran önemli bir unsurdur.


Sunumu hangi amaçla yapıyoruz?


Sunumlarımız genel olarak stratejik, analitik ve operasyonel amaçlarla yapılmaktadır. Raporlardan bazen bir pazarlama stratejisi belirlenir, bazen düşük bir satışın nedeni aranır bazen de bir dolandırıcılık tespit edilerek müdahale kararı alınır.



Stratejik raporlarda sayısal ağırlıklı durum bilgileri ve üst düzey bilgiler bulunurken, analitik raporlarda farklı bakış açılarında ve farklı seviyelerde detay bilgiye, çok çeşitli karşılaştırmalara ve daha geniş tarihsel yelpazeye erişilebilir. Operasyonel raporlar ise daha çok anlık verileri, kritik durumlarda aksiyon alacak şekilde görüntüleme karakteristiğine sahiptir.

Çoğu zaman başlangıçta amaç belirlenmediği için raporlar zamanla mutasyona uğrar. Bir seviyeden sonra rapor kullanıcıları raporu niçin açtıklarını bile hatırlayamaz hale gelebilir veya raporun sadece belli bir kısmında çalışarak ihtiyaç fazlası kısımlar yüzünden gereksiz yere kaynakları tüketebilirler.

Raporda ne tür veriler kullanacağız?

Sayısal ağırlıklı mı yoksa metin ağırlıklı mı veriler sunacağız?

Sayısal ağırlık veriler sunarken daha çok karşılaştırmalı sonuçları tercih etmemiz ana fikri daha rahat ulaştırmamızı sağlayacaktır.

Örneğin, satışların içinde bulunduğumuz dönemdeki değeriyle birlikte bir önceki yılda aynı dönemdeki değeri, mevcut performans değeriyle birlikte performans hedefini ve hedefe olan yakınlığı, üretim miktarıyla birlikte ortalama üretim ve endüstri standardı gibi görece karşılaştırmayı kolaylaştırıcı sayıları bir arada sunmak kullanıcılar üzerinde daha fazla etki uyandıracaktır.



Metin ağırlık verilerde ise amaca uygun bir görselin kullanılması anlatılmak istenin kolayca kavranmasını sağlayacaktır.

Örneğin zamana bağlı bir takım görevlerin veya arıza yapan cihazların durumlarını liste şeklinde değil de bir takvimde sunmak ilgiyi ve kavrama yüzdesini bir miktar daha artıracaktır.

Ne tür görselleri tercih edeceğiz?

Rapor kullanıcıları raporlar arasında gezinirken belli alışkanlıklar edinebilmeli ve bu alışkanlıklar çerçevesinde umdukları görselliklerle karşılaşabilmelidirler. Grafik, tablo, metin, resim, harita, ikon vs. gibi görsellikler kullanıcıların umdukları yerde karşılarına çıkabilmeli ve kullanıcılar o anda gördükleri veriyi en iyi tarif edecek tasarımla karşılaşabilmelidirler. Yani görsellikler rastgele değil belli bir mantıkta ve genel senaryoya uygun olarak kullanılmalıdır.


Veri hangi sıklıkla güncelleniyor?

Verileri aylık, haftalık, günlük, saatlik ve hatta gerçek zamanlı olarak sunmak gerekebilir. Güncelleme sıklığına uygun alt yapının oluşturulması kullanılabilecek raporlama araçlarının da değiştirilmesine sebep olabilir.

Kullanıcıların raporlarla etkileşimi nasıl olacak?

Raporlar statik mi olacak yoksa çeşitli yöntemlerle raporu detaylandırmak, filtrelemek veya farklı bir rapora geçiş yapmak mümkün mü olacak? Belki rapordaki verilerin veya raporun kendisinin kullanıcı tarafından değiştirilerek sonuçların düzenlenmesini isteyebilirsiniz. Belki raporları bir web sayfasına gömmek, belki kullanıcıların maillerine istedikleri formatta göndermek, belki de bir mobile cihaz uygulamasıyla kullanıma sunmak isteyebilirsiniz. Bunlar hangi raporlama aracını tercih edeceğinizi belirleyecek isteklerdendir.

Raporları kimler tasarlayacak?

Rapor geliştiricilerinin teknik yeterliliğine uygun raporlama araçlarının tercih edilmesi, raporlama projelerinin başarıyla sonuçlanması için kritik bir adımdır.

Bununla birlikte rapor tasarımlarını yapacak kişilerin teknik yeterlilikleri kadar veriye hâkimiyeti de bir hayli önemlidir. Amaca uygun tasarım için verinin anlamına vakıf olmak veya bu konuda gerekli desteği ihtiyaç halinde alabilmek mümkün ve kolay olmalıdır.

Hangi raporlama aracı kullanılmalıdır?

Yukarıdaki soruların cevapları verdikten sonra hangi aracın kullanılacağına karar vermek oldukça kolaylaşacaktır. Burada önemli olan nokta şudur; her bir aracın kendine has avantajı ve dezavantajı vardır. Bazısı kolay tasarım yapmaya müsaitken yeterince esnek değildir. Bazısı ise uzmanlık gerektirecek kadar karmaşıktır fakat hemen hemen istenilen her tasarımı yapmak mümkün olur. Projelerde birden fazla raporlama aracı tercih edilebilir ve gerektiği yerde avantajından faydalanılabilir.

Microsoft odaklı düşündüğümüzde özetle, SQL Server Reporting Services ile esnek, Performance Point ile analitik, Excel Pivot Table ile kullanıcılara raporu geliştirme özgürlüğü tanıyan, Power BI (Power View, Power Map, Q&A) ile pratik, sinematik, sunum odaklı ve interaktif raporlama yapabilmek mümkündür.

Self-Service BI kapsamında duyurulan Power BI ürünü hakkındaki bilgilere şu linkten bir göz atabilirsiniz:
http://abdullahkise.blogspot.com.tr/2014/01/sql-2014-yenilikleri-3-power-bi.html

Rapor geliştiricilerini kimler yönlendirecek?


Rapor geliştiricilerin hangi raporlara öncelik vereceğini, raporların ana fikirlerini ve bir raporun başarıyla tamamlandığının tanımını belirleyen, iş biriminden ve bir miktar teknik tarafa yakın kişilerin desteği işleri oldukça kolaylaştırmaktadır.

Bu kişiler raporun yüksek hızda ve kalitede çıkması için gereken altyapıyı hazırlayabilir, memnuniyet oluşturabilecek raporlar sayesinde karar vericilerin projeye olan inancını arttırarak ekip içinde ve karar vericilerde motivasyon oluşturabilirler.

Böylece hem ekip hem de yöneticiler kendilerini daha fazla güvende hisseder, risk almaktan çekinmez ve farklı bakış açıları oluşturarak projeye yüksek değer katabilirler.

Raporları kimler test edip onaylayacak?

Rapor tasarlama aşaması ne kadar önemli ise raporların test edilmesi ve onaylanması aşaması da bir o kadar önemlidir. Raporları test eden kişilerin iş biriminden olması ve ortalığı yangın yerine çevirmeyecek kadar teknik olarak eğitilmesi gerekir.

Her şeyden önce başarılı rapor tanımı ve ortak bir dilin oluşması için gerekli çaba sarf edilmelidir. Test eden kişiler ve geliştiriciler arasında belirli çalışma prensipleri oturtulmalı, Scrum gibi çevik metodolojiler kullanılarak, istenen müdahaleler karara bağlanmış önem sırasıyla yapılmalıdır.

Raporlama projeleri boyunca bir şekilde cevap vermek zorunda olduğumuz bu sorular üzerinde proje başlamadan önce düşünebilirsek, proje başarısını ve tasarımların etkisini arttırabilecek stratejiler geliştirebiliriz.

Bu yazımızda tasarıma geçmeden önceki son adımı da atmış olduk. Önemli bir takım sorulara ve muhtemel cevaplarına odaklandık. Rapor ihtiyaçlarını kategorize ettik ve teknoloji seçimini etkileyecek noktalara değindik. Serinin devamında iyi bir tasarım için bilinmesi gereken “veri-mürekkep oranı” yaklaşımına ve raporların kullanılabilirliğinin arttırılmasını sağlayan ipuçlarına odaklanacağız.

Faydalı olması dileğiyle…


"Serinin çoğu yerinde fikirlerinden faydalandığım Stephen Few'e teşekkürlerimi sunuyorum."

8 Aralık 2014 Pazartesi

Power BI (Power Query) üzerinde Pivot - UnPivot İşlemleri - (Video)

Power BI araçlarından biri olan Power Query, ETL işlemlerinden sorumlu ücretsiz bir Excel eklentisidir. Power Query sayesinde veriler üzerinde pratik adımlarla rahatça çalışabilirsiniz. Bu videodaki demoda Pivot - UnPivot çalışmalarının ne kadar kolay yapılabildiğine şahit oluyoruz. 

Power BI hakkındaki diğer paylaşımlara yine bu blogdan ulaşabilirsiniz.



30 Kasım 2014 Pazar

SQL Saturday #359 Etkinliğinde, Power Query ve Power Map İçerikli Oturumda Buluşalım! (06 Aralık 2014)

Yılda bir düzenlenen SQL Saturday etkinliği, bu yıl 06 Aralık 2014 Cumartesi günü gerçekleştirilecek. 

09:15 ile başlayan açılış konuşmasının ardından yerli ve yabancı uzmanların bir birinden değerli ipuçlarını paylaştığı paralel oturumlara katılabilir, tecrübeli danışmanlar, eğitmenler, geliştiriciler ve yöneticiler ile tanışma, fikir alışverişi yapma fırsatı yakalayabilirsiniz.

Bu yılki etkinlikte Power BI, Office 365, SharePoint, Azure ve SQL Server yeteneklerini kapsayan çok değerli 25 paralel oturum mevcut.

Biz de Bilge Adam Veri Yönetimi Ekibi olarak etkinlikte yerimizi aldık. 

09:45'te Adara salonunda başlayacak olan "One Small Step for Power BI, Four Giant Tools for Power Users" isimli oturumda Power Query, Office 365 ve Power Map odaklı, daha önce denemediğinizi düşündüğümüz demoları sizlerle paylaşacağız.

Etkinlikteki tüm oturumlara şu adresten ulaşabilirsiniz :

Etkinlikte buluşmak üzere...

30 Ekim 2014 Perşembe

Etkili Rapor Tasarlama Teknikleri - 2 (Hafıza Süreçleri, Algı ve Görme Duyusu)

Serinin bir önceki yazısında ‘dashboard’lar hakkında bazı temel bilgilere ve tasarım yaparken sıkça tekrarlanan hatalara odaklanmıştık. Bu yazıda ise; karar vericileri etkileyebilmek için gerekli olan ilham verici bilgilere yani; hafıza süreçlerine, algıya ve görme duyusunun çalışma prensiplerine odaklanacağız.

Bir önceki yazıya göz atmak isterseniz şu bağlantıyı kullanabilirsiniz.


Karar vericilerin işlerini kolaylaştırmak için tasarlanan ‘dashboard’ların veya genel olarak raporların kolayca anlaşılır ve akılda kalıcı olması gerekir. Akılda kalan sonuçlar kolayca karşılaştırılabilir ve daha büyük kararlar daha hızlı verilebilir.

Bilgilerin hafızada tutulabilmesi için yıllardır çeşitli hafıza teknikleri geliştirilmiştir. Bu teknikler hayal gücü ve çağrışım odaklıdır. Temel olarak çağrışım yapan, farklılaştırılmış, tekrarlanmış ve daha fazla duyu ile algılanmış şeyler daha uzun süre akılda kalır. Bazıları ömür boyu unutulmaz. Genelde amacımız ömür boyu hafızada yer edecek bir rapor tasarlamak değildir. Zaten ömür boyu unutulamayan bir raporun sonuçları pek de iç açıcı olmayacaktır. Biz tasarımlarımızın karşılaştırma yapıp sonucunda karar verecek kadar akılda kalıcı olmasını amaçlamaktayız.

Akılda kalıcı raporları tasarlamak için hafıza teknikleri temel prensiplerinden çağrışım, farklılaştırma ve görsel algı gücünden faydalanabiliriz. Bu konulardaki prensipler yardımıyla beynin işleyişini kolaylaştırarak tasarımların etkisini çarpıcı şekilde arttırabiliriz.

Hafıza Süreçleri Nasıl İşler?

Beş duyu organı vasıtasıyla görme, koklama, işitme, tat alma ve dokunma sinyallerini alan beynimiz verileri 3 hafıza sürecinde işler.

Duyusal Hafıza (Sensory Memory)

Dikkat öncesi hafıza olarak da düşünülebilir. Veriler kısa süreyle ama son derece hassas bir şekilde saklanır. Yaklaşık olarak 1 saniye(200-500 milisaniye) içerisinde tüm veriler silinir. Bu hafızanın süresi arttırılamaz. ‘Dashboard’ tasarımının etkili olarak nitelendirilebilmesini sağlayan önemli bir süreçtir.

Eğer beyin filtreleme ve düzenleme sonucunda anlam çıkarabilirse bilgi kısa süreli hafıza devredilir.

Kısa Süreli Hafıza (Short-Term or Working Memory)

Beynin filtreleme mekanizmasından geçerek anlamlı bulunun bilgilerin nispeten biraz daha uzun süre tutulduğu hafızadır. Bu bellek herhangi bir tekrar yapmadan birkaç dakika boyunca 4 ile 7 parça bilgiyi saklayabilir. Çeşitli teknikler sayesinde bu belleğin kapasitesi arttırılabilmektedir.

Örneğin TCTHYDVDUS90NETEM metnini TC THY DVD US 90 NET EM şeklinde parçalara bölmek akılda tutmayı kolaylaştıracaktır.

 ‘Dashboard’ larda birden fazla ana fikri aktarmak istediğimizde bu bellek türü bir hayli önem kazanmaktadır. Kısa süreli belleğin sınırlı sayıda parça veriyi tutabilmesi, neden bir raporda sınırlı sayıda ana fikir aktarmamız gerektiğini açıklamaktadır.

Eğer yeterince tekrar yapılırsa veya bilgi kodlanarak işe yarar bir anlam yüklenirse, bellektekiler uzun süreli hafızaya taşınır.

Uzun Süreli Hafıza (Long-Term Memory)

Yeterince tekrar edilen veya kodlanarak anlam yüklenen bilgiler bu belleğe yerleşir. Bu bellekteki bilgiler yetkinlik, zaman-mekân konusunda deneyim ve hayatın geri kalanı ile ilgili algıları etkileyebilecek bir tecrübe olarak ömür boyu hatırlanır.

Yukarıdaki örneğe bir anlam yükleyip bizim için kıymetli bir sonuç ürettiğini düşünelim. Mesela yukarıdaki ifade ile seyahatim boyunca yapacağım çeşitli işler için kendime bir hatırlatma yapmış olmayı hedefleyeyim. Ham veriyi şu şekilde kodluyorum; (TC)Türkiye’den (THY)Türk Hava Yolları ile (US)Amerika’ya yapacağım seyahatim boyunca yeni çıkan (DVD)filmleri seyredeceğim. Amerika’ya vardığımda ilk işim Türkiye’yi (90)aramak hemen sonrasında ise (EM)maillerimi kontrol etmek olacak. Bu kodlama benim için önemli sonuçlar üretiyorsa ve belki bir miktar tekrar da yapmışsam bilginin kalıcı hafızaya geçmesini sağlamış olurum.

Uzun süreli hafıza büyüklük ve süre bakımından sınırsız olarak düşünülebilir. Hafıza teknikleri konusunda uzman olan veya bir şekilde kendi tekniklerini doğal yaşantısı boyunca farkında olmadan geliştirmiş olanlar hayret verici detayları hatırlayabilmektedirler.



Uzun süreliği belliği harekete geçirebilmek ne kadar ilham verici olsa da, bu bellek ‘dashboard’ tasarımlarımızı etkili hale getirme konusunda çok da belirleyici sayılmaz.

Etkili ‘dashboard’ tasarımları yapabilmek için dikkat öncesi hafıza ve kısa süreli hafıza süreçlerinin etkinliğini arttırma yollarına odaklanmamız gerekir.

Aktarılmak istenen bilgi nasıl algılanır?

Algı, duyusal bilginin alınması, yorumlanması, seçilmesi ve düzenlenmesi anlamına gelir. Duyuların pasif bir şekilde alınmasıyla algı oluşmaz. Bir şeyler düşünürken tanıdık birisine baktığımız halde onu görmeyip yanından geçip gitmemiz buna örnektir. Hâlbuki daha sonra ona baktığımızı fakat fark etmediğimizi bile hatırladığımız olur. Bu örnekte görme duyusu bilgiyi beyne göndermiş ancak beyin anlam çıkarma konusunda yönlendirilmediği için o bilgiyi birkaç milisaniye içerisinde silip atmıştır.

Aktarılmak istenen bilginin algılanması için kullanıcıların tasarımlardan en kısa sürede anlam çıkarabilmesi amaçlanmalıdır. Eğer çok özel araçlar kullanılmadıysa tasarımın algılanabilmesi için görme duyusundan faydalanılır.

Görme duyusu diğer duyulardan çok daha baskındır. Göz muhteşem hızda, güçte ve güzellikte desen arama niteliğine sahiptir. İnsan kavrama merkezine göz ve görsel bileşenlerden yüksek hızda bilgi akşını sağlayan kanallar mevcuttur. Göz mercek, reseptörler ve duyu sinirleri vasıtasıyla gece 50 km ötede yanan bir mum ışığını fark etmemizi, renkleri, şekilleri ve mesafeleri ayrıştırmamızı sağlayabilir.



Algıyı arttırabilmek için görme duyusunu etkin kullanmamız son derece önemlidir. Bunun için hangi görsellerin nasıl bir etki uyandırdığını bilmemiz gerekir.

Algılama hızını arttıran dikkat öncesi sembolleri

Bu sembolleri Form, Renk ve Pozisyon olarak 3 gruba ayırabiliriz.



Bu sembolleri; verileri belirli kategorilere ayırabilmek, verilerin sayısal büyüklüklerini ifade edebilmek ve ifadeleri renklendirerek baskın hale getirip ek anlamlar yüklemek için kullanırız.

Kategorileştirmeyi ifade eden semboller:

Orientation’a (yönelim) ait örnekte sağa yatık olan çizgi diğerlerinden farklılaştırılmıştır. Benzer şekilde ‘Shape’ (şekil) örneğindeki dik çizgiler ile karenin, ‘Saturation’ (doygunluk)  örneğindeki daha doygun daireler ile daha az doygun dairenin ve ‘Hue’ (ton) örneğindeki siyah renkteki daireler ile turuncu dairenin farklı iki gruba ait olduğu anlaşılmaktadır.

Çeşitliliği arttırdığımızda algının düşeceğini unutmamakta fayda var. Aşağıdaki örnekte kaç farklı kategori olduğunu ayırt edebilmek -takdir edersiniz ki tek bakışta yapılabilecek bir şey değil.



Bu bir rapor olmuş olsaydı, zamanımızın çoğunu sonuç çıkarmaya değil de tasarımı çözmeye harcamak zorunda kalırdık. Rapor kullanıcıları bundan hiç hoşlanmazlar.

Miktar ifade eden semboller:

Size’ örneğindeki büyük daire ve ‘Width’ örneğindeki kalın çizgi daha büyük miktarı ifade ediyor. Tekrar ‘Saturation’ örneğine baktığımızda doygunluk derecesinin kategorileştirmenin yanı sıra miktarı da ifade edebileceğini görebiliyoruz. ‘2-D Position’ örneğinde ise diğerlerinden daha aşağıda kalan daire daha düşük miktarları ifade etmektedir.

Bu sembollerin kötü yanı miktarın diğerlerinden ne kadar farklı olduğunu tam olarak ifade edemiyor olmasıdır. Bu eksikliği giderebilecek en harika sembol ‘Length’ örneğindekidir. ‘Length’ örneğindeki kısa çubuk diğerlerinden daha küçük miktarı ifade etmekle beraber, ölçeklendirme fırsatı sunarak, miktarın ne kadar küçük olduğunu da anlamamızı kolaylaştırmaktadır.

Renklerin nitelikleri:

Yaygın olarak renkleri tanımlamak için şu 3 nitelik kullanılmaktadır: Hue(ton), Saturation(doygunluk), Lightness/Brightness (yumuşaklık)

Bu nitelikler doğru kullanılmazsa algılama zorlaşabilir. Aşağıdaki örnekte farklı renkteki kareler üzerinde ‘Text’ kelimesi yazılmıştır. Ancak her iki karede de aynı renkte yazılmış kelime sağdaki karede daha kolay okunabilmektedir.



Tasarımlarda renklerin kullanımı tek başına bile %50 daha fazla etki oluşturur. Bazen çeşitlilik abartılarak kullanıcılara gereksiz bir renk cümbüşü yaşatılır. Öncelikli olarak algı limitinin üzerinde kullanılan renk adedi, raporu inceleyen kişinin dikkatini dağıtacaktır. Bununla birlikte uzun süre incelenmesi beklenen raporlarda kullanılan parlak renkler de çalışan kişiyi çok çabuk yoracaktır.

Tasarımlarımızda genel olarak doğal renkleri tercih etmeliyiz. Parlak renkleri kısıtlı miktarda olmak şartıyla sadece vurgulamak istediğimiz noktalar için kullanmalıyız.



Renklerle ilgili olarak sıkça göz ardı edilen bir konuyu hatırlatmadan geçemeyeceğim. Erkeklerin %10’u, kadınların ise %1’i renk körüdür. Yani renk körleri raporlarda iyi ve kötü durumları ifade etmek için sıkça kullanılan yeşil ve kırmızı renkleri ayırt edemezler. Bir renk körü yeşil, sarı ve kırmızı renkleri aşağıdaki örnekte olduğu gibi algılamaktadır.


Buna rağmen renk körleri ‘intensity’ (doygunluk ve yumuşaklık) farkını kolayca ayırt edebilmektedir. Dolayısıyla raporlardaki uyarılar için yeşil ve kırmızı yerine farklı ‘intensity’ değerlerini kullanmak daha uygun olacaktır. Aşağıdaki örnekte, renk körü olan bir kişi solda bulunan farklı koyuluktaki kırmızı renkleri sağdaki gibi algılamaktadır.


Raporlama yapmak için kullanılan araç-uygulama hangi firmaya ait olursa olsun yukarıda ifade ettiğimiz sembol ve nitelikler temel alınarak dizayn edilmiştir. Araç içerisinde varsayılan olarak gelen grafikler, renkler hep bu temeller üzerine kuruludur. Bazı araçlar yukarıdaki prensipleri daha kolay kullanmanıza olanak sağlarlar ve popüler olurlar. Bazıları ise bu konuda daha az başarılıdır.

1920 yılında Alman psikologların duyurduğu “Gestalt Prensipleri” adındaki görsel algı teorisi ile yukarıdaki sembol ve nitelikleri bir araya getiren psikolojik bir çalışma yapılmıştır. Bu çalışmanın amacı; görsel veriler arasında ilişkiler kurma, verileri belirli gruplara ayırma ve organize etme konusuna açıklık getirmektir.

Gestalt Prensipleri:


  • Proximity (Yakınlık); birbirine yakın olan nesneler bir grup algısı oluşturur.
  • Similarity (Benzerlik); birine renk, şekil, doku vs. itibari ile benzeyen nesneler bir grup algısı oluşturur.
  • Figure and Ground (Şekil ve Zemin); dikkatin yoğunlaştığı nesne şekil, diğer yüzeyler zemin olarak algılanır.
  • Closure (Tamamlama); yarım kalan yapılar tamamlanmış olarak algılanır. Örneğin bir alanın yarım çembere alınması, tamamen ayırılmış bir grup algısı oluşturur.
  • Continuity (Devamlılık); Belirli bir yönde dizilmiş şeyler bir bütün olarak algılanır. Örneğin çizgi grafikteki çizgiler bir amaç için hazırlanmış grafiği oluşturur.
  • Connection (Bağlantı) ;örneğin bir çizgi ile bağlanmış nesneler bir grup algısı oluşturur.


Sonuç olarak bu bölüme kadar öğrendiklerimizi bir araya getirirsek. Etkili rapor tasarımı için şu 4 adıma dikkat etmemiz gerekir:
  1. Tasarımda sunmak istediğimiz hedef fikrin belirlenmesi.
  2. Dikkat öncesi sembollerin hedefe uygun kullanılması.
  3. Gestalt prensiplerini uygulayarak verilerin kolayca organize edilmesinin sağlanması.
  4.  “Herbert Paul Grice”ın bir önceki yazımızda bahsettiğimiz etkileşimin kalitesini arttıracak prensiplerinin tasarıma yansıtılması.

Amacımız mümkün olduğunca kolay yorumlanabilen ve amaçlanan kısımları akılda kalan tasarımlar yapabilmek. Bu bölümde amacımızı gerçekleştirebilmek adına çok büyük bir adım atmış olduk. Hafızanın işleyişinden, algıyı güçlendiren sembollerden ve görsel duyudan bahsettik. Serinin devamında stratejik, analitik ve operasyonel dashboard rollerine, iyi bir tasarım için bilinmesi gereken “veri-mürekkep oranı” yaklaşımına ve raporların kullanılabilirliğinin arttırılmasını sağlayan ipuçlarına odaklanacağız.

Faydalı olması dileğiyle…

"Serinin çoğu yerinde fikirlerinden faydalandığım Stephen Few'e teşekkürlerimi sunuyorum."

19 Ekim 2014 Pazar

Etkili Rapor Tasarlama Teknikleri - 1 ('Dashboard'lar ve Mükerrer Tasarım Hataları)

Raporlamanın çok daha elit hali olan dashboardlar, organizasyonların bilgi ihtiyacını etkili bir biçimde karşılayabilen benzersiz ve çok güçlü çözümlerdir. Dashboardlar bir veya daha fazla hedefi gerçekleştirmek için gereken en önemli bilgileri görsel olarak ifade ederler. Örneğin bir aracın dashboardu yakıt, hız, motor devri ve sıcaklığı gibi en önemli bilgileri görüntüler.


Bu değerli çözümler ancak doğru şekilde kullanıldığında etkileyici olabilir. Ancak maalesef beklenen etkileyiciliği çok az tasarımda görebiliyoruz. Bu durum bazı organizasyonlar için o kadar içler acısı ki, veriler üzerinde çalışması gereken kullanıcılar artık mevcut dashboardları kullanmak yerine, kendi anlık ihtiyaçlarını karşılayabilen yöntemlerden faydalanma yoluna gitmekte ve hatta ciddi manada yatırım yapılan bu dashboardları tamamen terk edebilmektedir.

Neden?

Bugünkülere benzer formatta kullanılan grafiklerin geçmişi 200 yıl öncesine dayanmaktadır. Grafikler ilk olarak istatiksel bilgilerin gösterimi ile kullanılmaya başlanmış ve günümüzde ön plana çıkan iş zekâsı sayesinde hemen her alanda talep edilir hale gelmiştir. William Playfair, Florence Nightingale, John Snow, Charles Joseph Minard şimdilerde kullandığımız grafiklerin ilk hallerini finans, sağlık gibi alanlardaki istatistiki verileri sunmak için yayınlamışlardır. (http://en.wikipedia.org/wiki/Statistical_graphics)


Grafikler çok uzun zamandır var olmasına rağmen, bir araya getirilip etkileyici halde kullanılabilmesinin standartları daha yeni yeni oturtulabilmiştir. Bu konuda estetik, kullanılabilirlik ve algı yönetimi başlıklarında ciddi gelişmeler yaşanmıştır. Nihayet çeşitli felsefi teoriler ve insan kavrama becerisi ile ilgili çeşitli bilimsel araştırmaların sonuçlarından faydalanılarak belli başlı standartlar ortaya konulabilmiştir.

Verilerin etkili bir şekilde sunulması sadece dashboard tasarımı ile ilgili bir şey değildir. Dashboard tasarlamadaki amaç karar vermeyi kolaylaştırıcı çıktıların üretilebilmesidir. Bu da öncelikli olarak veri kaynaklarının hedefe uygun cevaplar üretebiliyor olmasını gerektirir. Yıllarca, depolanan verilerin nasıl analiz edilebileceği üzerinde kafa yorulmuş, hatta yorulmaya da devam edilmektedir. Ancak günümüzde her analizci tarafından kabul gören bir şey var ki; veriyi esnek bir şekilde analiz etmenin en güzel yolu veriambarı tasarımından geçer. Bu kapsamda rahatça şunu söyleyebiliriz; çoğunlukla etkili bir dashboardun arkasında doğru tasarlanmış bir veriambarı yatar.

İş zekası trendi stratejik, taktik ve operasyonel yönde bir trend izlediği için dashboard kullanıcı kitlesi de bir hayli genişledi. Artık yöneticilerden tüm beyaz yakalılara herkes aksiyonlarını dashboardlardan yardım alarak yapmayı tercih etmektedir. Ek olarak dashboardların eskisi gibi sadece kâğıt üzerinde değil, aynı zamanda web, tablet ve cep telefonlarında sunulması beklenmektedir. Bu kadar talep ve çekişmenin olduğu ortamda tasarım kalitesinin artması çok elzem bir konu haline gelmiştir.

Peki, kaliteyi arttırma konusunda neler yapabiliriz?

Dashboard tasarımcıları ile kullanıcılar arasında bir iletişim söz konusudur. Öncelikle bu iletişimin net, sade, gerektiği kadar ve anlaşılır olması çok önemlidir. Konuya edebiyat bakış açısı ile yaklaşırsak, özetle fesih ve beliğ bir anlatım benimsenmelidir.

Bir dil filozofu olan Herbert Paul Grice(1913-1988) etkileşim hakkında şu görüşleri öne sürmüştür;

Quantity: Sadece ihtiyaç olunan kadar bilgi ver. İhtiyaçtan fazlasını verme.
Quality: Yanlış olacağına inandığını söyleme. Yeterli kanıt olmayan şeyleri söyleme
Relation: Etkileşim şekli konu ile ilgili olsun.
Manner: Belirsiz ifadelerden, birden fazla anlama gelen tanımlardan, laf kalabalığından kaçın. Sistemli ol.

Bu görüşler dashboard tasarlarken dikkat edilmesi gereken noktaları da işaret etmektedir. Çünkü bu tasarımlar da sonuç itibari ile kullanıcılarla kurulan bir tür etkileşimdir.

Dashboardların üretimi sırasında aktarılmak istenen bilginin doğru, hızlı ve akılda kalıcı sadelikte olması gerektiği nedense çoğu zaman göz ardı edilir. Bunun yerine özellikle geliştiriciler çok renkli, vurgusu yüksek veya şekil itibari ilk bakışta göze hoş gelen ancak bilgi aktarımı konusunda kafa karıştıran tasarımlara yönelme hatasına düşerler. Aradığı bilgiye değil de tasarıma odağını kaptıran kullanıcılar ise ilk başlarda etkilense de bir süre sonra sıkılarak beklenen ilgiyi göstermeyecek hatta dashboardu kullanmayı tamamen terk ederek kendi çözümlerine yöneleceklerdir.

Tasarımlarda sayısız hatalar yapılabilir. Bunlardan birçoğu kullanıcıları kaçırmaz. Ancak sıkça yapılan aşağıdaki hatalar bir süre sonra dashboardlarınızın yalnızlığa terkedilmesine sebep olabilir.

Stephen Few’in “Information Dashboard Design” adlı kitabında bahsi geçen hatalardan bazıları şunlardır:

Bilgilerin tek bir ekranda sunulmaması:

Dashboardlarda kaydırma çubuğu (scroll) yardımıyla diğer alanların görüntülenmesine gerek kalmamalıdır. Gereken tüm bilgi ilk bakış görülecek şekilde tek ekranda sunulmalıdır. Bu hatayı bilgiyi bir menü yardımıyla farklı ekranlara bölerek de yapıyor olabilirsiniz.



Elbette sunulmak istenen bilgi tek ekrana sığmayacak kadar fazla olabilir. Bu durumda veriler üzerinde çalışıp ihtiyaç duyulan kadarını tam da işe yarayan formatta sunmak gerekir. Mümkün olduğunca detay bilgi ile özet bilgi birlikte verilmemelidir. Detay bilgiye sadece ihtiyaç duyulduğunda gidilebilmelidir. Tasarlanan dashboardun vermek istediği ana fikir mümkünse birden fazla olmamalıdır. Bu ana fikri focal point dediğimiz noktalarda bulundurarak algıyı güçlendirmek isteriz. Bir ekranda çok fazla focal point mevcut değildir. Sayı arttıkça etki azalır.

Verinin anlaşılmasını noksan kılan görsellerin kullanılması:

Mesela aşağıdaki görsellerde bir takım sayısal veriler ifade edilmiş. Soldaki gauge da elimizde sadece bir sayı var. Gaugeun bu değeri göstermesi iyi bir şey mi yoksa kötü bir şey mi? iyi ise ne kadar iyi? Bu sayının anlamı hakkında hiçbir fikrimiz yok. Sağdaki gaugeda ise şirket ortalamasının üzerinde bir değere sahip olduğumuzu ilk bakışta görebiliyoruz. Elimizde iyi bir sayı varmış. Harika!



Gereksiz detayların ve hassasiyetin gösterilmesi:

Örneğin sayısal verilerde gereğinden fazla basamak gösterilmemelidir. Benzer şekilde tarihsel verilerde eğer ihtiyaç yoksa milisaniye gibi bir hassasiyet belirtilmemelidir. Eğer F1 yarışlarındaki gibi hassas sonuçları raporlamanız gerekiyorsa o zaman da saat, gün, ay, yıl bilgisi gereksiz detay olacaktır.



Aktarılmak istenen bilgiye uygun görselin kullanılmaması:

Örneğin bir biri ile karşılaştırılması amaçlanan gruplar pasta grafiği ile gösterilmemelidir. Bunun yerine bar grafik tercih edilmelidir. Soldaki pasta grafiği ile sağdaki bar grafik aynı veriyi göstermesine rağmen gruplar arasındaki farkı en rahat sağdaki bar grafikte görebilmekteyiz. Bu tür yatay bar grafiklerde önemli olan daha büyük barın olduğu grupsa, büyükten küçüğe aksi halde, küçükten büyüğe sıralayabiliriz. Pasta grafiğinde ise değerlerin bir birine yakın olduğu durumda gruplar arasındaki farkı anlamamız bile mümkün olmayacaktır.



Kullanışsız dekorasyon:

Aşağıdaki örnekte en çok dikkat çeken alan mavi, gri baloncukların olduğu alandır. Ancak asıl verinin bulunduğu işe yarayan alan ise sol taraf değil, sağdaki grafiklerin bulunduğu kısımdır.



Renklerin yanlış ve yersiz kullanımı:

Bu örnekte ise soldaki grafikte ülkeler arasında hiçbir anlamı olmamasına rağmen farklı renkler kullanılmış. Gereksiz yere dikkat dağıtmaktadır. Hatta kullanıcıların, bu renklerin bir anlamı olacağı hissine kapılarak anlam kargaşası yaşaması ve fazladan anlam çıkarması olasıdır. Belki de kendilerini dashboardın diğer kısımlarındaki renklerle alaka kurmaya zorlarlar. Sağdaki grafik ise daha az kafa karıştırıcı ve istenen mesajı iletme konusunda daha başarılıdır.



Sayısal verilerin hatalı ifade edilmesi:

Aşağıdaki öreğimizde Revenue ve Costs değerleri sunulmakta. Ocak ayına baktığımızda Revenue, Costun yaklaşık 4 katı olarak görünüyor değil mi? Güzel. Tekrar grafiğe odaklanalım. Grafik 0’dan değil 500.000’den başlatılmış. Bu durumda 4 kat değil 2 kattan az bir farkın olduğu ortaya çıkıyor. Bu tarz gösterimler kullanıcıları şaşırtarak yanlış anlam çıkarmasına sebep olacaktır.


Üç boyutlu grafik kullanımı ve yanıltıcı yönlendirmeler:

Bu seferki örneğimizde birden fazla hatayı bir arada görmekteyiz. İlk grafiğimizde renklerin toplam değeri ve bir birine göre büyüklükleri kolayca anlaşılabilmektedir. İkinci grafikte ise aynı verilere anlamı olmayan bir bakış açısıyla bakıyoruz. Üç boyutlu çizimler bir yetenek göstergesi olabilir. Ancak bu raporda kalabalıktan başka bir işe yaramamış ve vermek istediğimiz mesajın netliğini bozmuş.

Üçüncü ve dördüncü grafiklerdeki perspektifin etkisi ise farklı bir konu. Bu grafiklerdeki perspektif yüzünden grupları karşılaştırmak oldukça güç hale gelmiş durumda. İki boyutlu bir pasta grafiğinden bile daha etkili karşılaştırma sonuçları elde edebilirdik.

Üçüncü ve dördüncü grafiklerdeki bir başka problem ise verideki renk gurupları ile pasta dilimleri üzerindeki renklerin bir biriyle uyumlu olmamasıdır. Burada dilimlerdeki renk kullanımı gereksiz ve daha kötüsü anlamsız olup, sonuç itibari ile kafa karıştırıcı ve dikkat dağıtıcıdır. Birinci ve dördüncü grafik aynı veriyi göstermesine rağmen, birinci grafiğin mesajı doğru iletmedeki etkisi çok daha üstündür.


Sıkça yapılan bu hataları terk etmek bile etkili dashboard tasarımı yapmak adına bir hayli yol kat ettirecektir. Ancak istenen güçlü etkiyi oluşturabilmek için çok daha fazlasına ihtiyacımız olacak.

Şimdilik burada duralım istiyorum.

Serinin devamında; görme ve kavrama becerilerinin nasıl çalıştığına, stratejik, analitik ve operasyonel dashboard rollerine, iyi bir tasarım için bilinmesi gereken “veri-mürekkep oranı” yaklaşımına ve raporların kullanılabilirliğinin arttırılmasını sağlayan ipuçlarına odaklanacağız.

Keyifli bir seri olacağa benziyor. Faydalı olması dileğiyle…

"Serinin çoğu yerinde fikirlerinden faydalandığım Stephen Few'e teşekkürlerimi sunuyorum."

23 Eylül 2014 Salı

SQL Server 2014 Yenilikleri - 6 (Buffer Pool Extension)

SQL Server verileri 8Kb'lık yapılar halinde tutmaktadır. Bu yapılara "page" adı verilir. İşlem görmek için talep edilen veriler öncelikle memory'e yüklenir. Mamory'deki pagelere "buffer", tüm veritabanlarındaki veri ve index pagelerinin toplandığı ortak havuza ise "buffer cache" veya "buffer pool" adı verilir.

Buffer Pool'un varlık amaçlarından birisi, I/O yükünü azaltıp veri üzerindeki işlem taleplerinin mümkün olduğunca hızlı gerçekleştirilebilmesini sağlamaktır.

Bir değişiklik talebi oluştuğunda önce veri diskten okunup Buffer Pool'a alınır ve değişiklikler uygulanır. Tam bu noktada veri diskte farklı, Buffer Pool'da farklı olabilmektedir. Buffer Pool'daki farklı verinin tutulduğu pagelere "dirty page" adı verilir. Bu dirty pageler bir takım şartların sağlanmasıyla Checkpoint adı verilen işlem sayesinde diske yazılarak kalıcı hale gelmiş olur. Aksi halde bir felaket durumunda Buffer Pooldaki pageler diske yazılmadığı için kaybedilirdi.

Verilerin Buffer Pool'da olması hızlı erişim için büyük avantaj sağlamakta. Daha büyük memory, daha geniş bir Buffer Pool ve bu da daha çok veri ile daha az gecikmeli çalışma anlamına gelir.

SQL Server'ın performansını arttırmak için donanımsal çözümlere sarılmak en son yapılacak işlerdendir. Ancak bazen konu memory artırımına kadar gelmiş olabilir. Eğer imkan varsa memory arttırımı gerçekleştirilir.

Peki ya daha geniş bir Buffer Pool ihtiyacı doğmasına rağmen, memory arttırımı yapılamıyorsa veya yapılması istenmiyorsa?

Bu konudaki talepleri değerlendiren Microsoft, SQL Server 2014 ile birlikte Buffer Pool'u diske genişletebilme özelliğini duyurmuştur. 

Buffer Pool'u genişletmeniz gerekmesine rağmen, anakart gibi donanımsal limitlere, çeşitli kurallara, yüksek fiyatlara takılarak memory arttırımını gerçekleştiremiyorsanız "Buffer Pool Extension (BPE)" özelliğine bir göz atmak isteyebilirsiniz. Belki de sadece kısa bir dönem için daha geniş bir Buffer Pool'a ihtiyacınız vardır. Bu durumda donanım değişikliğine gitmenize gerek kalmayacaktır.

SQL Server 2014 ile birlikte gelen "Buffer Pool Extension (BPE)" özelliği kolayca konfigure edilebilir. Bu sebeple esnek depolama alanı imkanı sunar. Disk ile memory fiyat bakımından karşılaştırıldığında da ceplerin daha sıcak kalacağı malumdur.

Memoryi diske genişletme fikri yüksek performans kazanılacağı konusunda pek ikna edici olmayabilir. Ancak bardağın dolu tarafından bakarsak eğer; çok daha büyük bir veri kümesini toplamda, memorye nazaran daha yavaş, diske nazaran daha hızlı şekilde kullanabiliriz. Buradan anlaşılıyor ki, BPE özelliğinin getirisini arttırmak için disk seçimi de bir hayli önem arz etmektedir. Klasik HDD yerine yaklaşık 100 kat daha hızlı SSD diskler tercih edilmelidir. 

BPE, özellikle okuma ağırlıklı OLTP iş yükleri için performans kazancı sağlamaktadır. Diskte ayırdığımız BPE alnında clean pageler yani commit edilmiş veriler saklandığı için herhangi bir anomali beklenmez. Özetle veri kaybı riski memoryde olduğundan fazla değildir. Eğer diskin başına bir şey gelirse BPE otomatik olarak disable olur. Dolayısıyla serverın çalışmasını engelleyecek bir durum beklenmez. Manual olarak yönetilebildiği gibi, instance başlatıldığında da yeniden aktif olacaktır(belirtilen yol varsa). Bu özelliğin güzel taraflarından birisi de herhangi bir uygulama taraflı değişiklik yapmaya gerek kalmadan ihtiyaç duyulduğunda aktif edilebilmesi ve kaldırılabilmesidir.

Nasıl yapıyoruz?

Oldukça basit şu script yardımıyla diskte "EkHavuz.BPE" isminde 10 GB boyutunda bir alan rezerve edebiliriz. BPE'yi hatasız aktif edebilmek için SIZE parametresi her defasında mevcut Buffer Pool'dan büyük olarak belirtilmelidir.

ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION ON
     (
         FILENAME = 'D:\EkHavuz.BPE',
         SIZE = 10 GB

     )



Böylece EkHavuz.BPE alanını memory Buffer Pool'umuza extend etmiş olduk. Şu DMV yardımıyla BPE konfigurasyonu hakkında bilgi alabilirsiniz:

SELECT
path,
file_id,
state,
state_description,
current_size_in_kb
FROM sys.dm_os_buffer_pool_extension_configuration;


EkHavuz.BPE'nin hangi veritabanından kaç tane page barındırdığını görmek isterseniz aşağıda gibi DMV'den faydalanabilirsiniz:

SELECT
COUNT(*)AS cached_pages_count
    ,CASE database_id
        WHEN 32767 THEN 'ResourceDb'
        ELSE db_name(database_id)
     END AS database_name
FROM sys.dm_os_buffer_descriptors
GROUP BY DB_NAME(database_id) ,database_id
ORDER BY cached_pages_count DESC;

BPE özelliğini pasif hale getirmek isterseniz şu scripti çalıştırmanız yeterli:

ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION OFF

SQL Server 2014 ile gelen "Buffer Pool Extension" özelliği memory arttırımına gerek kalmadan diski kullanarak Buffer Pool'u genişletmemizi sağladı. İşe yarar bir özellik.

Bu faydalı ve esnek depolama hizmeti Enterprise, Standart ve Business Intellingence sürümlerinde kullanılabilmektedir.

Bir gün sizin de işinize yarayabilir.