Share via


Sorguyu kaynağa döndürme örnekleri

Bu makalede, sorguyu kaynağa döndürmeye yönelik üç olası sonucun her biri için bazı örnek senaryolar sağlanır. Ayrıca sorgu katlama mekanizmasından en iyi şekilde nasıl faydalanabileceğinize ve bunun sorgularınızda sahip olabileceği etkiye ilişkin bazı öneriler içerir.

Senaryo

Azure Synapse Analytics SQL veritabanı için Wide World Importers veritabanını kullanarak, Power Query'de tabloya fact_Sale bağlanan ve son 10 satışı yalnızca aşağıdaki alanlarla alan bir sorgu oluşturmakla görevlendirildiğinizi düşünün:

  • Satış Anahtarı
  • Müşteri Anahtarı
  • Fatura Tarih Anahtarı
  • Açıklama
  • Miktar

Not

Tanıtım amacıyla, bu makalede Wide World Importers veritabanını Azure Synapse Analytics'e yükleme öğreticisinde özetlenen veritabanı kullanılır. Bu makaledeki fact_Sale temel fark, tablonun toplam 3.644.356 satırla yalnızca 2000 yılına ait verileri tutmasıdır.

Sonuçlar, Azure Synapse Analytics belgelerindeki öğreticiyi izleyerek elde ettiğiniz sonuçlarla tam olarak eşleşmese de, bu makalenin amacı sorgularınızda sorgu katlamanın sahip olabileceği temel kavramları ve etkiyi göstermektir.

Wide World Importers Azure Synapse Analytics veritabanının fact_Sale tablosundan türetilen örnek çıktı tablosu.

Bu makalede, farklı sorgu katlama düzeyleriyle aynı çıkışı elde etmenin üç yolu gösterilmektedir:

  • Sorguyu katlama yok
  • Kısmi sorguyu katlama
  • Tam sorguyu katlama

Sorguyu kaynağa döndürme örneği yok

Önemli

Yalnızca yapılandırılmamış veri kaynaklarını kullanan veya CSV veya Excel dosyaları gibi işlem altyapısı olmayan sorguların sorgu katlama özelliği yoktur. Bu, Power Query'nin Power Query altyapısını kullanarak tüm gerekli veri dönüşümlerini değerlendirdiğini gösterir.

Veritabanınıza bağlandıktan ve tabloya gittikten fact_Sale sonra, Giriş sekmesinin Satırları azalt grubunun içinde bulunan Alt satırları tut dönüşümünü seçersiniz.

Giriş sekmesinin Satırları azalt grubunun içinde alt satır dönüşümünü bulun.

Bu dönüşümü seçtikten sonra yeni bir iletişim kutusu görüntülenir. Bu yeni iletişim kutusunda, saklamak istediğiniz satır sayısını girebilirsiniz. Bu durum için 10 değerini girin ve Tamam'ı seçin.

Alt satırları koru iletişim kutusunun içine 10 değerini girin.

İpucu

Bu durumda, bu işlemin gerçekleştirilmesi son on satışın sonucunu verir. Çoğu senaryoda, tabloya sıralama işlemi uygulayarak hangi satırların son kabul edildiğini tanımlayan daha açık bir mantık sağlamanızı öneririz.

Ardından, Giriş sekmesinin Sütunları yönet grubunda bulunan Sütunları seç dönüşümünü seçin. Ardından, tablonuzdan saklamak istediğiniz sütunları seçebilir ve kalan sütunları kaldırabilirsiniz.

Sorguyu katlamama örneği için Sütun seç dönüşümünü seçme.

Son olarak, Sütun seç iletişim kutusunda Sale Key, , Customer Key, Invoice Date Key, Descriptionve Quantity sütunlarını ve ardından Tamam'ı seçin.

Sorgu katlama örneği için Satış Anahtarı, Müşteri Anahtarı, Fatura Tarihi Anahtarı, Açıklama ve Miktar sütunlarını seçme.

Aşağıdaki kod örneği, oluşturduğunuz sorgunun tam M betiğidir:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Kept bottom rows" = Table.LastN(Navigation, 10),
  #"Choose columns" = Table.SelectColumns(#"Kept bottom rows", {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"})
in
  #"Choose columns""

Sorguyu katlama yok: Sorgu değerlendirmesini anlama

