CALCULATE ve Sort By Column

CALCULATE fonksiyonuna bir sütun üzerinden filtre -ya da condition- verdiğimizde, ilgili sütun üzerindeki tablolar arası ilişkilerden gelen doğal filtreleri kaldırır ve yazdığımız filtreyi uygular. Verdiğim örneği tekrarlamak gerekirse: Bu metriği [Satışlar] metriği ile bir matrise düşürdüğümüzde aşağıdaki gibi bir görünüm elde ederiz. Arka planda tabular engine yukarıdaki formülü şu şekilde çalıştırır: üzerindeki doğal filtreleri ALL … Devamını Oku…

CALCULATE Fonksiyonuna Giriş

Bu yazı Power BI ve DAX'taki en önemli fonksiyonlardan biri olan CALCULATE 'e giriş yazısı. CALCULATE fonksiyonunun yaptığı birden fazla iş var: Bunlardan biri mevcut "context" i değiştirmek. ** "Context", DAX'taki en önemli kavramlardan biri, bu yazıya ve yazı içinde linkini verdiğim diğer yazılara göz atmanızı tavsiye ederim. CALCULATE ile ilgili birkaç yazıdan sonra context … Devamını Oku…

Gerçek Zamanlı Raporlama

Power BI ile ilişkisel veri tabanlarına bağlanırken iki farklı yöntem kullanabiliriz: Import veya Direct Query. Varsayılan (default) yöntem olan Import'u kullandığımızda veriyi almış oluyoruz ve bu modeli buluta bastığımızda veri de buluta çıkıyor. Bu şekilde hazırlanmış bir modeldeki raporlar tamamen Power BI'ın tabular engine'nini (eski adıyla Vertipaq) kullanır, tüm hesaplamalar bu engine tarafından yapılır, veri … Devamını Oku…

Parametre Kullanımı

Özellikle model geliştirme aşamasındayken ya da mevcut model üzerinde değişiklik yaparken canlı sistem yerine test sistemi üzerinde ve daha az veriyle çalışmayı tercih ediyorum. Bunu yaparken de Power Query 'deki parametre yapısını kullanıyorum. Yakın zamanda Powerbi.com servisine modelinizdeki parametreleri görmenizi ve değiştirmenizi sağlayacak bir "Parameters" bölümü de eklendi. Bir çok farklı amaçla kullanılabilir, örneğin test … Devamını Oku…

FILTER, ALL ve Context Etkileşimi

Önceki yazıda FILTER kullanımına örnekler vermiştim, kısaca özetlemek gerekirse: FILTER, mevcut context'e yeni bir "condition" ekleyerek tabular engine'in gördüğü veri setini daraltır. Kategorideki ürün sayısını ve siyah ürün sayısını hesaplamak üzere aşağıdaki gibi iki metriğimiz var. Her ikisini de bir matrise düşürüyorum, renk için "slicer" ekleyip herhangi bir seçim yapmıyorum. Daha önce yazdığım basit ama … Devamını Oku…

FILTER

FILTER tablo fonksiyonlarından biri, yani döndürdüğü şey bir tablo, aynı zamanda bir iterator. Yani üzerinde çalıştığı tablodaki her bir satır için işlem yapar. Yazımı gayet basit : FILTER'ın sonucunda geri dönen tablo, orijinal tabloyla aynı sütunlara sahip, fakat sadece verilen "condition"'a uyan satırların olduğu tablodur. FILTER, genellikle bizden bir tablo isteyen diğer fonksiyonlarla birlikte kullanılır. … Devamını Oku…

Son Güncelleme Saati

Rapor sayfalarına ve dashboardlara veri setinin en son ne zaman güncellendiğini getirmek "best practice" 'lerden biri. Raporlarınızı gateway üzerinden günde bir kez veya birden fazla "refresh" ediyor olabilirsiniz. Dashboard'a "pin" ettiğiniz görsellerin detay ayarlarını değiştirerek verinin en son ne zaman güncellediğini görebilmek mümkün. Herhangi bir görselin sağ üst köşesindeki üç noktadan bu ayarlara ulaşabilirsiniz: İlgili … Devamını Oku…

