Genel · Qlik · Tableau

Tableau vs Qlik Sense

Veriye dayalı stratejiler izleyerek öne geçmek isteyen şirketler, doğru belirlenmiş iş zekası ve raporlama teknolojilerine ihtiyaç duyarlar. Tableau ve Qlik Sense gibi çok sayıda bulunan iş zekası yazılımlarından doğru olanı seçmek başarı için kritik bir noktadır. Gereksinimler ve öncelikler göz önüne alınarak değerlendirildiğinde iş zekası yazılımlarının birbirinden nasıl farklılaştığı ortaya çıkar.

İş zekası alanının iki popüler aracı olan Tableau ve Qlik Sense her ne kadar aynı amaca hizmet ediyor gibi görünse de aralarında ciddi farklılıklar barındırır. İkisi de self servis raporlamayı hedef alırken Tableau veri görselleştirmesine, Qlik Sense ise veri yönetimine daha çok ağırlık vermiştir. Son kullanıcı, veri noktaları arasındaki ilişki keşfine odaklanırken beklentisini de göz önünde bulundurarak iki yazılımı da rahatlıkla kullanabilir.

Peki Tableau ve Qlik Sense arasındaki belirgin farklılar nelerdir?

  • Tableau, veriye hem canlı hem de bellek içi bağlanabilir. Qlik Sense ise yalnızca bellek içi bağlanır.
  • Qlik Sense’in associative engine sayesinde ortaya daha esnek bir yapı koymasına karşılık Tableau sorgu tabanlı (query-based) bir yaklaşım izler. Her iki yaklaşımında doğru olmasıyla beraber aslında ikisi de birbirinden oldukça farklıdır. Qlik Sense’in özellikle veri yönetimi konusunda sunduğu esneklik, performans konusunda bir adım önde olmasını sağlar.
  • Tableau’da grafikler, son kullanıcı tarafından sürükle bırak ile yapılırken Qlik Sense bu grafikleri hazır olarak sunar. Böylece Qlik Sense’te son kullanıcının sıfırdan grafik oluşturmasına gerek yoktur. Tabii bu durum grafik konusunda ciddi bir sınırlama getirir.
  • Tableau’nun genel olarak tüm ürünlerinin arayüzü oldukça anlaşılır ve öğrenmesi kolaydır. Qlik Sense’te yeni özellikler arttıkça tasarım sıkışmaya başlar. Ayrıca Qlik Sense’in server yönetimi Tableau’ya göre daha karmaşıktır.
  • Belirli analizleri yapmak için Qlik Sense’te script yazmak gerekirken Tableau’da bir çok analiz ve hesaplama hazır olarak bulunur.
  • Qlik Sense’in içerisinde veriyi düzenlemek mümkündür. Tableau’da bunu yapmak için Tableau Prep adında ayrı bir araç kullanılması gerekir.
  • Qlik Sense’te bulunan ilişkisellik modeli Tableau’da yoktur.
  • Alternate States ile Qlik Sense’te kolaylıkla boyutlar arası karşılaştırma yapılabilir. Aynı karşılaştırmayı Tableau’da yapabilmek için hesaplama yazmak gerekir.
  • Tableau’da, Qlik Sense’teki gelişmiş arama özelliği gibi kapsamlı bir arama bulunmaz.
  • Tableau’da formatlama sınırsızken, Qlik Sense’de oldukça sınırlıdır. Detaylara müdahale edebilmek için farklı bir program kullanmak gerekir.
  • Tableau’da tooltip’ler düzenlenebilir; hatta içerisine birbirinden farklı grafikler eklenebilir. Ancak Qlik Sense’te tooltip’ler otomatiktir ve düzenlenemez.
  • Qlik Sense’te script yazılarak her noktaya müdahale edilebilirken Tableau kullanıcılara sunduğu arayüz dışında müdahaleye izin vermez.
  • Qlik Sense’te bulunan pivot tablo yapısı Tableau’da bulunmaz.
  • Bir dashboard’un mobildeki veya tabletteki tasarımı, Tableau’da aynı uygulama içinde otomatik düzenleme dahil her noktasına müdahele edilerek yapılabilir. Ancak Qlik Sense grafikleri kullanılan ekrana göre otomatik dizerek sürükle bırak ile ayrı bir tasarım yapılmasına izin vermez.
  • Tableau’nun içinde herhangi bir uzantıya gerek olmadan web sayfaları kolaylıkla çalıştırılabilir. Qlik Sense’in temelinde böyle bir özellik mevcut değildir.
  • Tableau’da hem grafikler hem de panolar arasında kapsamlı bir aksiyon kullanımı bulunur. Qlik Sense’te aksiyon kullanımı “tıkla ve filtrele” ile sınırlıdır.
  • R ve Python entegrasyonu, Tableau’da oldukça kolay ve optimize çalışır. Bu entegrasyonlar, Qlik Sense’te oldukça meşakkatli yapılmaktadır.
  • Tableau Desktop’taki tüm özellikler Tableau Server’da bulunmaz. Qlik Sense Server’da ise kapsamlı bir şekilde rapor tasarlanabilir.
  • Her iki ürünün de destek kısmı oldukça gelişmiştir. Buna ek olarak Qlik’in Türkçe destek bölümü vardır.
  • Tableau’nun ürünlerinde Türkçe dil desteği şuanda mevcut değildir. Qlik Sense Türkçe olarak kullanılabilir.