Power Query düzenleyicisindeki Uygulanan adımlar altında, En altta tutulan satırlar ve Sütunları seç için sorgu katlama göstergelerinin, veri kaynağının dışında veya başka bir deyişle Power Query altyapısı tarafından değerlendirilecek adımlar olarak işaretlendiğini göreceksiniz.

Sorgu için uygulanan adımlar bölmesi; alt satırlar tutuldu ve Diğer sütunlar kaldırıldı adımlarını gösteren sorgu katlama göstergeleri.

Sorgunuzun son adımına (Sütunları seç adlı) sağ tıklayabilir ve Sorgu planını görüntüle seçeneğini belirleyebilirsiniz. Sorgu planının amacı, sorgunuzun nasıl çalıştırıldığından ayrıntılı bir görünüm sağlamaktır. Bu özellik hakkında daha fazla bilgi edinmek için Sorgu planı'na gidin.

Oluşturulan sorgu için, ikisi Power Query altyapısı tarafından değerlendirilecek düğümleri temsil eden bir dikdörtgende yer alan birden çok düğüm içeren sorgunun sorgu planı.

Önceki görüntüdeki her kutuya düğüm adı verilir. Düğüm, bu sorguyu gerçekleştirmek için işlem dökümünü temsil eder. Yukarıdaki örnekteki SQL Server gibi veri kaynaklarını temsil eden düğümler ve Value.NativeQuery düğüm, sorgunun hangi bölümünün veri kaynağına yüklendiğini temsil eder. Bu durumda Table.LastNTable.SelectColumns ve önceki görüntüde dikdörtgende vurgulanan diğer düğümler Power Query altyapısı tarafından değerlendirilir. Bu iki düğüm eklediğiniz iki dönüşümü temsil eder: En alt satırlar tutuldu ve Sütunları seçin. Düğümlerin geri kalanı, veri kaynağı düzeyinde gerçekleşen işlemleri temsil eder.

Veri kaynağınıza gönderilen tam isteği görmek için Düğümdeki ayrıntıları görüntüle'yi Value.NativeQuery seçin.

Veritabanındaki fact_Sale tablosundaki tüm alanların ve kayıtların isteğini temsil eden Value.NativeQuery içinde bulunan SQL Deyimi.

Bu veri kaynağı isteği, veri kaynağınızın yerel dilindedir. Bu durumda, bu dil SQL'dir ve bu deyim tablodaki tüm satırlar ve alanlar fact_Sale için bir isteği temsil eder.

Bu veri kaynağı isteğine danışmak, sorgu planının iletmeye çalıştığı hikayeyi daha iyi anlamanıza yardımcı olabilir:

  • Sql.Database: Bu düğüm veri kaynağı erişimini temsil eder. Bağlan veritabanına gönderir ve özelliklerini anlamak için meta veri istekleri gönderir.
  • Value.NativeQuery: Sorguyu gerçekleştirmek için Power Query tarafından oluşturulan isteği temsil eder. Power Query, yerel sql deyimindeki veri isteklerini veri kaynağına gönderir. Bu durumda, tablodaki fact_Sale tüm kayıtları ve alanları (sütunlar) temsil eder. Tablo milyonlarca satır içerdiğinden ve ilgi alanı yalnızca son 10 satırda olduğundan bu senaryo için bu durum istenmeyen bir durumdur.
  • Table.LastN: Power Query tablodan fact_Sale tüm kayıtları aldıktan sonra, tabloyu filtrelemek ve yalnızca son 10 satırı tutmak için Power Query altyapısını kullanır.
  • Table.SelectColumns: Power Query düğümün çıkışını Table.LastN kullanır ve bir tablodan saklamak istediğiniz belirli sütunları seçen adlı Table.SelectColumnsyeni bir dönüşüm uygular.

Değerlendirme için bu sorgunun tablodaki tüm satırları ve alanları indirmesi fact_Sale gerekiyordu. Bu sorgunun Power BI veri akışlarının standart bir örneğinde işlenmesi ortalama 6 dakika 1 saniye sürdü (verilerin değerlendirilmesi ve veri akışlarına yüklenmesi için gerçekleştirilir).

Kısmi sorgu katlama örneği

