9 Nisan 2017 Pazar

POWER BI ile On-premises(lokal) SQL Server Analysis Service'den Raporlama

On-premises(lokal) Analysis service üzerinden live olarak Power BI ile sorgulama yapabilmek için öncelikle data gateway kurulması gerekiyor. Buradan nasıl kurulduğunu okuyabilirsiniz. 


Kururum sonrası data gateway tanımı yapıyorsunuz. Daha sonra tanımlanan data gateway altına, data source eklenmesi gerekiyor. Bu adımda serverın adı ve bağlantı için kullanacağınız login bilgisi giriliyor. Kullanıcının Analysis service üzerinde administrator rolüne sahip olması gerekiyor. Birden fazla data source eklenebilir.

Kullanıcının admin rolüne sahip olması gerektiği söylendiğinde akla ilk gelen soru rapor kullanacak kişiler admin yetkisini mi sahip olacak oluyor. Hayır, burada kullanılan kullanıcı sadece data source tanımı için ihtiyaç duyulan kullanıcı bilgisidir. Rapor kullanıcıları, Excel'den Analysis service bağlanırken kullandıkları windows authentication gibi, Power BI üzerinden Windows Authentication ile bağlanıyorlar.

Power BI'dan oluşturulan data source kullanmak için sol tarafta yer alan menülerden en alt kısımdaki Get Data'yı tıklamak gerekiyor. SQL Server Analysis Services seçip "connect" dedikten sonra tanımlanan data source'lar listenelecektir.


Listeden ilgili data source'u tıkladığınızda Cube veya Model isimlerinin geldiğini göreceksiniz.

Eğer tıkladığınızda aşağıdaki gibi bir hata almış iseniz, kullanıcınızın "mapping" i yapılmamıştır.

Something went wrong
Technical details:
Activity ID: 00000000-0000-0000-0000-000000000000
Request ID: 6772a169-ea86-7014-0062-37ce4e4e19d7
Date: 2017-04-09 07:29:15Z (UTC)
Error text: The following system error occurred: The user name or password is incorrect.

Cluster URI: https://wabi-west-europe-redirect.analysis.windows.net

Mapping, Power BI service'ine sign in olduğunuz kullanıcı ile Analysis Service'e bağlanmanızı sağlayacak Windows Domain Account'unun arasındaki eşleşmeyi sağlayan mekanizmadır. Power BI'a sign in olurken username@yourcompany.com şeklindeki bir mail adresi kullanıyorsunuz. Local Domain'inde ise Domainname\userid seklinde bir kullanıcınız oluyor. Bunların eşleştirilmesi gerekiyor. Eşleştirirken doğrudan domain username'ini değil, User Principal Name (UPN)  kullanmanız gerekiyor. whoami /upn komutu ile kullanıcınıza ait UPN'i bulabilirsiniz. UPN, username@yourcompany.local gibi bir şey olacaktır.







Mapping yapılması ile ilgili yazı için tıklayınız.

Eğer raporunuz Power BI Desktop ile tasarlayıp publish etmiş iseniz, mapping'ler yapılmamış ise raporunuz görüntülenemeyecektir. Bu durumda aşağıdaki gibi bir görüntü ile karşılaşmanız muhtemeldir.

Data gateway, authentication, UPC ve burada bahsettiğim diğer konular için çok faydasını gördüğüm bu yazıyı okuyabilirsiniz.



20 Şubat 2017 Pazartesi

Power BI ile Excel Verilerinin Unpivot Yapılması

Elinizde belli bir formatta girilmiş anket verilerinin olduğu bir excel dosyası var ve siz bundan bir sunum hazırlamak üzeresiniz. Grafikleriniz, tablolarınız olacak. Soru, cevap ve doldurulan cevapların olduğu ayrı tablolar şeklinde olsa ne iyi olurdu. Fakat veriler Excel'de ve tabular şeklinde girilmiş, matriks olarak görüntülenmekte. Sorulara göre filtreleme yapabilmek için verilerin unpivot yapılması gerekir.
Bu işlem Power BI'ın sunduğu olanaklar ile rahatlıkla yapabilmektedir.