Sonuç olarak her iki yazılım içinde iş zekası dünyasında büyük bir potansiyele sahip olduğunu söylemek adil olacaktır.

Tableau

Tableau Ders 100: Zaman Analizleri

İlk Örnek

Saatlik, günlük ya da haftalık olarak analiz yapalım.

  1. Gösterim Sıklığı adında aşağıdaki parametreyi oluşturalım.

    gosterim.png

  2. Aşağıdaki hesaplamayı Zaman Aralığı adını vererek oluşturalım.
    CASE [Gösterim Sıklığı] 
    WHEN "1" THEN DATETRUNC ('hour', [created_at]) 
    WHEN "2" THEN DATETRUNC ('day', [created_at]) 
    WHEN "3" THEN DATETRUNC ('week', [created_at]) 
    END
  3. Yeni tarih alanı olarak artık Zaman Aralığı hesaplamasını kullanmalıyız.
  4. Böylece parametreden saatlik, günlük ya da haftalık seçim yaptığımızda analizlerimiz ona göre değişecektir.

İkinci Örnek

Son gün, son hafta, son ay ve son yılı gösterelim.

  1. Gösterilen Zaman adında aşağıdaki parametreyi oluşturalım.

    gosterilenzaman.png

  2. Aşağıdaki formülleri yanındaki isimleri vererek oluşturalım.

    Son Gün: TODAY () = [Order Date]
    Son Hafta: DATEPART (‘week’, [Order Date]) =DATEPART (‘week’, TODAY())
    Son Ay: DATEPART (‘month’, [Order Date]) =DATEPART (‘month’, TODAY())
    Son Yıl: YEAR([Order Date]) =YEAR (TODAY())

  3. Son olarak aşağıdaki formülü yazalım ve Zaman Seçimi olarak adlandırın.
    CASE [Gösterilen Zaman]
    WHEN "1" THEN [Son Gün]
    WHEN "2" THEN [Son Hafta]
    WHEN "3" THEN [Son Ay]
    WHEN "4" THEN [Son 1 Yıl] 
    END
  4. Zaman seçimi hesaplamasını Filters kutusuna atarak “True” seçtiğimizde yukarıdaki parametreden yaptığınız seçimler grafiğe uygulanacaktır.
Tableau

Tableau Ders 99: Saat Aralığı

Saate göre filtreleme işlemini nasıl yaparız?

Örnek olarak aşağıdaki şekilde bir veri oluşturdum. Veride yalnızca aktivite ve tarih alanları bulunmaktadır.

Saatlik, Saatlik 2 ve Saatlik 3 çözüm için hazırladığım hesaplamalardır.

4x242r432.png

Gelin tek tek inceleyelim.

Birinci Yol

Saatlik hesaplamasının içerisine bakalım.