Sort by Column

Power BI'da çok göz önünde olduğu halde -yeni başlayanların- genellikle geç farkettiği bir özellikten bahsedelim: Sort by Column. Power BI'daki tüm görsellerde, kullandığınız metrik ve sütunları -normalde- iki türlü sıralayabilirsiniz: Alfabetik ya da nümerik sıralama, A'dan Z'ye, büyükten küçüğe ya da tam tersi. Fakat özellikle tarih tablosunda bu sıralama tipine uymayan sütunlarımız olur genelde; gün … Devamını Oku…

RELATED ve RELATEDTABLE

Daha önce iterator fonksiyonları, yani satır bazlı işlem yapan fonksiyonları SUMX üzerinden anlatırken, bu fonksiyonların tablolar arası ilişkilerin farkında olmadığını belirtmiştim. Fakat farketmelerini sağlayacak komutlar mevcut: RELATED ve RELATEDTABLE. Yazıda kullanacağım modelin tablolar arası ilişkileri ekteki gibi: Power BI'da en sık kullandığımız ilişki tipi One-to-Many: One tarafındaki her bir tekil varlık için, Many tarafındaki tabloda … Devamını Oku…

Hangi Metrikler? Holistik Bir Bakış

** Teknik bir yazı değildir! Bu blogu Microsoft Power BI özelinde, tüm MS iş analitiği ve ilintili uygulamalar üzerine teknik ve becerebildiğim kadar "hardcore" bilgi vermek üzere açtım. Üretim ve operasyon kökenli bir kişi olarak, Power BI benim hayatımı inanılmaz kolaylaştırdı, hatta öylesine kolaylaştırdı ve keyifli hale getirdi ki,  20 yıllık kariyerimin sonunda gayet mutlu … Devamını Oku…

Sayma Fonksiyonları ve Referential Integrity

Power BI modellerinde zaman zaman sütun değerlerini veya tablodaki satır sayılarını sayma ihtiyacı duyarız; bunu yapmamızı sağlayacak DAX fonksiyonları mevcut. Yazıdaki örneklerin tamamında aşağıda resmini verdiğim modeli kullanacağım: 'Ürünler' ve 'Satışlar' tablosu 'ÜrünID' sütunu üzerinden ilişkili, 'Ürünler' tablosunda Ürün ID var, 'Satışlar' tablosunda ise ID ve bir de ID değeri olan bir satır var. 'Ürün … Devamını Oku…

SUM vs SUMX, Aggregators vs Iterators

DAX'taki temel kavramlardan ikisine giriş yapalım: Aggregator'lar ve iterator'lar. Daha önce bahsettiğim gibi DAX'ta hücre kavramı yoktur, tablo ve sütun kavramı vardır, tablolar satır ve sütunlardan oluşur. Tablo, tek bir satırdan ve tek bir sütundan oluşuyor olabilir; bu da bir tablodur. Aggregator fonksiyonlar (SUM, AVERAGE, MIN, MAX …), , sizden tek bir parametre isterler: Üzerinde … Devamını Oku…

Haritalar

Haritalar Power BI 'da bir çok raporun vazgeçilmez parçası; bölgelere göre satışlar, en çok şatış yapan mağazalar, en çok hangi ile sevkiyat yaptık, Türkiye'de veya dünyada hangi şehirlerde varız gibi soruların cevaplarını görsel olarak en iyi veren uygulamalar. Power BI bir Microsoft ürünü olduğu için hazır gelen tüm interaktif haritalar  -ArcGIS hariç- Bing harita servisini … Devamını Oku…

Dataset Çoklamaya Çözüm