Öncelikle verileri Power BI'a yüklenir.
Import Data
"Edit Queries"  butonu kullanılıp, veriler düzenlemek üzere açılır. Açılan ekrandan Transform menüsü tıklanır.
Verilerin ilk satırının, başlıklar olduğunu belirtmek için "Use First Row AS Headers" tıklanır.



Asıl yapılmak istenen işe sıra gelmiştir. Bunun için "Unpivot Colums" tıklamak yeterli olacaktır.


Transform

İstediğiniz gibi grafik oluşturabileceğiniz verileriniz karşınızda. Kolon başlıklarını uygun isimlerle değiştirmeyi unutmayınız. Gösterime uygun bir grafik ve slicer ekledikten sonra sunuma hazırsınız.


Grafik ve Slicer

 Not: Excel 2016 ile  de yukarıda anlatılanları yapabilirsiniz.

25 Aralık 2016 Pazar

İstatistiksel Kavram Ve Yöntemler

İstatistik, veri analitiğin temellerini oluşturmaktadır. Bu yazıda bunu biraz daha somutlaştırmak amacıyla pratik hayattan örnek sunacağım.

İlk olarak bir alış-veriş sitesi veya mağazasını düşünelim. Örneğin firma erkekler ile kadınlar arasında veya bekar ile evliler arasında alış-veriş alışkanlıklarında farklılık olup olmadıklarını araştırmak istesin. Araştırma sonucunda, elindekileri verileri bilgiye dönüştürmüş olacaktır. Araştırma yapılacakken kullanılacak yöntemler istatistiğe dayanmaktadır. Örneğimizdeki araştırma için kullanılabilecek bir çok algoritma vardır. Algoritmaları kullanmadan önce verilerinizin böyle bir araştırmaya uygun olup olmadığını, verileriniz ne kadar güvenebileceğinizi test etmek gerekir ki; bu testlerde standart sapma, varyasyon, p değer gibi istatistiğe özel kavramlarla karşılaşırsınız.
analyticstraining.com


İkinci örneğimiz yine alış-veriş sitesinden olsun. A ürününü alanların beraberinde hangi ürünleri aldıklarını tespit etmek için de yine veri analitiği çalışması yapmak gerekir. Çalışmayı yaptınız ve genellikle A ürünü ile B ürününün birlikte sepette yer aldığını tespit ettiniz. İkisinin arasında bir ilişki olduğunu görünüyor ama bu ilişki bir nedensellik mi? Yani B’yi alanlar, A’yı aldıkları mı için mi alıyorlar? Bu durumlarda  regresyon ve korelasyon analizleri yapılmaktadır.

Analitik için sıklıkla kullanılan yöntemler için http://www.datasciencecentral.com/profiles/blogs/40-techniques-used-by-data-scientists adresine bakabilirsiniz.


Bir sonraki yazımda, değişken nedir, verilerden değişken nasıl elde edilir, veriler nasıl sınıflanır gibi konulardan bahsetmeyi düşünüyorum.

24 Aralık 2016 Cumartesi

Analitik ve İstatistik

Önceki iki yazımda “R” dan bahsetmiştim. İki yazınında ana teması analitik idi. R nedir diye sorsanız istatistik dili olarak görürsünüz. İşte bu yazımda da veri analitiği ile istatistik arasındaki ilişkiyi anlatmaya çalışacağım.

Günümüzde veri, yeni petrol olarak tanımlanmakta. Elbetteki bu tanım verinin ne kadar kıymetli olduğunu vurgulamak için geliştirilmiş bir söylem. Unutmamak gerekir ki her ne kadar petrola bağımlı bir hayatımız olsa da, biz kullanıcılar için ham petrolun bir anlamı yoktur. Petrol, benzine, motorine ya da gaza dönüştürüldüğünde bizler için kullanılabilir, bu nedenle de para ödeyeceğimiz bir değere sahip olur.


