Power BI DirectQuery

Çağatay Çevik
3 min readJul 4, 2020

--

Selamlar, bu yazımda Power BI üzerinde yer alan DirectQuery veri bağlantısının avantaj ve dezavantajlarını aktarmaya çalışacağım.

Power BI içerisinde en çok karşılaşacağınız veri bağlantı tipi Import & DirectQuery seçenekleri olacaktır. Bu ikisi arasında seçim yapmanız tamamen raporlama faaliyetlerinizin amaçlarına göre şekillenmektedir. İhtiyaçlarınıza ve elinizde bulunan kaynaklara göre seçim yapmalı, deneme imkanına sahip iseniz 2 senaryo üzerinde de geliştirme yapıp test yapmanızı önermekteyim.

DirectQuery

Birçok iş zekası aracında olduğu gibi Power BI üzerinde de veriye kısa zaman aralıklarında erişim imkanı sağlayan bir veriye bağlantı tipi mevcut. En basit haliyle; Power BI üzerinde kullanacağınız verilerin sadece metadata yapısının Power BI üzerinde tutulduğu, verilerin anlık gerçekleşen etkileşimler doğrultusunda veri kaynağına erişildiği bağlantı tipidir. Verilerin tamamı veri kaynağında tutulduğu gibi, rapor üzerinde yapacağınız hesaplamalar da kaynak üzerinde anlık sonuçlar ile size dönecektir.

Dezavantajlar

Time Intelligence

Benim açımdan DirectQuery yapısının en büyük eksikliği kesinlikle DAX üzerinde bulunan Time Intelligence fonksiyonlarının kullanılamıyor olması.

Excel

DirectQuery kullanmak isterseniz malesef ki Excel ile bunu yapamıyorsunuz, birçok işletmenin temel veri kaynaklarından olan bu yapı bir diğer kısıtlamalardan birisi.

Satır Limiti

Premium versiyon kullanmıyorsanız, DirectQuery yapısı size bir milyon satır sınırı koyacaktır. İhtiyaçlarınıza ve veri setinizin büyüklüğüne göre karar noktanız için kritik bir adım olabilir.

* Bu limitin raporda oluşturulan aggregation ve calculation’ların etkilenmediğini resmi kaynağında yazmış, KPI düzeyinde kast etmiş olabilir. Biraz gri bir nokta gibi gözüküyor.

Veri Dönüştürme (PowerQuery)

Verinin dönüştürülme işlemleri DirectQuery tarafından çeşitli kısıtlamalarla karşılaşmakta. PowerQuery içerisindeki fonksiyonlarının tamamını kullanamıyor, değişiklik yapsanız bile bu yapılan değişiklerin desteklenmediği uyarısı ile karşılaşabilirsiniz.

* Bu fonksiyonların yararlanılamadığı durumlarda, ara bir katman olarak verinin düzenleneceği ve raporlanacak düzey için çeşitli transformların yapılacağı tool seçimleri yapılabilir.

Modelleme

DirectQuery yapısının memory üzerinde herhangi bir yapıyı tutmamasından dolayı, calculated tables dediğimiz tabloların yaratılması mümkün değil.

DAX

DAX, Power BI içerisinde en güçlü noktalardan birisi ve raporlarınızın daha efektif şekilde sunulmasına destek oluyor. Ancak DirectQuery yapısı bu noktada da size bir takım sıkıntılar çıkarmakta.

Parent-Child dediğimiz fonksiyonlar DirectQuery içerisinde desteklenmemektedir. (PATH gibi). Bir hiyerarşi yaratmak isterseniz bunu veri kaynağında yapmanız daha faydalı olacaktır.

*Bazı fonksiyonların kullanılamamasının nedeni,VertiPaq engine yapısı tarafından oluşturulamamasıdır.

* VertiPaq: Sütun tabanlı veritabanı motorudur. DAX bu engine ile çalışmaktadır.

Q&A

Power BI üzerinde bulunan Q&A özelliği verilerinizi import bağlantı ile aldığınızda gayet faydalı ve kolay şekilde analizler yapmanızı sağlayan bir yapı iken DirectQuery tarafından desteklenmemektedir.

Veri Değişimi

Eğer veri kaynağınızdaki veriler anlık olarak çok fazla değişiyor ise Power BI üzerinde buna bağlı olarak bir yenileme süresi tanımlamak zorundasınız. Hem raporun yenilenmesi hem de veri kaynağındaki verinin aynı anda yenilenmesi durumnda stabil bir şekilde verilerinize erişemeyeceksiniz. Son güncellenen datayı göstermek için, görsellerin güncellenmesi gerekmektedir.

Avantajlar

Veri Modelinin Büyüklüğü

Veri modelinizdeki verinin boyutunun yüksek olduğu durumlarda import seçeneğine göre daha tavsiye edilen bir yapıdır. Verilerinizin rapor içerisinde gerçekleşen kadarının rapora çekildiği yapı olduğu için tüm veriyi modele almaya çalışmaz.

Verinin Güncel Hali

Eğer kullanıcılar tarafında verinin güncelliği daha önemliyse ve import gibi belirli periyotlarla güncellenmesi yeterli olmuyorsa, DirectQuery kullanıcılar için bir avantaj sağlayacaktır.

--

--