Veritabanına bağlandıktan ve tabloya gittikten fact_Sale sonra, tablonuzdan saklamak istediğiniz sütunları seçerek başlarsınız. Giriş sekmesinden Sütunları yönet grubunun içinde bulunan Sütunları seç dönüşümünü seçin. Bu dönüşüm, tablonuzdan saklamak istediğiniz sütunları açıkça seçmenize ve kalan sütunları kaldırmanıza yardımcı olur.

Kısmi sorguyu katlama örneği için Sütunları seçin dönüşümünü seçme.

Sütun seç iletişim kutusunun Sale Keyiçinde , , Customer Key, Invoice Date Key, Descriptionve Quantity sütunlarını ve ardından Tamam'ı seçin.

Kısmi sorgu katlama örneği için Satış Anahtarı, Müşteri Anahtarı, Fatura Tarihi Anahtarı, Açıklama ve Miktar sütunlarını seçme.

Şimdi tabloyu, tablonun en altında son satışa sahip olacak şekilde sıralayacak bir mantık oluşturacaksınız. Sale Key Birincil anahtar ve tablonun artımlı dizisi veya dizini olan sütunu seçin. Sütunun bağlam menüsünden yalnızca bu alanı artan düzende kullanarak tabloyu sıralayın.

Otomatik filtre alanı bağlam menüsünü kullanarak tablonun Satış Anahtarı alanını artan düzende sıralayın.

Ardından, tablo bağlam menüsünü seçin ve Alt satırları koru dönüşümünü seçin.

Tablonun bağlam menüsünün içinde Alt satırları tut seçeneğini belirleyin.

Alt satırları koru alanına 10 değerini girin ve Tamam'ı seçin.

Tablonun yalnızca alt on satırını tutmak için giriş değeri olarak 10 değerinin girilmiş olduğu Alt satırları koru iletişim kutusu.

Aşağıdaki kod örneği, oluşturduğunuz sorgunun tam M betiğidir:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
  #"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Ascending}}),
  #"Kept bottom rows" = Table.LastN(#"Sorted rows", 10)
in
  #"Kept bottom rows"

Kısmi sorgu katlama örneği: Sorgu değerlendirmesini anlama

Uygulanan adımlar bölmesini denetlediğinizde, sorgu katlama göstergelerinin eklediğiniz son dönüşümün, Kept bottom rowsveri kaynağının dışında veya başka bir deyişle Power Query altyapısı tarafından değerlendirilecek bir adım olarak işaretlendiğini gösterdiğine dikkat edin.

Sorgunun uygulanan adımlar bölmesi, Sorguyu katlama göstergeleriyle birlikte, En altta tutulan satırların veri kaynağının dışında değerlendirilecek bir adım olarak işaretlendiğini gösterir.

Sorgunuzun son adımı olan adlı Kept bottom rowsadıma sağ tıklayabilir ve sorgunuzun nasıl değerlendirilebileceğini daha iyi anlamak için Sorgu planı seçeneğini belirleyebilirsiniz.

Bir dikdörtgen içinde gösterilen Table.LastN düğümlerinin veri kaynağı tarafından değil Power Query altyapısı tarafından değerlendirilecek bir düğüm olduğu birden çok düğümü gösteren sorgu planı.

Önceki görüntüdeki her kutuya düğüm adı verilir. Düğüm, sorgunuzun değerlendirilebilmesi için gerçekleşmesi gereken her işlemi (soldan sağa) temsil eder. Bu düğümlerden bazıları veri kaynağınızda değerlendirilirken, alt satırlar tutuldu adımıyla temsil edilen düğümü Table.LastNgibi diğerleri Power Query altyapısı kullanılarak değerlendirilir.

Veri kaynağınıza gönderilen tam isteği görmek için Düğümdeki ayrıntıları görüntüle'yi Value.NativeQuery seçin.

Veritabanındaki fact_Sales tablosundan istenen alanların Satış Anahtarı alanına göre artan düzende sıralandığı, tüm kayıtlar için bir isteği temsil eden Value.NativeQuery içindeki SQL Deyimi.

Bu istek, veri kaynağınızın yerel dilindedir. Bu durumda, bu dil SQL'dir ve bu deyim tüm satırlar için bir isteği temsil eder ve yalnızca tablodan fact_Sale istenen alanlar alan tarafından Sale Key sıralanır.