DATEPARSE ( "HH:mm:ss", str(datepart('hour',[Tarih]))+ ":"
+ str(datepart('minute',[Tarih]))+":"+ str(datepart('second',[Tarih])) )

Tarih alanının içerisindeki saati kullanmak için tarih alanını parçalıyoruz. Saat, dakika ve saniyeyi bir araya getiriyoruz.

ilkyontem.png

İkinci Yol

Saatlik 2 hesaplamasının içerisine bakalım.

DATEADD ('second', DATEDIFF('second', DATETRUNC('day',[Tarih]), [Tarih]),
#1900-01-01#)

ikinciyontem.png

Üçüncü Yol

Saatlik 3 hesaplamasının içerisine bakalım.

RIGHT (STR ([Tarih]), 8)

Tarih alanının içinden sadece saat bilgisini alıyoruz.

Başlangıç ve bitiş zamanını belirten iki parametre oluşturuyoruz.

bbbbbbaşbbbbbbbbbbitiş

Ardından Saatlik 3 alanını filtreye atarak içerisine Condition bölümünden aşağıdaki formülü yazıyoruz.

cond

Artık belirttiğimiz saat aralığını görebiliriz.

ucuncuyontem.png

Tableau

Tableau Ders 97: Çift Eksenli Bar Grafik

Verilerinizi sıradan bir bar grafikle göstermek mi? Yoksa onu biraz süslemek ister misiniz?

Şimdi biraz daha hoş görünen bar grafiklerden birini anlatacağım.

Profit’i Columns’a; Region’ı Rows’a attıktan sonra Profit’in üzerine sağ tıklayarak Quick Table Calculation‘lardan Percent of Total‘ı verelim. Ardından Profit’i yanına kopyalarak aynı şekilde Percent of Total kullanırken Compute Using‘i Cell seçelim.

compsuing

Birazdan bu iki ekseni üst üste getireceğiz ve eksenler üst üste bindiğinde iyi görünmesi için bazı format ayarları yapacağız.

Marks -> All‘dan Bar‘ı seçerek başlayalım.

Birinci Profit alanı için Mark -> Size‘ı biraz küçültelim ve kar yüzdelerini grafiğin üzerine Label -> Show mark labels ile yazdıralım. Ardından ikinci Profit alanı için Mark -> Color -> Opacity‘den opaklığı biraz azaltalım.

tk9eepogjü.png

Şimdi ikinci Profit’in üzerine sağ tıklayarak Dual Axis diyelim ve eksenleri birleştirelim.

Eksenin üzerine sağ tıklayarak Synchronize Axis ile iki ekseni senkronize edelim.

egteg435gsyn.png

Tekrar eksene sağ tıklayarak Show Header diyerek ikinci ekseni yok edelim. Ardından alttaki eksene sağ tıklayarak Edit Axis diyelim. Çıkan ekrandan General -> Range -> Fixed seçerek başlangıcı 0 bitişi 1’e sabitleyelim.

fixedgeneral.png

Eksenlerin yerini Swap iconu ile değiştiriyorum ve farklı renkler veriyorum.

Ta Taa

efr4gfg46yvc5final.png

Tableau

Tableau Ders 96: Combined Set

Set konusunu bilmeyenleri böyle alalım -> Statik set için buraya ve Dinamik set için buraya tıklayarak set‘ler hakkında detaylı bilgi edinebilirsiniz.

Şimdi bu yazıda en fazla satış yaptığımız ve aynı zamanda en fazla zarar ettiğimiz müşterileri bulacağız.

Birlikte de yapabilmek adına yine Tableau’nun örnek Sample – Superstore verisini kullanacağım.

Öncelikle en fazla satış yapılan 10 müşteri ve en fazla zarar edilen 10 müşteri için aşağıdaki şekilde birer set oluşturuyoruz.

En fazla satış yaptığımız 10 müşteriyi bulmak için;

top10cust

Set‘leri her sheet’te kullanabildiğimiz yeni bir boyut gibi de düşünebilirsiniz.

bysales

Set‘e isim verelim Top 10 Customers by Sales diyorum.

En fazla zarar ettiğimiz 10 müşteriyi bulmak için;

top10cust

Set‘e isim verelim Bottom 10 Customers by Profit diyorum.

bottomcust

Şimdi bu yarattığımız iki set‘i join yapacağız. Yaratılan set‘in üzerine sağ tıklayarak Create Combined Set diyelim.

comb

Combined Set‘e bir isim vererek hazırladığımız set‘leri seçelim ve inner join yapalım.

combinedset

Ok diyelim ve devam edelim.

Setlerin çıktısı iki türlüdür.

Default olarak IN/OUT şeklinde olup direk olarak IN‘in içindeki üyeleri de gösterebilirsiniz.

Combined Set‘i Rows’a atıp bir bakalım. Yanına da ilgili müşteriyi görmek için Customer Name‘i alalım.

Görüldüğü üzere en yüksek satış yapılan ilk 10 müşteriden biri olan Sean Miller aynı zamanda en yüksek zarar edilen ilk 10 müşteriden biriymiş hatta tek kişiymiş.

cmcccmcmc.png

Set‘in çıktısını değiştirmek için ekrana aldığımız set‘in üzerine sağ tıklayarak Show Members in Set diyebiliriz.

qşkdjşlkwqjdklmembersinset.png

Görüldüğü üzere set kavramı oldukça önemli ve hayat kurtarıcıdır. İsterseniz içerisinde  direk olarak koşullar belirtip formüller kullanabilirsiniz.

Tableau

Tableau Ders 95: Filtre içinde Filtre Filtreleme

Tableau filtreler konusuna burada daha önce değinmiştim.

Şimdi biraz daha detay bir konuyu anlatacağım.

Bunun için Tableau Sample – Superstore’un Türkçe verisini kullanıyorum.

Öncelikle aşağıdaki şekilde örnek bir sheet oluşturdum ve burada filtreleri Single Value (List) yani tek seçimli liste olarak kullandım.

4r4r4r4r44r4.png

Filtrenin yanındaki minik ok işaretine tıklayalım. Burada gördüğünüz gibi default olarak All Values in Database seçeneği seçili gelir. Siz burada veri kaynağınızdaki tüm veri değerleriyle de çalışabilirsiniz yalnızca ilgili değerlerle de çalışabilirsiniz.

İlgili değerlerle çalışmak için Only Relevant Values‘u seçelim ve farkı görelim.

lkişkişşkilk5.png

Yalnızca il için bunu seçersek ilçe seçtiğimizde il alanı ilgi değere göre filtrelenecektir. İki alanı da seçtiğimizde birbirini filtreleyebilmesi için ilçe filtresine de tıklayarak Only Relevant Values‘u seçelim.

Artık bir il seçtiğimizde gördüğünüz gibi ilçe filtresinin içerisindeki değerler de filtreleniyor. Aynı şekilde bir ilçe de seçtiğimizde il filtresindeki il değerleri filtrelenecektir.

Muğla seçildiğinde ilçe filtresinin içerisinde yalnızca Muğla iline ait ilçeler görünmektedir.

föcx95ö.png

Peki ya hiyerarşik bir yapıyı filtreye atsaydık? Örneğin kategori ve alt kategori.

Otomatik olarak Mobilya kategorisini seçtiğimizde Mobilya kategorisinin içindeki alt kategorileri görüyoruz.

hie

Çünkü hiyerarşik alanları filtreye koyduğumuzda otomatik olarak All Values in Hierarchy seçeneği ile gelir.

hierarchy

Hepsi bu kadar ♠

Tableau

Tableau Ders 94: Çift Eksenli Harita

Eksenleri birleştirmek için kullandığımız bir teknik vardı: Dual Axis.

Pekala bunu harita için nasıl kullanabiliriz? Dual axis map nasıl yapılır?

Öncelikle herkesin bildiği gibi harita yaratmak için il alanının üzerine sağ tıklayarak Geographic Role -> State/Province diyelim ve ilin üzerine çift tıklayarak haritayı oluşturalım.

Kar alanını Marks -> Color içerisine atarak filled map oluşturalım.

haritaaa.png

Ctrl tuşuna basarak Rows’taki Latitude‘yi yanına kopyalayalım. Böylece alt alta iki tane harita elde etmiş olacağız.

Şimdi illerdeki karlılığı renklerden anlayabiliyoruz. Bu karlılığı hangi segmentlerden ne kadar satış yaptığımıza göre görmek istediğimizi varsayalım.

Marks -> 2. Latitude‘a gelelim ve Pie grafiği seçelim. Segment’i Color‘a; satışı Angle‘ın içine sürükleyip bırakalım.

piemap.png

Bu konuyu Türkiye haritasında göstermek istedim. Burada ilçeleri de göstermek isteseydik ilçenin üzerine sağ tıklayarak coğrafik rolünü City vermemiz gerekirdi. Ardından üzerine çift tıklayarak ilçeleri de harita üzerinde görebilirdik. Şuan çok kalabalık olmaması için ilçeyi eklemiyorum.

Peki elimizde gördüğünüz gibi iki harita var bu iki ekseni üst üste getirmek için Rows’taki ikinci Latitude‘a sağ tıklayarak Dual Axis yapalım.

Ta Taa

dualmap.png

Tableau

Tableau Ders 91: İşlem (Aggregate ve Non Aggregate)

Tableau’nun örnek Sample – Superstore verisi ile New York City ile Texas City arasındaki satış farkını bulalım.

New York City’deki satışı bulmak için aşağıdaki hesaplamayı New York City Sales ismiyle yazalım.

Bunu iki şekilde yazabiliriz.

  • IF [City]="New York City" THEN [Sales] END

ya da

  • IF ATTR([City])="New York City" THEN SUM([Sales]) END

Şuan ilkini kullanacağız.

Eğer bu şekilde yazarsanız:

IF [City]=”New York City” THEN SUM([Sales]) END

size aşağıdaki şekilde bir hata mesajı verecektir.

cannot mix aggregate and non-aggregate comparisons or results in ‘if’ expressions tableau

Bu hatanın sebebi Sales alanını aggregate, City alanını ise non-aggregate kullanmış olmanızdır.

ATTR, SUM, AVG, MIN, MAX, CNT, CNTD vb. gibi fonksiyonlar aggregate‘dir.

Bir hesaplama yazarken hesaplamanızdaki tüm alanların aggregate ya da non-aggregate olması gerekir.

Peki bu bilgiyi verdikten sonra Texas City için satışı bulalım. Hesaplamanın adına Texas City Sales diyelim.

IF [City]="Texas City" THEN [Sales] END

New York City ile Texas City arasındaki satışın farkını almak için aşağıdaki hesaplamayı Sales Diff ismiyle yazalım.

SUM([New York City Sales]) - SUM([Texas City Sales])

İki hesaplanmış alan arasında işlem yaparken alanları aggregate olarak kullanıyoruz.

Eğer tüm bu alanları crosstab şekilde gösterecekseniz diğer alanlardan etkilenmemesi için farkını bulduğumuz alanı aşağıdaki şekilde kullanmanız gerekir.

{ FIXED : SUM([New York City Sales]) - SUM([Texas City Sales]) }

Şuan doğru bir şekilde sonucun geldiğini görebilirsiniz.

işlem

Tableau

Tableau Ders 89: Histogram

Histogram, gruplandırılmış bir veri dağılımının sütun grafiğiyle gösterimidir. Diğer bir ifadeyle, tekrarlı sayılardan oluşan verilerin, uygulanan işlemlerden sonra önce tabloya, tablodan yararlanarak grafiğe aktarılması, yani veri gruplarının grafiğinin dikdörtgen sütunlar halinde gösterilmesidir.

Tableau nasıl yaptığımızı görelim.

Data: Sample – Superstore.

Sales’i Rows’a sürükleyip bırakalım ve sağ üst köşedeki Show Me bölümünü açalım.

hist.png

Bar grafiğin üzerine o aralıktaki satış adetlerini yazalım. Marks alanından Label kutusuna tıklayarak Show mark labels diyelim ve üst üste yazı yazmasına izin vererek Options -> Allow labels to overlap other marks ile tüm sayıları grafiğin üzerinde görelim.

labels.png

Bu Tableau’da otomatik yaptığımız Histogram’dı. Peki manuel yapmak isteseydik nasıl yapacaktık?

Öncelikle satışın üzerine sağ tıklayarak Create -> Bins diyelim.

bins

Daha önce histogram yaratıldığında otomatik bir Sales (bin) yaratıldığı için şuan yarattığımız Sales (bin) 2 şeklinde geliyor. İsmi isterseniz değiştirebilirsiniz.

Size of bins, satış değerlerini kaçar kaçar böleceğimizdir. Bunu 500 yapalım ve bins kavramının ne işe yaradığını daha net görelim.

Burada Min ve Max verideki en az ve en çok satış değerini, Diff bu değerlerin arasındaki farkı ve CntD (count distinct) satış adetlerini gösterir.

f35f32d.png

Bins‘in aralığını 500 verdiğimiz için Sales (bin) 2 ekseninde 0-500-1000… şeklinde ilerlediğini görüyoruz.

Diğer ekseni yaratmak için CNT (Sales)‘i kullanıyoruz çünkü verideki her satış değerini saydırmamız gerekiyor. (50 dolara kaç satış gerçekleşmiş şeklinde düşünebilirsiniz.)

Böylece histogramda o satış aralığında kaç tane o kadar $’dan satış yapıldığını buluyoruz.

Ekrandaki bazı değer aralıklarında hiç satış gerçekleşmemiş boş olan alanları yok etmek için eksenin üzerine sağ tıklayıp Show Missing Values diyoruz.

f4g7

Menünün altında Toolbar‘daki Swap iconu ile eksenlerin yerini değiştirdim.

hi.png

$0-$500 arasında 8832 adet satış değeri, $17000-$17500 arasında 1 adet satış değeri olduğunu görebiliyoruz.

Tableau

Tableau Ders 87: Heatmap

Yapımı oldukça kolay ve hızlı anlaşılır bir grafik tipini göstermek istiyorum: Heatmap

Heatmap‘ler yıllık, aylık, haftalık, günlük vb. bazda incelediğiniz KPI değerlerinizi ilk bakışta analiz etmek için mükemmel bir grafiktir.

Örneğin satışlarınızın en çok arttığı ya da en çok azaldığı zamanı, renk geçişleri sayesinde bir bakışta kolayca saptayabilirsiniz.

Tableau’nun kendi içerisindeki Sample – Superstore verisi ile çalışmaya başlayalım.

Aşağıda gördüğünüz gibi Columns‘a, Order Date’i alalım ve Discrete olan ay olarak kullanalım. Yani Order Date’in üzerine sağ tıklayıp ilk bölümdeki ay’ı seçelim.

Bildiğiniz gibi ilk bölümdeki tarih bilgileri Discrete (mavi) ikinci bölümdeki tarih bilgileri Continuous (yeşil)’dur.

*Discrete bölümü yazı, Contionuous bölümü aynı alanın grafik halini üretir.

fwfr3f4.png

Marks alanındaki Color kutusuna Sales‘i sürükleyip bırakalım.

Artık ilk bakışta satışların 18 Mart günü en yüksek noktaya ulaştığını görebiliriz. Bunu renklendirmeden rahatlıkla anlıyoruz satışlar ne kadar düşükse o kadar koyu turuncu ne kadar yüksekse o kadar koyu mavi görünüyor.

Renk paletinden istediğiniz renk aralığını verebilirsiniz ben buradaki ayarlarla aşağıdaki şekilde biraz oynadım.

Color -> Edit Color -> Advanced diyerek renk merkezini küçülttüm. Böylece mavi tonlarını arttmış oldum.

fwfffr4354

Grafiğin üzerine gelince Tooltip içerisinde yazı çıkmaması için Marks -> Tooltip -> Show Tooltips diyerek buradaki tiki kaldıralım.

Şimdi grafiğin üzerine satış değerlerini yazdıracağız fakat bu yazı yalnızca biz grafiğe bastığımız zaman görünecek.

Bunun için Marks alanındaki Label kutusuna gelerek Show marks labels‘ı seçelim ve ardından Marks to Label bölümünden Highlighted diyelim.

frewf.ş3kl.png

Ta Taa

effefxf43