indianexpress.com/about/brain/
Aynı analojiyi kullanmaya devam edelim; petrol veri ise, benzin-gaz ne? Bilgi bizim benzinimiz, gazımız. Peki bilgi ne? Yorumlanmış, işlenmiş, değer katılmış veridir bilgi. Veriyi işleyebilen, değer katabilen tek bir nesne var dünyada, o da beyin. Veriyi işlemek söz konusu olduğunda tüm insanoğlunun sahip olduğu beyinler üç aşağı beş yukarı aynı. 2 kere 2 dört eder herkes bilir ve söyler fakat iş yorumlamaya geldiğinde durum çok değişiyor. Aynı dersi aynı hocadan dinleyen öğrencilerin anladıkları neden birbirleri ile aynı değildir? Beyinleri farklı yorumlamıştır, farklı yorumlamıştır çünkü beyin duyularımızdan aldığı sinyalleri, kendi haznesinde bulunan önceki veriler ile ilişkilendirip, benzerleştirip veya daha farklı yöntemlerle, bilgiye dönüştürmüş ve daha sonraki durumlarda kullanmak üzere belleğe, haznesine atmıştır.

Beyin ile bilgi ile söylenebilecek daha çok şey varken, sıkmamak adına burada kesip özetliyorum; verilerimizi değerli kılabilmemiz için onları bilgiye dönüştürmeliyiz. Bilgiye dönüştürmeyi yaparken matematik biliminden faydalanıyoruz. Olay sadece toplama çıkarmadan ibaret değil. İş zekası denilince beyninizde rakamlardan oluşan raporlar canlanıyor olabilir, matematik dendiğinde de toplama-çıkarma. Kast edilen asla bunlar değil. 2 kere 2’nin dört ettiğini söyleyen herkese zeki insan diyemeyeceğiz gibi, verileri toplayıp özet rakamlarla rapor sunmaya dün belki iş zekası deniliyordu ama bugün diyemeyiz.

Akıllı diye adlandırdığımız sistemler, yorumlayabilen sistemlerdir. Yorumlarken de matematiksel modelleri kullanırlar. Matematik ile nelerin nasıl  modellendiği görmek gerçekten insanı hayrete düşürüyor. Hafızam beni yanıltmıyorsa, yıllar önce okuduğum kitabında, kaybettiğimiz değerli bilim adamı Oktay Sinanoğlu, yelkenlisiyle pasifikte kaybolduğunda, matematik kullanarak kurtulduğu anlatıyordu. Elbette daha farklı, bir çok enteresan örnekler de vardır.

Image Credit: Erin DeWalt
Son söz, eğer yazılımcı iseniz ve R diline ilgi gösteriyorsanız, en azından temel istatistik kavramlarını biliyor ve algoritmalar hakkında da az çok bilgi sahibi olmanız gerekir. Eğer veri analitiği ile ilgileniyorsanız, hiç kaçarınız yok, istatistik öğrenmelisiniz.

6 Kasım 2016 Pazar

Yol Ayrımı; Data Science vs Big Data

Data Science veya  Analitik ve Big Data her ne kadar birlikte anılıyor olsa da, bunlar çok farklı uzmanlık gerektiren alanlar. Her ikisini birlikte aynı zaman diliminde öğrenmeniz olasılıklı değil. Hangisini önce öğreneceğinize karar verip oradan devam etmek daha sağlıklı bir yöntem. Ben Data Science'dan başlamaya karar verdim. Bu konuya geçmeden, önceki yazımın sonunda sorduğum sorulara kısa cevaplar verelim.