Bu veri kaynağı isteğine danışmak, tam sorgu planının iletmeye çalıştığı hikayeyi daha iyi anlamanıza yardımcı olabilir. Düğümlerin sırası, veri kaynağınızdan verileri isteyerek başlayan sıralı bir işlemdir:

  • Sql.Database: Bağlan veritabanına gönderir ve özelliklerini anlamak için meta veri istekleri gönderir.
  • Value.NativeQuery: Sorguyu gerçekleştirmek için Power Query tarafından oluşturulan isteği temsil eder. Power Query, yerel sql deyimindeki veri isteklerini veri kaynağına gönderir. Bu durumda, veritabanındaki tablodan fact_Sale yalnızca istenen alanlar alana göre artan düzende Sales Key sıralanmış olarak tüm kayıtları temsil eder.
  • Table.LastN: Power Query tablodan fact_Sale tüm kayıtları aldıktan sonra, tabloyu filtrelemek ve yalnızca son 10 satırı tutmak için Power Query altyapısını kullanır.

Bu sorgunun değerlendirmesi için tüm satırları ve yalnızca gerekli alanları tablodan indirmesi fact_Sale gerekiyordu. Power BI veri akışlarının standart bir örneğinde işlenmesi ortalama 3 dakika 4 saniye sürdü (verilerin değerlendirilmesi ve veri akışlarına yüklenmesi için geçerlidir).

Tam sorguyu katlama örneği

Veritabanına bağlandıktan ve tabloya gittikten fact_Sale sonra, tablonuzdan saklamak istediğiniz sütunları seçerek başlayın. Giriş sekmesinden Sütunları yönet grubunun içinde bulunan Sütunları seç dönüşümünü seçin. Bu dönüşüm, tablonuzdan saklamak istediğiniz sütunları açıkça seçmenize ve kalan sütunları kaldırmanıza yardımcı olur.

Tam sorguyu katlama örneği için Sütunları seçin dönüşümünü seçme.

Sütunları Sale Keyseçin bölümünde , , Customer Key, DescriptionInvoice Date Keyve Quantity sütunlarını ve ardından Tamam'ı seçin.

Tam sorgu katlama örneği için Satış Anahtarı, Müşteri Anahtarı, Fatura Tarihi Anahtarı, Açıklama ve Miktar sütunlarını seçme.

Şimdi tabloyu, tablonun en üstünde son satışları olacak şekilde sıralayacak bir mantık oluşturacaksınız. Sale Key Birincil anahtar ve tablonun artımlı dizisi veya dizini olan sütunu seçin. Tabloyu yalnızca bu alanı sütunun bağlam menüsünden azalan düzende kullanarak sıralayın.

Bağlam menüsünü kullanarak tablonun Satış Anahtarı alanını azalan düzende sıralayın.

Ardından, tablo bağlam menüsünü seçin ve üst satırları koru dönüşümünü seçin.

Tablo bağlam menüsünün içinde üst satırları koru seçeneği.

Üst satırları koru alanına 10 değerini girin ve Tamam'ı seçin.

Tablonun yalnızca ilk on satırını tutmak için giriş değeri olarak girilen on değeriyle en üst satırları koru iletişim kutusu.

Aşağıdaki kod örneği, oluşturduğunuz sorgunun tam M betiğidir:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
  #"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Descending}}),
  #"Kept top rows" = Table.FirstN(#"Sorted rows", 10)
in
  #"Kept top rows"

Tam sorgu katlama örneği: Sorgu değerlendirmesini anlama

Uygulanan adımlar bölmesini denetlerken, sorguyu katlama göstergelerinin eklediğiniz sütunları seç, Sıralanmış satırlar ve En üstteki satırları tut gibi dönüşümlerin veri kaynağında değerlendirilecek adımlar olarak işaretlendiğini göreceksiniz.

Tüm sorgu adımlarında, veri kaynağına geri katlanabileceklerini gösteren simge bulunur.

Sorgunuzun son adımına (üst satırlar tutuldu) sağ tıklayabilir ve Sorgu planını okuyan seçeneği belirleyebilirsiniz.

Satış Anahtarı alanı kullanılarak sıralanmış ve yalnızca Satış Anahtarı, Müşteri Anahtarı, Fatura Tarihi Anahtarı, Açıklama ve Miktar alanlarıyla sıralanmış fact_Sale tablosunun ilk on kaydının isteğini temsil eden Value.NativeQuery içinde bulunan SQL Deyimi.

