Power Query için sorgu planı (Önizleme)
Power Query için sorgu planı, sorgunuzun değerlendirmesinin daha iyi bir görünümünü sağlayan bir özelliktir. Belirli bir sorguyu belirli bir adımda neden katlamayabileceğini saptamaya yardımcı olmak yararlı olur.
Pratik bir örnekte, bu makalede sorgu adımlarınızı gözden geçirmek için sorgu planı özelliğini kullanmanın ana kullanım örneği ve olası avantajları gösterilmektedir. Bu makalede kullanılan örnekler, AdventureWorks örnek veritabanlarından indirebileceğiniz Azure SQL Server için AdventureWorksLT örnek veritabanı kullanılarak oluşturulmuştur.
Not
Power Query için sorgu planı özelliği yalnızca Power Query Online'da kullanılabilir.
Bu makale, sorgu planını yorumlamak için önerilen bir dizi adıma ayrılmıştır. Bu adımlar:
- Sorguyu katlama göstergelerini gözden geçirin.
- Sorgu planını gözden geçirmek için sorgu adımını seçin.
- Sorgunuzda değişiklikleri uygulayın.
Sorguyu kendi Power Query Online ortamınızda oluşturmak için aşağıdaki adımları kullanın.
Power Query 'den - Veri kaynağını seçin, Boş sorgu'yu seçin.
Boş sorgunun betiğini aşağıdaki sorguyla değiştirin.
let Source = Sql.Database("servername", "database"), Navigation = Source{[Schema = "Sales", Item = "SalesOrderHeader"]}[Data], #"Removed other columns" = Table.SelectColumns(Navigation, {"SalesOrderID", "OrderDate", "SalesOrderNumber", "PurchaseOrderNumber", "AccountNumber", "CustomerID", "TotalDue"}), #"Filtered rows" = Table.SelectRows(#"Removed other columns", each [TotalDue] > 1000), #"Kept bottom rows" = Table.LastN(#"Filtered rows", 5) in #"Kept bottom rows"
database
ve öğesini kendi ortamınız için doğru adlarla değiştirinservername
.(İsteğe bağlı) Şirket içi ortam için bir sunucuya ve veritabanına bağlanmaya çalışıyorsanız, bu ortam için bir ağ geçidi yapılandırdığınızdan emin olun.
İleri'yi seçin.
Power Query Düzenleyicisi Bağlantıyı yapılandır'ı seçin ve kimlik bilgilerini veri kaynağınıza sağlayın.
Not
SQL Server'a bağlanma hakkında daha fazla bilgi için SQL Server veritabanına gidin.
Bu adımları takip ettikten sonra sorgunuz aşağıdaki görüntüdeki gibi görünür.
Bu sorgu SalesOrderHeader tablosuna bağlanır ve son beş siparişten totalDue değeri 1000'in üzerinde olan birkaç sütun seçer.
Not
Bu makalede, bu özelliği göstermek için basitleştirilmiş bir örnek kullanılır, ancak bu makalede açıklanan kavramlar tüm sorgular için geçerlidir. Sorgu planını okumadan önce sorguyu kaynağa döndürme hakkında iyi bilgi sahibi olmanız önerilir. Sorguyu katlama hakkında daha fazla bilgi edinmek için Sorguyu kaynağa döndürme temel bilgileri bölümüne gidin.
1. Sorguyu kaynağa döndürme göstergelerini gözden geçirin
Not
Bu bölümü okumadan önce Sorgu katlama göstergeleri makalesini gözden geçirmenizi öneririz.
Bu işlemdeki ilk adımınız sorgunuzu gözden geçirmek ve sorguyu katlama göstergelerine çok dikkat etmektir. Amaç, katlanmamış olarak işaretlenen adımları gözden geçirmektir. Ardından, genel sorguda değişiklik yapmanın bu dönüştürmeleri tamamen katlamasına neden olup olmadığını görebilirsiniz.
Bu örnekte, katlanamıyor tek adım, katlanmayan adım göstergesiyle kolayca tanımlanabilen Alt satırlar tutuldu adımıdır. Bu adım, sorgunun son adımıdır.
Şimdi amaç, bu adımı gözden geçirmek ve nelerin veri kaynağına geri katlandığını ve nelerin katlanamaz olduğunu anlamaktır.
2. Sorgu planını gözden geçirmek için sorgu adımını seçin
Veri kaynağına geri katlanmadığından, En alt satırlar tutuldu adımını ilgi çekici bir adım olarak belirlediniz. Adıma sağ tıklayın ve Sorgu planını görüntüle seçeneğini belirleyin. Bu eylem, seçili adımın sorgu planı için diyagram içeren yeni bir iletişim kutusu görüntüler.
Power Query, Sorguyu kaynağa döndürme temelleri bölümünde belirtildiği gibi yavaş değerlendirme ve sorgu katlama avantajlarından yararlanarak sorgunuzu iyileştirmeye çalışır. Bu sorgu planı, M sorgunuzun veri kaynağına gönderilen yerel sorguya iyileştirilmiş çevirisini temsil eder. Ayrıca Power Query Altyapısı tarafından gerçekleştirilen tüm dönüştürmeleri de içerir. Düğümlerin görüntülenme sırası, sorgunuzun son adımından veya çıkışından başlayarak sorgunuzun sırasını izler. Bu, diyagramın en solunda gösterilir ve bu durumda, En alt satırlar tutuldu adımını temsil eden Table.LastN düğümüdür.
İletişim kutusunun alt kısmında, sorgu planı görünümünü yakınlaştırmanıza veya uzaklaştırmanıza yardımcı olan simgelerin bulunduğu bir çubuk ve görünümü yönetmenize yardımcı olacak diğer düğmeler bulunur. Önceki görüntüde, düğümleri daha iyi takdir etmek için bu çubuktan Görünüme sığdır seçeneği kullanılmıştır.
Not
Sorgu planı iyileştirilmiş planı temsil eder. Altyapı bir sorguyu değerlendirirken tüm işleçleri bir veri kaynağına katlamaya çalışır. Bazı durumlarda, katlama işlemini en üst düzeye çıkarmak için adımların bazı iç yeniden sıralamasını bile gerçekleştirebilir. Bunu göz önünde bulundurarak, bu iyileştirilmiş sorgu planında kalan düğümler/işleçler genellikle "katlanmış" veri kaynağı sorgusunu ve katlanamayan ve yerel olarak değerlendirilen tüm işleçleri içerir.
Diğer düğümlerden katlanmış düğümleri tanımlama
Bu diyagramdaki düğümleri iki grup olarak tanımlayabilirsiniz:
- Katlanmış düğümler: Bu düğüm veya gibi
Sql.Database
"veri kaynağı" düğümleri olabilirValue.NativeQuery
. Bunlar, işlev adlarının altındaki uzak etiketle de tanımlanabilir. - Katlanmamış düğümler: ,
Table.SelectColumns
ve gibiTable.SelectRows
diğer tablo işleçleri ve katlanamayan diğer işlevler. Bunlar, Tam tarama ve Akış etiketleriyle de tanımlanabilir.
Aşağıdaki görüntüde, kırmızı dikdörtgenin içindeki katlanmış düğümler gösterilmektedir. Düğümlerin geri kalanı veri kaynağına geri katlanamadı. Amaç, bu düğümlerin veri kaynağına geri katlanmış olmasını sağlamak olduğundan, düğümlerin geri kalanını gözden geçirmeniz gerekir.
Genişletilmiş bilgileri görüntülemek için bazı düğümlerin altındaki Ayrıntıları görüntüle'yi seçebilirsiniz. Örneğin, düğümün
Value.NativeQuery
ayrıntıları veri kaynağına gönderilecek yerel sorguyu (SQL'de) gösterir.
Burada gösterilen sorgu, veri kaynağına gönderilen sorguyla tam olarak aynı olmayabilir, ancak iyi bir tahmindir. Bu durumda, SalesOrderHeader tablosundan tam olarak hangi sütunların sorgulanacağı ve ardından bu alanın değerinin 1000'den büyük olduğu satırları almak için TotalDue alanını kullanarak bu tabloyu nasıl filtrelediğini bildirir. Yanındaki düğüm olan Table.LastN, Power Query altyapısı tarafından yerel olarak hesaplanır çünkü katlanamaz.
Not
İşleçler sorgunun betiğinde kullanılan işlevlerle tam olarak eşleşmeyebilir.
Katlanmamış düğümleri gözden geçirin ve dönüştürmenizi katlamanızı sağlayacak eylemleri göz önünde bulundurun
Şimdi hangi düğümlerin katlanamayacağını ve yerel olarak değerlendirileceğini belirlediniz. Bu durumda yalnızca düğüm bulunur Table.LastN
, ancak diğer senaryolarda çok daha fazlası olabilir.
Amaç, adımın katlanabilmesi için sorgunuza değişiklikler uygulamaktır. Uygulayabileceğiniz değişikliklerden bazıları, adımlarınızı yeniden düzenlemekten sorgunuza veri kaynağı için daha açık olan alternatif bir mantık uygulamaya kadar değişebilir. Bu, bazı değişiklikler uygulanarak tüm sorguların ve tüm işlemlerin katlanabilir olduğu anlamına gelmez. Ancak sorgunuzun geri alınıp alınamadığını deneme ve hata aracılığıyla belirlemek iyi bir uygulamadır.
Veri kaynağı bir SQL Server veritabanı olduğundan, hedef tablodan son beş siparişi almaksa, SQL'deki TOP ve ORDER BY yan tümcelerinden yararlanmak iyi bir alternatiftir. SQL'de BOTTOM yan tümcesi olmadığından PowerQuery'deki Table.LastN
dönüşüm SQL'e çevrilemez. Adımı kaldırabilir Table.LastN
ve şununla değiştirebilirsiniz:
- Tablodaki SalesOrderID sütununa göre azalan bir sıralama adımıdır , çünkü bu sütun hangi sıranın önce gittiğini ve hangisinin son girildiğini belirler.
- Tablo sıralandığından bu yana ilk beş satırı seçin; bu dönüşüm, En altta tutulan satırlar (
Table.LastN
) ile aynı şekilde gerçekleştirilir.
Bu alternatif, özgün sorguya eşdeğerdir. Teoride bu alternatif iyi görünse de, bu alternatifin bu düğümün veri kaynağına tamamen geri dönmesine neden olup olmadığını görmek için değişiklikleri yapmanız gerekir.
3. Sorgunuzda değişiklik uygulama
Önceki bölümde açıklanan alternatifi uygulayın:
Sorgu planı iletişim kutusunu kapatın ve Power Query Düzenleyicisi dönün.
En alttaki satırlar tutuldu adımını kaldırın.
SalesOrderID sütununu azalan düzende sıralayın.
Veri önizleme görünümünün sol üst köşesindeki tablo simgesini seçin ve üst satırları koru seçeneğini belirtin. İletişim kutusunda, bağımsız değişken olarak beş sayısını geçirin ve Tamam'a tıklayın.
Değişiklikleri uyguladıktan sonra sorguyu katlama göstergelerini yeniden denetleyin ve bunun size katlanmış bir gösterge verip vermediğini denetleyin.
Şimdi son adımın sorgu planını gözden geçirmenin zamanı geldi. Bu da en üstteki satırları koru'dur. Artık yalnızca katlanmış düğümler vardır. Veritabanına hangi sorgunun gönderildiğini doğrulamak için altındaki
Value.NativeQuery
Ayrıntıları görüntüle'yi seçin.
Bu makalede hangi alternatifin uygulanacağı öneriliyor olsa da, asıl amaç sorguyu katlama işlemini araştırmak için sorgu planını kullanmayı öğrenmenizdir. Bu makale ayrıca veri kaynağınıza nelerin gönderildiğine ve hangi dönüşümlerin yerel olarak gerçekleştirileceğinin görünürlüğünü sağlar.
Kodunuzu, sorgunuzdaki etkisini görmek için ayarlayabilirsiniz. Sorguyu katlama göstergelerini kullanarak sorgunuzun katlanmasını engelleyen adımlar hakkında da daha iyi bir fikriniz olur.