http://scraping.pro/nosql/
NoSQL
İlk aklımıza gelen elbette, NO SQL yani SQL olmayan demek. Bunun dışında "Not Only SQL" olarak adlandıranlar var. Tercih yapmayacağım fakat konunun anlaşılması açısından NOSQL
dendiğinde artık "Not Only SQL" olduğunu da bilmekte fayda var.

Unstructured Data
SQL dendiğinde ilk aklımızda canlanan öğe sanırım tablodur. Tablolar da kolonlardan oluşur. Yani bir kalıpları(structure) vardır. Unstructured data dediğimizde, tablo dışında kalan her veriyi anlayabiliriz. Döküman, video, XML, JSON, aklınıza ne gelirse. Bu veriler, tablo içinde tutulsa bile structured olduğu anlamına gelmez, unstructured veridir. Unstructured verinin konumuzla ne alakası var? Hemen cevabı geliyor.

Big Data

Boyutu büyük olan veriye, büyük veri denir. Eğer büyük veriyi yukarıdaki gibi tanımlarsanız, "Benim büyük verim yok, Oracle'da , MS SQL'de verilerimi tutuyorum ve sorgularım da hızlı cevap dönüyor. Ayrıca yeni storage satın aldık, bizi yıllarca götürür." şeklinde karşılık alabilirsiniz. Doğrudur, tekil ya da yeterince seçici numara, telefon gibi kriterler ile sorgulama yapıldığında ilişkisel veri tabanları çok hızlı cevap dönerler(Index'in var olduğunu kabul ediyoruz). Oysaki isim veya tanımın bir kaç karakterinden arama yapıldığında durum değişir.

Milyarlarca kayıttan oluşan bir tablodan sorgularken sorun yaşamazken, içinde bin - iki bin kayıt olan, örneğin ürün tablonuzdan sorgulama yaparken sonuç gelene kadar uzun süre beklemek zorunda kalırsınız. Bu durumda sizin ürün tablonuza büyük veri diyebiliriz. Bir önceki yazımda sorduğum sorunun cevabını verdik. Yani işleyemediğiniz veya işlemekte zorlandığınız veriye büyük veri diyelim, konu daha rahat anlaşılacaktır.

İlişkisel veri tabanlarında, unstructured verileri de tutabilirsiniz. Fakat iş bu verileri sorgulamaya geldiğinde, deveye hendek atlatmak kadar zor bir durumla karşı karşıya kalmışsınız demektir.O halde sorgulama yapacağınız, işlemek istediğiniz unstructured verilere de büyük veri diyebilirim.



5 Kasım 2016 Cumartesi

R'a Giden Yol

Her firma ayakta kalabilmek için para kazanmalı, dolayısıyla parayı kazandığı müşterileri elinde tutmalı, hatta bunlara yenilerini eklemelidir.

www.simplicant.com
Yeni müşteri bulmak hiçte kolay bir iş değildir. Hele de giden bir müşteriyi geri getirmek en zorudur. Bu nedenle mevcut müşterilerin elde tutulması günümüzde daha büyük önem kazanmıştır.

Mevcut müşterinin elde tutulması yönündeki en büyük zorluk ise; gidecek müşterinin bilinememesidir. Giden müşteriyi, yeni müşteriyi, uzun zamandır sizinle olan müşteriyi verilerinizden sorgulayıp görebilirsiniz fakat hangilerinin gitme eğiliminde olduğunu size söyleyebilecek bir sorgulama mevcut değildir.

Buradan sonra devreye "analitik" girer. SPSS, SAS gibi yaygın analitik araçlarını düne kadar sık sık duyduk. Bu araçlar, verdiğimiz örnek üzerinden konuşursak, hangi müşterinin sizi terk edeceğini söyleyemez fakat gitme olasılığını tahminler ve gösterir. Gitmesini önlemek için gerekli aksiyonları almak iş birimindeki kişilere kalmıştır.

rhrv.r-forge.r-project.org

Analitik dünyası öylesine gelişti ki; Data scientist, R, BigData, NOSQL gibi yeni kavramlar duymaya başladık. SPSS, SAS kullananların, bölümde Data scientist(veri bilimciler) barındırmaya
başladıklarını gördük. R ile geliştirme yapılıyor, bu geliştirmeleri uygulamaların içine gömülüp kullanılıyordu.




İş birimleri ile BT birimleri iş birliği içine girmişti. Buna karşın talepler bitmiyor, R'ın yeterli olmadığını, Python kullanacaklarını, BigData ortamlarına, NOSQL'e ihtiyaçları olduğunu söylüyorlardı.

Neydi bu R-Python, BigData-NOSQL? SQL varken niye R veya Python? Trilyonluk kayıtları olan muhasebe verilerini işleyebilirken, milyonluk müşteri verisi neden işlenemiyordu? Diğer bir deyişle, trilyonluk muhasebe verisi "big" değilken, milyonluk müşteri nasıl "big" olabiliyordu?
Bu sorularla hayatımda yeni bir yolculuk başladı.

9 Ekim 2016 Pazar

Data Lake

Film adını andıran Data Lake, veri ile uğraşanların duymaya başladıkları bir kavram. Türkçe karşılığını bilmediğimden dolayı kavrama yazı bozunca Data Lake demeye devam edeceğim ve diğer kavramların Türkçe karşılıkları olsa bile aynı patern'de olması için orjinal isimlerini kullanacağım.

Kimilerine göre Data Warehouse'ın güncel adı, kimilerine göre yeni versiyonu. Oysaki bunların farklı olduğunu görüyoruz. Ayrıldıkları noktalar kullanım yer ve amaçlarındaki farklılıklardan oluşmaktadır. Her ne kadar bu ifadeden Data Lake, Data Warehouse'ın yerini almayacak gibi görünse de kanaatime göre disruption(bozulma anlamında olsa da öldürücü demek daha doğru gibi) bir unsurdur.

Pentaho kurucusu James Dixon'ına göre eğer data mart'ları hijyenik hale getirilip paketlenerek kullanıma hazır hale getirilmiş su şişeleri olarak düşünürsek, Data Lake geniş hacimli doğal su gölleridir. Değişik su kaynaklarından beslenir ve isteyen istediği miktarda alıp kullanır.

Data Warehouse ve Data Mart'lar structured veya tabular tipindeki verilerden oluşurlar. Schema-On-Write olarak tasarlanmışlardır. Verileri önce işlenir sonra yüklenir. Data Lake'ler ise structured olsun olmasın her türlü veriyi tutabilir, yüklenmeden önce verinin işlenmesine, dönüştürülmesine gerek yoktur. Schema-On-Read olarak tasarlanırlar.

Verilerin işlenip kalıplara sokulmasından dolayı Data Warehouse sistemleri büyük veri depolama alanlarına ihtiyaç duyarken, aynı zamanda bu depolama alanları çok pahalı sistemlerdir. Data Lake sistemler ise çok daha ucuz ve verinin gerçek boyutu kadar depolama alanları ile yetinirler.

Çeviklik olarak Türkçe'ye tercüme ettiğimiz Agility, Data Lake sistemlerde hayli yüksekken, Data Warehouse sistemlerin tasarımlarının sabit olmasından dolayı çok düşüktür. Yeniden tasarlanıp konfigürasyonun yapılması gerekir. Oysaki Data Lake sistemler esnektir, istenildiği gibi yeniden konfigürasyonu yapılabilir.

Diğer taraftan Data Lake sistemlerin dezavantajlarını ele alacak olursak, henüz yeni sistemlerdir. Olgunlaşmamış olmasından dolayı pazardaki sektörler tarafından yeterince güvenilir bulunmaması yaygınlaşmasının önündeki en büyük engellerden biri olarak durmaktadır.

Tüm bunların yanında Data Warehouse sistemlerin hedef kitlesi iş birimleri iken Data Lake sistemler, veri birimciler için kullanışlıdır.