Herhangi bir kapsamla ilgili farklı raporlar hazırlarken genelde aynı verilere, hatta aynı metriklere ihtiyaç duyarız. Diyelim, gerçekleşen satışlarla bütçeyi karşılaştırıyorsak fatura satırları, ürün tanımları, müşteri tanımları, satış bölgesi, satış ekibi gibi boyut tanımları, bütçe rakamları, satış-bütçe karşılaştırmasını yaptığımız tüm raporlarda kullanılır, tek fark raporların farklı tasarlanmış olmasıdır. Kimi iş kullanıcısı what if parametreleriyle senaryo analizi … Devamını Oku…

Incremental Refresh

Veri modeliniz çok büyük transaction (fact) veya boyut tabloları içeriyorsa, modeli kurarken sadece değişen verileri nasıl çekeceğinizi baştan tasarlamakta fayda var. Bir kaç milyon satırlık tabloların güncellenmesi genelde sorun yaratmaz, modelin buluta basılmasından sonra "refresh" edilmesi 2-3 dakika sürer.  Fakat 10 milyon satır ve üzeri birden fazla tablonuz varsa modelde, güncelleme "makul" süreleri aşabilir. Power … Devamını Oku…

Dinamik Metrik Seçimi

Kullanışlı raporlar tasarlayabilmek için bazen kullanıcının rapor ekranında hangi filtreleri, hangi değerleri seçtiğini "yakalama" ihtiyacı duyarız. Örneğin aşağıdaki "canlı" raporda, bir "Metrik Seçimi" filtresi (slicer) var: Seçilen metrik hangisi ise, diğer görseller seçilen metriği gösterecek şekilde değişiyor. (Sağ alt köşedeki verev oku tıklayarak raporu tam ekran görebilirsiniz.)  Tek bir rapor sayfasında satışları, maliyetleri ve … Devamını Oku…

Switch

DAX'ın bazı fonksiyonları çok yaratıcı formüller yazmaya imkan sağlıyor: SWITCH fonksiyonu bunlardan biri. Özellikle başka fonksiyonlarla birlikte kullanıldığında, yaptığı iş neredeyse orijinal kullanım amacını aşıyor. MSDN'e göre SWITCH fonksiyonunun orijinal kullanımı şöyle: Yani, (expression)  farklı değerler altında test edip, hangi "condition" doğru ise (true) ise o duruma ait sonucu döndürmemizi sağlıyor. Bu açıdan iç içe … Devamını Oku…

Power BI Eğitimi

Power BI, öğrenmesi çok zor olmayan bir uygulama. Temel kavram ve yetenekleri doğru anlamak kaydıyla elbette. Başarılı bir proje için üç konuda doğru bir teknik altyapıya sahip olmak gerekiyor: Veri ambarı ve ETL aşaması, yani Power Query. Önceki yazılarda belirttiğim gibi PQ, hem Excel, hem Power BI, hem de SSAS'te olan bir teknoloji ve Microsoft … Devamını Oku…

Enable Load, Include In Refresh

Hazır Power Query'den devam ediyorken, performansı etkileyebilecek önemli konulardan birini daha açalım. Normal durumda, Power Query tarafına çektiğiniz, üzerinde işlem yaptığınız her sorgu Power BI tarafına aktarılır. Oysa bazı sorguları sadece ara işlemler yapmak,  transformasyonu kolaylaştırmak, ya da yeni sorgular üretmek için bir "ara aşama sorgusu" olarak kullanırız. Örneğin, farklı para birimlerinde olabilecek bir fatura … Devamını Oku…

Query Folding Nedir?

Power Query ile bir SQL sunucuya bağlanıp veri çekmek için temelde iki farklı yöntem kullanabiliriz: Sunucu ve veritabanı adını yazıp OK diyerek ilgili veritabanındaki tabloları seçebiliriz. "SQL Statement" bölümüne istediğimiz veriyi çekecek SQL cümlesini yazabiliriz. İlk yöntemi kullanarak "Satışlar" tablosunu seçiyorum. Belge para birimi "TL" ve satış tutarı 100'den büyük olan satırları almak için filtre … Devamını Oku…