Bu istek, veri kaynağınızın yerel dilindedir. Bu durumda, bu dil SQL'dir ve bu deyim tablodaki tüm satırlar ve alanlar fact_Sale için bir isteği temsil eder.

Bu veri kaynağı sorgusuna danışmak, tam sorgu planının iletmeye çalıştığı hikayeyi daha iyi anlamanıza yardımcı olabilir:

  • Sql.Database: Bağlan veritabanına gönderir ve özelliklerini anlamak için meta veri istekleri gönderir.
  • Value.NativeQuery: Sorguyu gerçekleştirmek için Power Query tarafından oluşturulan isteği temsil eder. Power Query, yerel sql deyimindeki veri isteklerini veri kaynağına gönderir. Bu durumda, tablonun yalnızca ilk 10 kaydına fact_Sale yönelik bir isteği temsil eder ve alanı kullanılarak Sale Key azalan düzende sıralandıktan sonra yalnızca gerekli alanlar gösterilir.

Not

T-SQL dilinde tablonun alt satırlarını SEÇMEK için kullanılabilecek bir yan tümce olmasa da, tablonun en üst satırlarını alan bir TOP yan tümcesi vardır.

Bu sorgu, değerlendirmesi için yalnızca tablodan istediğiniz fact_Sale alanları içeren 10 satır indirir. Bu sorgunun standart bir Power BI veri akışı örneğinde işlenmesi ortalama 31 saniye sürdü (verilerin değerlendirilmesi ve veri akışlarına yüklenmesi için gerçekleştirilir).

Performans karşılaştırması

Sorgu katlamanın bu sorgulardaki etkisini daha iyi anlamak için sorgularınızı yenileyebilir, her sorguyu tam olarak yenilemek için gereken süreyi kaydedebilir ve karşılaştırabilirsiniz. Kolaylık olması için, bu makalede hizmet düzeyi olarak DW2000c ile ayrılmış bir Azure Synapse Analytics ortamına bağlanırken Power BI veri akışları yenileme mekaniği kullanılarak yakalanan ortalama yenileme zamanlamaları sağlanır.

Her sorgu için yenileme süresi aşağıdaki gibidir:

Örnek Etiket Saniye olarak süre
Sorguyu katlama yok Hiçbiri 361
Kısmi sorguyu katlama Kısmi 184
Tam sorguyu katlama Tam 31

Katlanmamış sorgunun yenileme süresini 361 saniye, kısmi sorguyu 184 saniyeyle katlama ve tam olarak katlanmış sorguyu 31 saniyeyle karşılaştıran grafik.

Genellikle veri kaynağına tamamen geri katlanan bir sorgu, veri kaynağına tamamen geri katlanmayan benzer sorgulardan daha iyi performans gösterir. Bu durumun olmasının birçok nedeni olabilir. Bu nedenler, sorgunuzun gerçekleştirdiği dönüşümlerin karmaşıklığından dizinler, ayrılmış bilgi işlem ve ağ kaynakları gibi veri kaynağınızda uygulanan sorgu iyileştirmelerine kadar değişir. Yine de, sorgu katlamanın kullanmaya çalıştığı ve bu işlemlerin her ikisinde de Power Query'nin etkisini en aza indiren iki özel anahtar işlemi vardır:

  • Aktarım durumundaki veriler
  • Power Query altyapısı tarafından yürütülen dönüşümler

Aşağıdaki bölümlerde, bu iki işlemin daha önce bahsedilen sorgularda sahip olduğu etki açıklanmaktadır.

Aktarım durumundaki veriler

Bir sorgu yürütülürken, ilk adımlarından biri olarak veri kaynağından verileri getirmeye çalışır. Veri kaynağından getirilen veriler, sorguyu katlama mekanizması tarafından tanımlanır. Bu mekanizma, sorgudan veri kaynağına yüklenebilen adımları tanımlar.

Aşağıdaki tablo, veritabanı tablosundan fact_Sale istenen satır sayısını listeler. Tablo ayrıca veri kaynağından bu tür veriler istemek için gönderilen SQL deyiminin kısa bir açıklamasını içerir.

