Power BI'da çalışırken her zaman daha hızlı ve daha etkili analizler yapmak isteriz, değil mi? İşte tam da bu noktada, sorguyu kaynağa döndürme (Query Folding) özelliği devreye giriyor. Power Query'de yaptığınız dönüşümlerin SQL sorguları gibi doğrudan veri kaynağında işlenmesini sağlar. Bu sayede sadece zamandan kazanmakla kalmaz, aynı zamanda daha az veri aktarımıyla modeli hızlı yükler ve sisteminizin performansını artırırsınız. Query Folding, özellikle büyük veri setleriyle çalışırken etkili bir analiz süreci için önemli bir avantaj sunar.

Direct Query modunda bu özellik özellikle kritiktir, çünkü sorgular veri kaynağına her kullanıcı etkileşiminde gönderilir ve dönüşümlerin kaynakta optimize edilmesi, rapor performansı için hayati öneme sahiptir. Query Folding olmadığında dönüşümler Power BI tarafında işlendiği için raporlar yavaşlar ve sunucu yükü artar.

Basitçe söylemek gerekirse, sorguyu kaynağa döndürme (Query Folding), Power Query'de yaptığınız dönüşüm işlemlerinin veri kaynağı üzerinde çalışmasını sağlar. Böylece, dönüşümler Power BI’a veri getirilmeden önce, kaynağın işlem gücünden faydalanılarak gerçekleştirilir. Bu sayede yalnızca ihtiyacınız olan veriler çekilir ve veri aktarımı optimize edilir. Bunun avantajları ise oldukça nettir:

  • - Daha hızlı veri yükleme
  • - Gereksiz veri taşınmasından kaçınma
  • - Veritabanınızın işlem gücünden faydalanma
  • - Power BI’ın performansını artırma

Hangi Veri Kaynaklarında Çalışır?

Sorguyu kaynağa döndürme, SQL tabanlı ve bazı modern veri kaynaklarıyla uyumludur. Ama her kaynak desteklemez. İşte bu özelliğin desteklendiği ve desteklenmediği kaynakların kısa bir özeti:

Destekleyen Veri Kaynakları

Eğer verileriniz şu kaynaklarda saklanıyorsa, sorguyu kaynağa döndürme özelliğinden faydalanabilirsiniz:

  • İlişkisel Veritabanları: SQL Server, PostgreSQL, Amazon Redshift, SAP HANA
  • Bulut Tabanlı Veri Kaynakları: Google BigQuery, Dataverse (Gelişmiş hesaplama etkinleştirildiğinde)
  • OLAP Küpleri: SAP BW, Analysis Services (Tabular ve Multidimensional modları).

Desteklemeyen Veri Kaynakları

Ne yazık ki bazı kaynaklarda bu özellik çalışmaz. Örneğin:

  • Düz Dosyalar: CSV, Excel, Text dosyaları.
  • Web Tabanlı Kaynaklar: Web sayfaları, JSON dosyaları.

Bu kaynaklarla çalışıyorsanız, dönüşümler Power Query’nin içinde yapılır ve veri kaynağının gücünden faydalanamazsınız.

Sorguyu Kaynağa Döndürme’yi Desteklemeyen İşlemler

Power Query'deki bazı dönüşüm adımları sorguyu kaynağa döndürme özelliğini desteklemez. Eğer bu işlemleri uygularsanız, Query Folding devre dışı kalır ve dönüşümler Power Query’nin kendi işlem motorunda gerçekleştirilir. İşte Query Folding’i desteklemeyen işlemlere bazı örnekler:

1. Özel Sütun Ekleme (Add Custom Column): Örneğin, bir sütunda metin birleştirme gibi özel bir hesaplama yaparsanız.

2. Metin Dönüşümleri: Büyük/küçük harf değiştirme (Her kelimenin ilk harfini büyütme), metin birleştirme veya bölme gibi işlemler.

3. Tarih Hesaplamaları: Özel tarih formatları oluşturmak veya tarihler üzerinde karmaşık hesaplamalar yapmak.

4. Birden Fazla Kaynağı Birleştirme (Merge Queries): Farklı veri kaynaklarından gelen tabloları birleştirme işlemleri.

5. Veri Türü Dönüşümleri: Bazı veri türü dönüşümleri (örneğin, karmaşık hesaplamalarla yapılan dönüşümler).

Query Folding’i Kaybetmemek İçin Dikkat Edilmesi Gerekenler

