Sorgu katlama (query folding): dönüşümleri veri kaynağında çalıştırmak
Sözlük

Sorgu katlama (query folding): dönüşümleri veri kaynağında çalıştırmak

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 4 dk okuma

Sorgu katlama, Power Query'de yazdığınız dönüşüm adımlarının veri kaynağının kendi diline çevrilip orada çalıştırılmasıdır. Neden önemli olduğunu ve katlanıp katlanmadığının nasıl anlaşıldığını anlatır.

Bir bakışta

  1. Katlanan adımlar veri Power Query'e gelmeden kaynakta çalışır. Böylece motor yalnız sonucu alır; çoğu zaman yükleme daha hızlı olur.
  2. Üç sonuç vardır: tam, kısmi ve hiç katlanmama. Hangisinin gerçekleştiği bağlayıcıya, kaynağa ve adımlara bağlıdır.
  3. Her kaynak katlamayı desteklemez. Sorgu motoru olmayan CSV ve Excel dosyalarında katlama olmaz.
  4. Kontrol etmek için yerel sorguya bakılır. Adımın sağ tık menüsündeki View Native Query seçeneği, kaynağa giden sorguyu gösterir.

Sorgu katlama nedir?

Power Query'de bir sorgu, uygulanan adımlarla tanımlanır: kaynağa bağlan, sütunları ayır, satırları süz, sırala gibi. Bu adımlar arka planda M betiğine dönüşür. Sorgu çalıştırılırken Power Query, hangi adımları veri kaynağına devredip hangilerini kendi motorunda yapacağını belirler. Adımların kaynağın anlayacağı dile çevrilip kaynakta çalıştırılmasına sorgu katlama denir.

Microsoft belgelerinde amaç şöyle özetlenir: Power Query sorgunun mümkün olduğunca büyük bölümünü veri kaynağında çalıştırmaya, kalanını kendi motorunda değerlendirmeye çalışır. Kaynak bir veritabanıysa süzme ve sütun seçme gibi adımlar SQL sorgusuna dönüşebilir; böylece veritabanı yalnız gereken veriyi döndürür.

Neden önemlidir?

Katlama yoksa Power Query kaynaktan veriyi ham haliyle çeker ve tüm dönüşümleri kendi motorunda yapar. Büyük tablolarda bu, gereksiz veri aktarımı ve uzun yenileme süresi demektir. Katlama varsa veritabanı, kendisi için optimize edilmiş işlemi yapar ve yalnız sonucu iletir. Belgelere göre bu çoğu zaman daha hızlı sorgu çalıştırma sağlar.

Katlama, kaynağın işlem gücünden yararlanmak anlamına da gelir. Güçlü bir veritabanına devredilen süzme, yerel makine ya da hizmet kaynaklarını tüketmez. Büyük veri kaynaklarında ve zamanlanmış yenilemelerde bu fark belirgin biçimde hissedilir.

Katlanma sonuçları ve hangi kaynaklarda olur?

Belgeler üç sonucu ayırır. Tam katlamada tüm dönüşümler kaynakta işlenir ve Power Query motorunda neredeyse işlem kalmaz. Kısmi katlamada kaynak yalnız çevrilebilen dönüşümleri yapar, kalanı motor üstlenir. Katlama olmadığında kaynak ham veriyi verir ve her dönüşüm motorda çalışır.

Katlama bağlayıcıya ve kaynağa bağlıdır. SQL Server ve OData akışı gibi sorgu işleme yeteneği olan yapılandırılmış kaynaklar genellikle katlamayı destekler. CSV ve Excel dosyaları gibi sorgu motoru olmayan kaynaklar desteklemez; bu dosyalarda tüm işlem Power Query motorunda yapılır.

Şekil 1

Katlama sonucu, adımların kaynakta çalışıp çalışmadığına bağlıdır

Dönüşüm adımları kaynakta mı çalışıyor?
  1. Tüm adımlar kaynak sorgusuna çevrilebiliyorTam katlamaKaynak her dönüşümü işler; motorda minimum işlem kalır.
  2. Yalnız bazı adımlar çevrilebiliyorKısmi katlamaÇevrilebilen adımlar kaynakta, kalanlar motorda çalışır.
  3. Kaynak sorgu işleyemiyor ya da adımlar çevrilemiyorKatlama yokVeri ham gelir, tüm dönüşümler motorda yapılır.
Kaynak: Microsoft Learn: Power Query sorgu değerlendirme ve katlamaMindset Institute

Katlanıp katlanmadığı nasıl anlaşılır?

Belgelere göre kontrol için birkaç yol vardır. Power Query Online'da uygulanan adımların yanında katlama göstergeleri bulunur ve sorgu planı hangi işlemlerin kaynakta hangilerinin motorda çalıştığını gösterir. Bu iki özellik yalnız Power Query Online'da bulunur.