Örnek Etiket İstenen satırlar Açıklama
Sorguyu katlama yok Hiçbiri 3644356 Tablodaki tüm alanlar ve tüm kayıtlar için istek fact_Sale
Kısmi sorguyu katlama Kısmi 3644356 Tüm kayıtlar için istek, ancak yalnızca alana göre sıralandıktan sonra tablodan Sale Key gerekli alanlar fact_Sale
Tam sorguyu katlama Tam 10 Alana göre azalan düzende sıralandıktan sonra tablonun yalnızca gerekli alanları ve TOP 10 kayıtlarını fact_Sale isteme Sale Key

Sorguyu katlama, kısmi sorguyu katlama ve tam sorguyu kaynağa döndürme için veritabanından toplanan satır miktarını içeren grafik.

Veri kaynağından veri isteğinde bulunurken, veri kaynağının isteğin sonuçlarını hesaplaması ve ardından verileri istek sahibine göndermesi gerekir. Bilgi işlem kaynaklarından daha önce bahsedilmiş olsa da, verileri veri kaynağından Power Query'ye taşımaya ve ardından Power Query'nin verileri etkili bir şekilde alabilmesine ve yerel olarak gerçekleşecek dönüşümlere hazırlamasına yönelik ağ kaynakları, verilerin boyutuna bağlı olarak biraz zaman alabilir.

Tanıtılan örnekler için Power Query'nin sorguyu kaynağa döndürme ve kısmi sorgu katlama örnekleri için veri kaynağından 3,6 milyondan fazla satır istemesi gerekiyordu. Tam sorguyu katlama örneği için yalnızca 10 satır istendi. İstenen alanlar için sorgu katlama örneği tablodan tüm kullanılabilir alanları istedi. Hem kısmi sorguyu katlama hem de tam sorguyu katlama örnekleri yalnızca tam olarak ihtiyaç duydukları alanlar için bir istek gönderdi.

Dikkat

Büyük miktarda veri içeren sorgular veya tablolar için sorgu katlamadan yararlanan artımlı yenileme çözümleri uygulamanızı öneririz. Power Query'nin farklı ürün tümleştirmeleri, uzun süre çalışan sorguları sonlandırmak için zaman aşımları uygular. Bazı veri kaynakları ayrıca uzun süre çalışan oturumlarda zaman aşımları uygulayarak sunucularında pahalı sorgular yürütmeye çalışır. Daha fazla bilgi: Anlam modelleri için veri akışları ve Artımlı yenileme ile artımlı yenileme kullanma

Power Query altyapısı tarafından yürütülen dönüşümler

Bu makalede sorgunuzun nasıl değerlendirilebileceğini daha iyi anlamak için Sorgu planını nasıl kullanabileceğiniz gösterildi. Sorgu planının içinde, Power Query altyapısı tarafından gerçekleştirilecek dönüştürme işlemlerinin tam düğümlerini görebilirsiniz.

Aşağıdaki tablo, Power Query altyapısı tarafından değerlendirilebilecek önceki sorguların sorgu planlarından düğümleri gösterir.

Örnek Etiket Power Query altyapısı dönüştürme düğümleri
Sorguyu katlama yok Hiçbiri Table.LastN, Table.SelectColumns
Kısmi sorguyu katlama Kısmi Table.LastN
Tam sorguyu katlama Tam

Sorguyu katlama, kısmi sorguyu katlama ve tam sorguyu kaynağa döndürme için Power Query altyapısı tarafından çalıştırılan toplam dönüşümleri içeren grafik.

Bu makalede gösterilen örnekler için, tam sorguyu kaynağa döndürme örneği, gerekli çıkış tablosu doğrudan veri kaynağından geldiğinden Power Query altyapısı içinde herhangi bir dönüştürme yapılmasını gerektirmez. Buna karşılık, diğer iki sorgu da Power Query altyapısında bazı hesaplamalar yapılması gerekiyordu. Bu iki sorgu tarafından işlenmesi gereken veri miktarı nedeniyle, bu örneklerin işlenmesi tam sorguyu katlama örneğinden daha uzun sürer.

Dönüşümler aşağıdaki kategorilere göre gruplandırılabilir:

