Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Rencana kueri untuk Power Query adalah fitur yang menyediakan tampilan evaluasi kueri Anda yang lebih baik. Ini berguna untuk membantu menentukan mengapa kueri tertentu tidak dapat dilipat pada langkah tertentu.
Melalui contoh praktis, artikel ini menunjukkan kasus penggunaan utama dan manfaat potensial menggunakan fitur rencana kueri untuk meninjau langkah-langkah kueri Anda. Contoh yang digunakan dalam artikel ini dibuat menggunakan database sampel AdventureWorksLT untuk Azure SQL Server, yang dapat Anda unduh dari database sampel AdventureWorks.
Nota
Fitur rencana kueri untuk Power Query hanya tersedia di Power Query Online.
Artikel ini dibagi dalam serangkaian langkah yang direkomendasikan untuk menginterpretasikan rencana kueri. Langkah-langkah ini adalah:
- Tinjau indikator penglipatan kueri.
- Pilih langkah kueri untuk meninjau rencana kuerinya.
- Terapkan perubahan pada kueri Anda.
Gunakan langkah-langkah berikut untuk membuat kueri di lingkungan Power Query Online Anda sendiri.
Dari Power Query - Pilih sumber data, pilih Kueri kosong .
Ganti skrip kueri kosong dengan kueri berikut.
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"Ubah
servernamedandatabasedengan nama yang benar untuk lingkungan Anda sendiri.(Opsional) Jika Anda mencoba menyambungkan ke server dan database untuk lingkungan lokal, pastikan untuk mengonfigurasi gateway untuk lingkungan tersebut.
Pilih Selanjutnya.
Di Editor Power Query, pilih Konfigurasikan koneksi dan berikan kredensial ke sumber data Anda.
Nota
Untuk informasi lebih lanjut tentang menghubungkan ke SQL Server, kunjungi database SQL Server.
Setelah mengikuti langkah-langkah ini, kueri Anda akan terlihat seperti yang ada di gambar berikut.
Kueri ini tersambung ke tabel SalesOrderHeader, dan memilih beberapa kolom dari lima pesanan terakhir dengan nilai TotalDue di atas 1000.
Nota
Artikel ini menggunakan contoh yang disederhanakan untuk menampilkan fitur ini, tetapi konsep yang dijelaskan dalam artikel ini berlaku untuk semua kueri. Kami menyarankan agar Anda memiliki pemahaman yang mendalam tentang pelipatan kueri sebelum membaca rencana kueri. Untuk mempelajari selengkapnya tentang pelipatan kueri, buka Dasar-dasar lipatan kueri.
1. Tinjau indikator penyederhanaan kueri
Nota
Sebelum membaca bagian ini, kami sarankan Anda meninjau artikel tentang indikator lipatan kueri .
Langkah pertama Anda dalam proses ini adalah meninjau kueri Anda dan memperhatikan indikator pelipatan kueri. Tujuannya adalah untuk meninjau langkah-langkah yang ditandai sebagai tidak dilipat. Kemudian Anda dapat melihat apakah membuat perubahan pada kueri keseluruhan dapat membuat transformasi tersebut terlipat sepenuhnya.
Untuk contoh ini, satu-satunya langkah yang tidak dapat dilipat adalah Baris bawah yang disimpan, yang mudah diidentifikasi melalui indikator langkah tidak dilipat. Langkah ini juga merupakan langkah terakhir kueri.
Tujuannya sekarang adalah untuk meninjau langkah ini dan memahami apa yang dilipat kembali ke sumber data dan apa yang tidak dapat dilipat.
2. Pilih langkah kueri untuk meninjau rencana kuerinya
Anda mengidentifikasi langkah Baris bawah yang disimpan sebagai langkah yang menarik karena tidak dilipat kembali ke sumber data. Klik kanan langkah dan pilih opsi Lihat rencana kueri. Tindakan ini menampilkan dialog baru yang berisi diagram untuk rencana kueri langkah yang dipilih.
Power Query mencoba mengoptimalkan kueri Anda dengan memanfaatkan evaluasi tunda dan pelipatan kueri, sebagaimana disebutkan dalam Dasar-dasar pelipatan kueri. Rencana kueri ini mewakili terjemahan kueri M Anda yang dioptimalkan ke dalam kueri asli yang dikirim ke sumber data. Ini juga mencakup transformasi apa pun yang dilakukan oleh Power Query Engine. Urutan di mana simpul muncul mengikuti urutan kueri Anda mulai dari langkah terakhir atau output kueri Anda, yang diwakili di ujung kiri diagram. Dalam hal ini, simpul Table.LastN yang mewakili langkah Baris bawah yang Disimpan.
Di bagian bawah dialog, ada bilah dengan ikon yang membantu Anda memperbesar atau memperkecil tampilan paket kueri, dan tombol lain untuk membantu Anda mengelola tampilan. Untuk gambar sebelumnya, opsi Pas untuk melihat dari bilah ini digunakan untuk memperjelas simpul.
Nota
Rencana kueri mewakili rencana yang dioptimalkan. Saat mesin mengevaluasi kueri, ia berupaya mengintegrasikan semua operator ke dalam sumber data. Dalam beberapa kasus, bahkan mungkin melakukan pengurutan ulang langkah-langkah secara internal untuk memaksimalkan pelipatan. Dengan mempertimbangkan proses ini, simpul/operator yang tersisa dalam rencana kueri yang dioptimalkan ini biasanya berisi kueri sumber data yang dipadatkan. Setiap operator yang tidak dapat dilipat dievaluasi secara lokal.
Mengidentifikasi simpul yang dilipat dari simpul lainnya
Anda dapat mengidentifikasi simpul dalam diagram ini sebagai dua grup:
-
simpul terlipat: Simpul ini dapat berupa simpul
Value.NativeQueryatau "sumber data" sepertiSql.Database. Simpul ini juga dapat diidentifikasi dengan label remote di bawah nama fungsinya. -
Simpul yang tidak dilipat: Operator tabel lain, seperti
Table.SelectRows,Table.SelectColumns, dan fungsi lain yang tidak dapat dilipat. Simpul ini juga dapat diidentifikasi dengan label Pemindaian penuh dan Streaming.
Gambar berikut menunjukkan simpul yang dilipat di dalam persegi panjang merah. Sisa simpul-simpul tidak dapat dilipat kembali ke sumber data. Anda perlu meninjau sisa simpul karena tujuannya adalah untuk mencoba melipat kembali simpul tersebut ke sumber data.
Anda dapat memilih Tampilkan detail di bagian bawah beberapa simpul untuk menampilkan informasi yang diperluas. Misalnya, detail simpul Value.NativeQuery memperlihatkan kueri asli (di SQL) yang dikirim ke sumber data.
Kueri yang diperlihatkan di sini mungkin bukan kueri yang sama persis yang dikirim ke sumber data, tetapi merupakan perkiraan yang baik. Untuk kasus ini, ini memberi tahu Anda dengan tepat kolom apa yang dikueri dari tabel SalesOrderHeader. Kemudian, cara memfilter tabel tersebut menggunakan bidang TotalDue untuk hanya mendapatkan baris di mana nilai untuk bidang tersebut lebih besar dari 1000. Simpul di sampingnya, Table.LastN, dihitung secara lokal oleh mesin Power Query, karena tidak dapat dilipat.
Nota
Operator mungkin tidak sama persis dengan fungsi yang digunakan dalam skrip kueri.
Tinjau simpul yang tidak dilipat dan pertimbangkan langkah-langkah untuk melipat transformasi Anda.
Anda sekarang telah menentukan simpul mana yang tidak dapat dilipat dan dapat dievaluasi secara lokal. Kasus ini hanya memiliki simpul Table.LastN, tetapi dalam skenario lain dapat memiliki lebih banyak lagi.
Tujuannya adalah untuk menerapkan perubahan pada kueri Anda sehingga langkah tersebut bisa disederhanakan. Beberapa perubahan yang mungkin Anda terapkan dapat berkisar dari mengatur ulang langkah-langkah Anda hingga menerapkan logika alternatif ke kueri Anda yang lebih eksplisit ke sumber data. Ini tidak berarti bahwa semua kueri dan semua operasi dapat dilipat dengan menerapkan beberapa perubahan. Tetapi ini adalah praktik yang baik untuk menentukan melalui percobaan dan kesalahan jika kueri Anda dapat dilipat kembali.
Karena sumber data adalah database SQL Server, jika tujuannya adalah untuk mengambil lima pesanan terakhir dari tabel, maka alternatif yang baik adalah memanfaatkan klausa TOP dan ORDER BY di SQL. Karena tidak ada klausa BOTTOM di SQL, transformasi Table.LastN di PowerQuery tidak dapat diterjemahkan ke dalam SQL. Anda dapat menghapus langkah Table.LastN dan menggantinya dengan:
- Langkah mengurutkan menurun berdasarkan kolom SalesOrderID dalam tabel, karena kolom ini menentukan urutan pesanan mana yang masuk pertama dan mana yang terakhir dimasukkan.
-
Pilih lima baris teratas karena tabel telah diurutkan, transformasi ini melakukan hal yang sama seperti jika baris bawah dipertahankan (
Table.LastN).
Alternatif ini setara dengan kueri asli. Meskipun alternatif ini secara teori terlihat baik, Anda perlu membuat perubahan untuk melihat apakah alternatif ini membuat simpul ini sepenuhnya berintegrasi kembali ke sumber data.
3. Menerapkan perubahan pada kueri Anda
Terapkan alternatif yang dibahas di bagian sebelumnya:
Tutup dialog rencana kueri dan kembali ke Editor Power Query.
Hapus langkah Disimpan baris bawah.
Urutkan kolom SalesOrderID dalam urutan menurun.
Pilih ikon tabel di sudut kiri atas tampilan pratinjau data dan pilih opsi yang membaca Pertahankan baris atas. Dalam dialog, berikan angka lima sebagai argumen dan tekan OK.
Setelah menerapkan perubahan, periksa kembali indikator pelipatan kueri dan lihat apakah indikator tersebut memberi Anda indikator terlipat.
Sekarang saatnya untuk meninjau rencana kueri dari langkah terakhir, yang sekarang Pertahankan Baris Teratas. Sekarang hanya ada simpul yang dilipat. Pilih Tampilkan detail di bawah Value.NativeQuery untuk memverifikasi kueri mana yang sedang dikirim ke database.
Meskipun artikel ini menyarankan alternatif apa untuk diterapkan, tujuan utamanya adalah agar Anda mempelajari cara menggunakan rencana kueri untuk menyelidiki pelipatan kueri. Artikel ini juga memberikan visibilitas tentang apa yang dikirim ke sumber data Anda dan transformasi apa yang dilakukan secara lokal.
Anda dapat menyesuaikan kode Anda untuk melihat dampaknya dalam kueri Anda. Dengan menggunakan indikator pelipatan kueri, Anda juga memiliki gambaran yang lebih baik tentang langkah mana yang mencegah kueri Anda terlipat.