Bağlayıcı destekliyorsa View Native Query ya da View data source query seçeneği kaynağa giden gerçek sorguyu gösterir. Seçenek bir adımın üzerinde sağ tıklanarak bulunur; seçenek soluk görünüyorsa o adım katlanmıyor olabilir. Kullandığınız Power BI sürümünde menü adının Türkçesi değişebilir; aradığınız şey yerel sorguyu görüntüle işlevidir. Kontrolü her adımda yapmak yerine, süzme ve sütun seçme gibi veri hacmini azaltan adımlardan sonra yapmak yeterlidir.

Katlamayı korumak için pratik yaklaşım

Genel yaklaşım, veri hacmini azaltan adımları sorgunun başında tutmaktır. Satır süzme, gereksiz sütunları kaldırma ve basit birleştirmeler kaynağa devredilebilir. Katlanamayan bir adım araya girdiğinde, ondan sonra gelen adımlar genellikle motorda çalışır; bu yüzden pahalı ve katlanamayan dönüşümleri sona bırakmak hacim etkisini sınırlar.

Bir sipariş tablosunu düşünün: önce yalnız gerekli sütunlar alınır, sonra tarih aralığına göre süzülür, ardından gerekirse özel hesaplamalar yapılır. Bu sırada ilk iki adım kaynakta kalır ve motor az veriyle çalışır. Sıra tersine çevrilirse süzme yapılmadan önce tüm tablo çekilebilir. Her adımın katlanıp katlanmadığı bağlayıcıya göre değiştiği için varsayım yerine kontrol gerekir.

Sık yapılan hatalar

  • Katlama olduğunu varsaymak ve hiç kontrol etmemek
  • Dosya tabanlı kaynaklardan katlama beklemek
  • Katlanmayan bir adımı sorgunun başına koyup ardından gelen tüm adımların kaynakta çalışacağını sanmak
  • Katlamayı yalnız hız konusu görmek; aynı zamanda kaynağa yük ve aktarılan veri miktarını belirler
  • Katlanan sorguyu tek bir adımda değiştirip kontrol etmeden bırakmak

Büyük bir modelde yenileme yavaşsa ilk bakılacak yerlerden biri hangi adımın katlamayı bozduğudur. Çoğu zaman tek bir adımı sona taşımak sorunu çözer.

Mindset programlarında sorgu katlama nerede çalışılır?

Uygulamalı Power BI ile Veri Analitiği ve Görselleştirme Sertifika Programı, Power BI ile veri yığını entegrasyonu modülünde kaynaklara bağlanmayı ve veriyi hazırlamayı ele alır. Katlama, bu modülde çalışılan sorgu ve kaynak mantığının performans boyutudur; büyük veri kaynaklarıyla çalışan raporlama uzmanları için doğrudan karşılığı vardır.

İlgili Mindset programı

Uygulamalı Power BI ile Veri Analitiği ve Görselleştirme Sertifika Programı

Sık sorulanlar

Sık sorulan sorular

Sorgu katlama Excel ve CSV dosyalarında çalışır mı?

Çalışmaz. Microsoft belgelerine göre CSV ve Excel dosyaları gibi sorgu motoru olmayan kaynaklar katlamayı desteklemez. Bu kaynaklarda tüm dönüşümler Power Query motorunda yapılır. Katlamadan yararlanmak için veriyi sorgu işleyebilen bir veritabanına almak gerekir.

Sorgu katlama her zaman daha hızlı mıdır?

Çoğu zaman daha hızlıdır ama garanti değildir. Belgeler katlamanın genellikle daha hızlı çalıştırma sağladığını söyler. Kaynak yavaşsa ya da çevrilen sorgu verimsizse fark olmayabilir. Bu yüzden katlamayı kontrol etmek ve gerçek yenileme süresini ölçmek gerekir.

Katlandığını nasıl anlarım?

Bir adıma sağ tıklayıp View Native Query seçeneğine bakılır. Seçenek erişilebilirse ve kaynağa giden sorguyu gösteriyorsa o adım katlanıyordur. Power Query Online'da ayrıca katlama göstergeleri ve sorgu planı kullanılabilir. Bağlayıcıya göre seçenek hiç sunulmayabilir.

Kısmi katlama ne demektir?

Sorgunun bir bölümünün kaynakta, kalan bölümünün Power Query motorunda işlenmesi demektir. Kaynak yalnız çevrilebilen dönüşümleri yapar. Bu durum yaygındır ve her zaman sorun değildir; önemli olan veri hacmini azaltan adımların kaynakta kalıp kalmadığıdır.

Sorgu katlama ile artımlı yenileme aynı şey midir?

Değildir. Sorgu katlama dönüşümleri kaynağa devretmektir. Artımlı yenileme ise büyük bir modelde yalnız yeni veya değişen veriyi yenilemektir. İkisi birbirini destekleyebilir ama ayrı kavramlardır; artımlı yenileme ayrıca kurulum gerektirir.

Sorgu Katlama (Query Folding) Nedir? Power Query