İşleç Türü Açıklama
Uzaktan Veri kaynağı düğümleri olan işleçler. Bu işleçlerin değerlendirmesi Power Query dışında gerçekleşir.
Akışlar İşleçler geçiş işleçleridir. Örneğin, Table.SelectRows basit bir filtre ile genellikle sonuçları işleçten geçerken filtreleyebilir ve verileri taşımadan önce tüm satırları toplaması gerekmez. Table.SelectColumns ve Table.ReorderColumns bu tür işleçlerin diğer örnekleridir.
Tam tarama Verilerin zincirdeki sonraki işlecine geçebilmesi için önce tüm satırları toplaması gereken işleçler. Örneğin, verileri sıralamak için Power Query'nin tüm verileri toplaması gerekir. Tam tarama işleçlerine örnek olarak Table.Group, Table.NestedJoinve Table.Pivotverilebilir.

İpucu

Performans açısından her dönüşüm aynı olmasa da, çoğu durumda daha az dönüşüme sahip olmak genellikle daha iyidir.

Önemli noktalar ve öneriler

  • Power Query'de en iyi yöntemler bölümünde belirtildiği gibi yeni sorgu oluştururken en iyi yöntemleri izleyin.
  • Sorgunuzun katlanmasını engelleyen adımları denetlemek için sorguyu katlama göstergelerini kullanın. Katlama işlemini artırmak için gerekirse bunları yeniden sıralayın.
  • Belirli bir adım için Power Query altyapısında hangi dönüşümlerin gerçekleştiğini belirlemek için sorgu planını kullanın. Adımlarınızı yeniden düzenleyerek mevcut sorgunuzu değiştirmeyi göz önünde bulundurun. Ardından sorgunuzun son adımının sorgu planını yeniden denetleyin ve sorgu planının öncekinden daha iyi görünip görünmediğini denetleyin. Örneğin, yeni sorgu planı öncekinden daha az düğüme sahiptir ve düğümlerin çoğu "tam tarama" değil "Akış" düğümleridir. Katlama desteği olan veri kaynakları için, sorgu planındaki ve veri kaynağı erişim düğümleri dışındaki Value.NativeQuery tüm düğümler katlanmamış dönüşümleri temsil eder.
  • Kullanılabilir olduğunda, sorgunuzun veri kaynağına geri katlandığından emin olmak için Yerel Sorguyu Görüntüle (veya Veri kaynağı sorgusunu görüntüle) seçeneğini kullanabilirsiniz. Bu seçenek adımınız için devre dışı bırakıldıysa ve normalde bunu etkinleştiren bir kaynak kullanıyorsanız, sorguyu kaynağa döndürmeyi durduran bir adım oluşturmuş olursunuz. Bu seçeneği desteklemeyen bir kaynak kullanıyorsanız, sorguyu katlama göstergelerine ve sorgu planına güvenebilirsiniz.
  • Bağlayıcı için sorgu katlama özellikleri kullanılabilir olduğunda veri kaynağınıza gönderilen istekleri daha iyi anlamak için sorgu tanılama araçlarını kullanın.
  • Power Query, birden çok bağlayıcının kullanımından elde edilen verileri birleştirirken, her veri kaynağı için tanımlanan gizlilik düzeyleriyle uyumlu olarak her iki veri kaynağına da mümkün olduğunca çok iş göndermeye çalışır.
  • Sorgularınızı Veri Gizliliği Güvenlik Duvarı hatasına karşı çalıştırmaktan korumak için gizlilik düzeyleri makalesini okuyun.
  • Veri kaynağı tarafından alınan isteğin perspektifinden sorguyu kaynağa döndürmeyi denetlemek için diğer araçları kullanın. Bu makaledeki örneği temel alarak, Power Query tarafından gönderilen ve Microsoft SQL Server tarafından alınan istekleri denetlemek için Microsoft SQL Server Profiler'ı kullanabilirsiniz.
  • Tam olarak katlanmış bir sorguya yeni bir adım eklerseniz ve yeni adım da katlanırsa, Power Query önceki sonucun önbelleğe alınmış bir sürümünü kullanmak yerine veri kaynağına yeni bir istek gönderebilir. Uygulamada bu işlem, önizlemede yenilenmesi beklenenden daha uzun süren az miktarda veri üzerinde basit işlemlere neden olabilir. Bu daha uzun yenileme, Power Query'nin verilerin yerel bir kopyası üzerinde çalışmak yerine veri kaynağını yeniden sorgulamasından kaynaklanır.