Query Folding'i kaybetmemek için dönüşümleri sıralarken şu stratejiyi izleyin:

  • Desteklenen dönüşümleri önce yapın: Örneğin, filtreleme, sıralama veya sütun seçme gibi işlemleri dönüşüm adımlarınızın en başına koyun.
  • Desteklenmeyen işlemleri sona bırakın: Örneğin, özel sütun ekleme veya metin manipülasyonlarını dönüşüm adımlarınızın sonuna koyun.

Bu stratejiyle, Query Folding’in avantajlarından mümkün olduğunca faydalanabilirsiniz.

Neden Önemli?

Tamam, sorguyu kaynağa döndürme güzel bir özellik ama neden bu kadar önemli? İşte size birkaç sebep:

  1. Performans: Veritabanları genelde Power BI’dan çok daha güçlüdür. Dönüşümleri kaynağa yaptırarak bu gücü kullanabilirsiniz.
  2. Hız: Sadece ihtiyacınız olan veriyi çektiğiniz için Power BI daha hızlı çalışır.
  3. Verimlilik: Özellikle büyük veri setleriyle çalışıyorsanız, gereksiz veri işlemenin önüne geçersiniz.

Nasıl Uygulanır?

Sorguyu kaynağa döndürmeyi kullanarak bir SQL Server veritabanından veri çektiğimizi düşünelim. İşte adım adım nasıl yapılacağı:

1. Veri Kaynağına Bağlanma:

  • Power BI'da "Veri Al" (Get Data) seçeneğini tıklayın.
  • Veri kaynağı olarak SQL Server’ı seçin ve bağlantı bilgilerinizi girin.

2. Power Query Editörünü Açma:

  • Veriler içe aktarıldıktan sonra "Dönüştür Transform Data seçeneğine tıklayarak Power Query editörünü açın.

3. Dönüşümler Ekleyin:

Örneğin, bir tarih sütununa filtre uygulayın:

    • Sadece ihtiyacınız olan sütunları seçin:

4. Sorguyu Kaynağa Döndürmeyi Kontrol Edin:

  • "Uygulanan Adımlar" (Applied Steps) bölümündeki herhangi bir adıma sağ tıklayın.
  • "Yerel Sorguyu Görüntüle" (View Native Query) seçeneğini seçin. Eğer bu seçenek aktifse, sorgu kaynağa döndürülmüş demektir SQL sorgusunu inceleyerek dönüşümlerin veri kaynağında nasıl işlendiğini görebilirsiniz.

 

Value.NativeQuery ile Tam Kontrol

Power Query’nin query folding yetenekleri çok güçlü olsa da, bazen SQL sorgularını manuel olarak yazmanız gerekebilir. İşte burada Value.NativeQuery devreye giriyor. Bu fonksiyon sayesinde kendi SQL sorgularınızı yazabilir, hatta parametreler ekleyerek sorguyu dinamik hale getirebilirsiniz.

Örnek Kullanım: Parametreli Sorgu

Bu örnekte:

  • MinSales adında bir parametre tanımlıyoruz.
  • SQL sorgusunu manuel olarak yazıyoruz ve parametreyi sorguya bağlıyoruz.
  • EnableFolding=true parametresiyle query folding’in devam etmesini sağlayabiliyoruz.

Value.NativeQuery’nin Avantajları:

  • Tam kontrol sağlarsınız; SQL sorgusunu istediğiniz şekilde özelleştirebilirsiniz.
  • Query folding desteğini koruyarak performansınızı optimize edebilirsiniz.
  • Dinamik sorgular oluşturabilir, kullanıcı girdilerine göre sonuçları güncelleyebilirsiniz.

Sonuç

Power BI’da verimli bir şekilde çalışmak istiyorsanız, sorguyu kaynağa döndürme özelliğini mutlaka kullanmayı öğrenmelisiniz. Veritabanlarının işlem gücünden faydalanarak dönüşümlerinizi kaynağa yakın tutabilir, raporlarınızı hızlandırabilirsiniz. Ayrıca, View Native Query ve Value.NativeQuery gibi araçlarla sorgularınızı kontrol edip özelleştirerek performansınızı bir üst seviyeye taşıyabilirsiniz.

Bu özellikler sayesinde Power BI sadece bir raporlama aracı olmaktan çıkıyor ve güçlü bir analiz platformuna dönüşüyor.

Kaynaklar: https://learn.microsoft.com/en-us/power-query/native-query-folding

                  https://learn.microsoft.com/en-us/power-query/query-folding-examples