Bagikan melalui


Contoh pelipatan kueri

Artikel ini menyediakan beberapa contoh skenario untuk masing-masing dari tiga kemungkinan hasil untuk pelipatan kueri. Ini juga mencakup beberapa saran tentang cara mendapatkan hasil maksimal dari mekanisme pelipatan kueri, dan efek yang dapat dimilikinya dalam kueri Anda.

Skenario

Bayangkan skenario di mana, menggunakan database Wide World Importers untuk database Azure Synapse Analytics SQL, Anda ditugaskan untuk membuat kueri di Power Query yang tersambung ke fact_Sale tabel dan mengambil 10 penjualan terakhir hanya dengan bidang berikut:

  • Kunci Penjualan
  • Customer Key
  • Kunci Tanggal Faktur
  • Deskripsi
  • Quantity

Catatan

Untuk tujuan demonstrasi, artikel ini menggunakan database yang diuraikan pada tutorial tentang memuat database Wide World Importers ke Azure Synapse Analytics. Perbedaan utama dalam artikel ini adalah fact_Sale tabel hanya menyimpan data untuk tahun 2000, dengan total 3.644.356 baris.

Meskipun hasilnya mungkin tidak sama persis dengan hasil yang Anda dapatkan dengan mengikuti tutorial dari dokumentasi Azure Synapse Analytics, tujuan artikel ini adalah untuk menampilkan konsep inti dan dampak yang dapat dimiliki lipatan kueri dalam kueri Anda.

Contoh tabel output yang berasal dari tabel fact_Sale database Wide World Importers Azure Synapse Analytics.

Artikel ini menampilkan tiga cara untuk mencapai output yang sama dengan tingkat lipatan kueri yang berbeda:

  • Tidak ada lipatan kueri
  • Pelipatan kueri parsial
  • Pelipatan kueri penuh

Tidak ada contoh pelipatan kueri

Penting

Kueri yang hanya mengandalkan sumber data yang tidak terstruktur atau yang tidak memiliki mesin komputasi, seperti file CSV atau Excel, tidak memiliki kemampuan pelipatan kueri. Ini berarti bahwa Power Query mengevaluasi semua transformasi data yang diperlukan menggunakan mesin Power Query.

Setelah menyambungkan ke database Anda dan menavigasi ke fact_Sale tabel, Anda memilih transformasi Pertahankan baris bawah yang ditemukan di dalam grup Kurangi baris dari tab Beranda .

Pertahankan transformasi baris bawah ditemukan di dalam grup Kurangi baris dari tab beranda.

Setelah memilih transformasi ini, dialog baru akan muncul. Dalam dialog baru ini, Anda dapat memasukkan jumlah baris yang ingin Anda simpan. Untuk kasus ini, masukkan nilai 10, lalu pilih OK.

Memasukkan nilai 10 di dalam dialog Pertahankan baris bawah.

Tip

Untuk kasus ini, melakukan operasi ini menghasilkan hasil dari sepuluh penjualan terakhir. Dalam sebagian besar skenario, kami sarankan Anda memberikan logika yang lebih eksplisit yang menentukan baris mana yang dianggap terakhir dengan menerapkan operasi pengurutan pada tabel.

Selanjutnya, pilih transformasi Pilih kolom yang ditemukan di dalam grup Kelola kolom tab Beranda . Anda kemudian dapat memilih kolom yang ingin Anda simpan dari tabel Anda dan menghapus sisanya.

Memilih transformasi Pilih kolom untuk contoh tidak ada lipatan kueri.

Terakhir, di dalam dialog Pilih kolom, pilih Sale Keykolom , , Customer KeyInvoice Date Key, Description, dan Quantity , lalu pilih OK.

Memilih kolom Kunci Penjualan, Kunci Pelanggan, Kunci Tanggal Faktur, Deskripsi, dan Kuantitas untuk contoh tidak ada lipatan kueri.

Sampel kode berikut adalah skrip M lengkap untuk kueri yang Anda buat:

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""

Tidak ada lipatan kueri: Memahami evaluasi kueri

Di bawah Langkah-langkah yang diterapkan di editor Power Query, Anda akan melihat bahwa indikator lipatan kueri untuk Baris bawah yang disimpan dan Pilih kolom ditandai sebagai langkah-langkah yang akan dievaluasi di luar sumber data atau, dengan kata lain, oleh mesin Power Query.

Panel langkah yang diterapkan untuk kueri dengan indikator lipatan kueri yang menampilkan baris bawah yang Disimpan dan langkah-langkah Kolom lainnya yang dihapus.

Anda bisa mengklik kanan langkah terakhir kueri Anda, yang bernama Pilih kolom, dan memilih opsi yang membaca Tampilkan paket Kueri. Tujuan dari rencana kueri adalah untuk memberi Anda tampilan terperinci tentang bagaimana kueri Anda dijalankan. Untuk mempelajari selengkapnya tentang fitur ini, buka Paket kueri.

Rencana kueri untuk kueri yang dibuat dengan beberapa simpul, dua di antaranya berada dalam persegi panjang yang mewakili simpul yang akan dievaluasi oleh mesin Power Query.

Setiap kotak dalam gambar sebelumnya disebut node. Simpul mewakili perincian operasi untuk memenuhi kueri ini. Simpul yang mewakili sumber data, seperti SQL Server dalam contoh di atas dan simpul Value.NativeQuery , mewakili bagian mana dari kueri yang dilepaskan ke sumber data. Simpul lainnya, dalam hal Table.LastN ini dan Table.SelectColumns disorot dalam persegi panjang pada gambar sebelumnya, dievaluasi oleh mesin Power Query. Kedua simpul ini mewakili dua transformasi yang Anda tambahkan, Baris bawah yang disimpan dan Pilih kolom. Simpul lainnya mewakili operasi yang terjadi di tingkat sumber data Anda.

Untuk melihat permintaan persis yang dikirim ke sumber data Anda, pilih Tampilkan detail di simpul Value.NativeQuery .

Pernyataan SQL ditemukan di dalam Value.NativeQuery yang mewakili permintaan semua bidang dan rekaman dari tabel fact_Sale dalam database.

Permintaan sumber data ini berada dalam bahasa asli sumber data Anda. Untuk kasus ini, bahasa tersebut adalah SQL dan pernyataan ini mewakili permintaan untuk semua baris dan bidang dari fact_Sale tabel.

Berkonsultasi dengan permintaan sumber data ini dapat membantu Anda lebih memahami cerita yang coba disampaikan rencana kueri:

  • Sql.Database: Simpul ini mewakili akses sumber data. Koneksi ke database dan mengirim permintaan metadata untuk memahami kemampuannya.
  • Value.NativeQuery: Mewakili permintaan yang dihasilkan oleh Power Query untuk memenuhi kueri. Power Query mengirimkan permintaan data dalam pernyataan SQL asli ke sumber data. Dalam hal ini, yang mewakili semua rekaman dan bidang (kolom) dari fact_Sale tabel. Untuk skenario ini, kasus ini tidak diinginkan, karena tabel berisi jutaan baris dan minatnya hanya dalam 10 terakhir.
  • Table.LastN: Setelah Power Query menerima semua rekaman dari fact_Sale tabel, Power Query menggunakan mesin Power Query untuk memfilter tabel dan hanya menyimpan 10 baris terakhir.
  • Table.SelectColumns: Power Query akan menggunakan output simpul Table.LastN dan menerapkan transformasi baru yang disebut Table.SelectColumns, yang memilih kolom tertentu yang ingin Anda pertahankan dari tabel.

Untuk evaluasinya, kueri ini harus mengunduh semua baris dan bidang dari fact_Sale tabel. Kueri ini membutuhkan waktu rata-rata 6 menit dan 1 detik untuk diproses dalam contoh standar aliran data Power BI (yang memperkirakan evaluasi dan pemuatan data ke aliran data).

Contoh pelipatan kueri parsial

Setelah menyambungkan ke database dan menavigasi ke fact_Sale tabel, Anda mulai dengan memilih kolom yang ingin Anda simpan dari tabel Anda. Pilih transformasi Pilih kolom yang ditemukan di dalam grup Kelola kolom dari tab Beranda. Transformasi ini membantu Anda untuk secara eksplisit memilih kolom yang ingin Anda simpan dari tabel Anda dan menghapus sisanya.

Memilih transformasi Pilih kolom untuk contoh pelipatan kueri parsial.

Di dalam dialog Pilih kolom, pilih Sale Keykolom , , Customer KeyInvoice Date Key, Descriptiondan Quantity lalu pilih OK.

Memilih kolom Kunci Penjualan, Kunci Pelanggan, Kunci Tanggal Faktur, Deskripsi, dan Kuantitas untuk contoh lipatan kueri parsial.

Sekarang Anda membuat logika yang akan mengurutkan tabel untuk memiliki penjualan terakhir di bagian bawah tabel. Sale Key Pilih kolom, yang merupakan kunci utama dan urutan atau indeks inkremental tabel. Urutkan tabel hanya menggunakan bidang ini dalam urutan naik dari menu konteks untuk kolom.

Urutkan bidang Kunci Penjualan tabel dalam urutan naik menggunakan menu kontekstual bidang filter otomatis.

Selanjutnya, pilih menu kontekstual tabel dan pilih transformasi Pertahankan baris bawah.

Pilih opsi Pertahankan baris bawah di dalam menu kontekstual tabel.

Di Pertahankan baris bawah, masukkan nilai 10, lalu pilih OK.

Pertahankan dialog baris bawah dengan nilai 10 dimasukkan sebagai nilai input untuk hanya menyimpan sepuluh baris bawah tabel.

Sampel kode berikut adalah skrip M lengkap untuk kueri yang Anda buat:

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"

Contoh pelipatan kueri parsial: Memahami evaluasi kueri

Memeriksa panel langkah-langkah yang diterapkan, Anda melihat bahwa indikator pelipatan kueri memperlihatkan bahwa transformasi terakhir yang Anda tambahkan, Kept bottom rows, ditandai sebagai langkah yang akan dievaluasi di luar sumber data atau, dengan kata lain, oleh mesin Power Query.

Panel langkah yang diterapkan untuk kueri dengan indikator lipatan kueri yang menampilkan bahwa baris bawah Yang disimpan ditandai sebagai langkah yang akan dievaluasi di luar sumber data.

Anda bisa mengklik kanan langkah terakhir kueri Anda, yang bernama Kept bottom rows, dan memilih opsi Rencana kueri untuk lebih memahami bagaimana kueri Anda mungkin dievaluasi.

Rencana kueri memperlihatkan beberapa simpul di mana simpul Table.LastN, diperlihatkan di dalam persegi panjang, adalah simpul yang akan dievaluasi oleh mesin Power Query dan bukan oleh sumber data.

Setiap kotak dalam gambar sebelumnya disebut node. Simpul mewakili setiap proses yang perlu terjadi (dari kiri ke kanan) agar kueri Anda dievaluasi. Beberapa simpul ini dapat dievaluasi di sumber data Anda sementara yang lain, seperti simpul untuk Table.LastN, yang diwakili oleh langkah Baris bawah yang disimpan, dievaluasi menggunakan mesin Power Query.

Untuk melihat permintaan persis yang dikirim ke sumber data Anda, pilih Tampilkan detail di simpul Value.NativeQuery .

Pernyataan SQL di dalam Value.NativeQuery yang mewakili permintaan untuk semua rekaman, dengan hanya bidang yang diminta dari tabel fact_Sales dalam database yang diurutkan dalam urutan naik menurut bidang Kunci Penjualan.

Permintaan ini dalam bahasa asli sumber data Anda. Untuk kasus ini, bahasa tersebut adalah SQL dan pernyataan ini mewakili permintaan untuk semua baris, hanya dengan bidang yang diminta dari tabel yang fact_Sale diurutkan oleh Sale Key bidang .

Berkonsultasi dengan permintaan sumber data ini dapat membantu Anda lebih memahami cerita yang coba disampaikan oleh rencana kueri lengkap. Urutan simpul adalah proses berurutan yang dimulai dengan meminta data dari sumber data Anda:

  • Sql.Database: Koneksi ke database dan mengirim permintaan metadata untuk memahami kemampuannya.
  • Value.NativeQuery: Mewakili permintaan yang dihasilkan oleh Power Query untuk memenuhi kueri. Power Query mengirimkan permintaan data dalam pernyataan SQL asli ke sumber data. Untuk kasus ini, yang mewakili semua rekaman, dengan hanya bidang yang diminta dari fact_Sale tabel dalam database yang diurutkan dalam urutan naik menurut Sales Key bidang .
  • Table.LastN: Setelah Power Query menerima semua rekaman dari fact_Sale tabel, Power Query menggunakan mesin Power Query untuk memfilter tabel dan hanya menyimpan 10 baris terakhir.

Untuk evaluasinya, kueri ini harus mengunduh semua baris dan hanya bidang yang diperlukan dari fact_Sale tabel. Dibutuhkan waktu rata-rata 3 menit dan 4 detik untuk diproses dalam contoh standar aliran data Power BI (yang menyurutkan evaluasi dan pemuatan data ke aliran data).

Contoh pelipatan kueri lengkap

Setelah menyambungkan ke database dan menavigasi ke fact_Sale tabel, mulailah dengan memilih kolom yang ingin Anda simpan dari tabel Anda. Pilih transformasi Pilih kolom yang ditemukan di dalam grup Kelola kolom dari tab Beranda. Transformasi ini membantu Anda untuk secara eksplisit memilih kolom yang ingin Anda simpan dari tabel Anda dan menghapus sisanya.

Memilih transformasi Pilih kolom untuk contoh pelipatan kueri lengkap.

Di Pilih kolom, pilih Sale Keykolom , , Customer KeyInvoice Date Key, Description, dan Quantity , lalu pilih OK.

Memilih kolom Kunci Penjualan, Kunci Pelanggan, Kunci Tanggal Faktur, Deskripsi, dan Kuantitas untuk contoh pelipatan kueri lengkap.

Anda sekarang membuat logika yang akan mengurutkan tabel untuk memiliki penjualan terakhir di bagian atas tabel. Sale Key Pilih kolom, yang merupakan kunci utama dan urutan atau indeks inkremental tabel. Urutkan tabel hanya menggunakan bidang ini dalam urutan menurun dari menu konteks untuk kolom.

Urutkan bidang Kunci Penjualan tabel dalam urutan menurun menggunakan menu konteks.

Selanjutnya, pilih menu kontekstual tabel dan pilih transformasi Pertahankan baris atas.

Pertahankan opsi baris atas di dalam menu konteks tabel.

Di Pertahankan baris atas, masukkan nilai 10, lalu pilih OK.

Pertahankan dialog baris atas dengan nilai sepuluh yang dimasukkan sebagai nilai input untuk hanya mempertahankan sepuluh baris teratas tabel.

Sampel kode berikut adalah skrip M lengkap untuk kueri yang Anda buat:

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"

Contoh pelipatan kueri lengkap: Memahami evaluasi kueri

Saat memeriksa panel langkah yang diterapkan, Anda akan melihat bahwa indikator lipatan kueri memperlihatkan bahwa transformasi yang Anda tambahkan, Pilih kolom, Baris yang Diurutkan, dan Baris atas yang disimpan, ditandai sebagai langkah-langkah yang akan dievaluasi di sumber data.

Semua langkah kueri memiliki ikon yang menampilkan bahwa mereka dapat dilipat kembali ke sumber data.

Anda bisa mengklik kanan langkah terakhir kueri Anda, yang bernama Baris teratas tersimpan, dan memilih opsi yang membaca paket Kueri.

Pernyataan SQL ditemukan di dalam Value.NativeQuery yang mewakili permintaan sepuluh rekaman teratas tabel fact_Sale yang diurutkan menggunakan bidang Kunci Penjualan dan hanya dengan bidang Kunci Penjualan, Kunci Pelanggan, Kunci Tanggal Faktur, Deskripsi, dan Kuantitas.

Permintaan ini dalam bahasa asli sumber data Anda. Untuk kasus ini, bahasa tersebut adalah SQL dan pernyataan ini mewakili permintaan untuk semua baris dan bidang dari fact_Sale tabel.

Berkonsultasi dengan kueri sumber data ini dapat membantu Anda lebih memahami cerita yang coba disampaikan oleh rencana kueri lengkap:

  • Sql.Database: Koneksi ke database dan mengirim permintaan metadata untuk memahami kemampuannya.
  • Value.NativeQuery: Mewakili permintaan yang dihasilkan oleh Power Query untuk memenuhi kueri. Power Query mengirimkan permintaan data dalam pernyataan SQL asli ke sumber data. Untuk kasus ini, yang mewakili permintaan hanya untuk 10 rekaman fact_Sale teratas tabel, dengan hanya bidang yang diperlukan setelah diurutkan dalam urutan menurun menggunakan Sale Key bidang .

Catatan

Meskipun tidak ada klausa yang dapat digunakan untuk MEMILIH baris bawah tabel dalam bahasa T-SQL, ada klausul TOP yang mengambil baris atas tabel.

Untuk evaluasinya, kueri ini hanya mengunduh 10 baris, hanya dengan bidang yang Anda minta dari fact_Sale tabel. Kueri ini membutuhkan waktu rata-rata 31 detik untuk diproses dalam contoh standar aliran data Power BI (yang memperkirakan evaluasi dan pemuatan data ke aliran data).

Perbandingan performa

Untuk lebih memahami pengaruh yang dimiliki lipatan kueri dalam kueri ini, Anda bisa me-refresh kueri Anda, merekam waktu yang diperlukan untuk sepenuhnya me-refresh setiap kueri, dan membandingkannya. Untuk kesederhanaan, artikel ini menyediakan pengaturan waktu refresh rata-rata yang diambil menggunakan mekanika refresh aliran data Power BI sambil menyambungkan ke lingkungan Azure Synapse Analytics khusus dengan DW2000c sebagai tingkat layanan.

Waktu refresh untuk setiap kueri adalah sebagai berikut:

Contoh Label Waktu dalam detik
Tidak ada lipatan kueri Tidak 361
Pelipatan kueri parsial Sebagian 184
Pelipatan kueri penuh Penuh 31

Bagan yang membandingkan waktu refresh kueri tanpa lipatan dengan 361 detik, pelipatan kueri parsial dengan 184 detik, dan kueri yang sepenuhnya dilipat dengan 31 detik.

Sering kali kueri yang sepenuhnya melipat kembali ke sumber data mengungguli kueri serupa yang tidak sepenuhnya dilipat kembali ke sumber data. Mungkin ada banyak alasan mengapa hal ini terjadi. Alasan ini berkisar dari kompleksitas transformasi yang dilakukan kueri Anda, hingga pengoptimalan kueri yang diterapkan di sumber data Anda, seperti indeks dan komputasi khusus, dan sumber daya jaringan. Namun, ada dua proses kunci tertentu yang mencoba digunakan lipatan kueri yang meminimalkan pengaruh yang dimiliki kedua proses ini dengan Power Query:

  • Data saat transit
  • Transformasi yang dijalankan oleh mesin Power Query

Bagian berikut menjelaskan pengaruh yang dimiliki kedua proses ini dalam kueri yang disebutkan sebelumnya.

Data saat transit

Saat kueri dijalankan, kueri mencoba mengambil data dari sumber data sebagai salah satu langkah pertamanya. Data apa yang diambil dari sumber data ditentukan oleh mekanisme lipatan kueri. Mekanisme ini mengidentifikasi langkah-langkah dari kueri yang dapat dilepaskan ke sumber data.

Tabel berikut mencantumkan jumlah baris yang diminta dari fact_Sale tabel database. Tabel ini juga menyertakan deskripsi singkat tentang pernyataan SQL yang dikirim untuk meminta data tersebut dari sumber data.

Contoh Label Baris yang diminta Deskripsi
Tidak ada lipatan kueri Tidak 3644356 Meminta semua bidang dan semua rekaman dari fact_Sale tabel
Pelipatan kueri parsial Sebagian 3644356 Minta semua rekaman, tetapi hanya bidang yang fact_Sale diperlukan dari tabel setelah diurutkan menurut Sale Key bidang
Pelipatan kueri penuh Penuh 10 Minta hanya bidang yang diperlukan dan 10 rekaman fact_Sale TERATAS tabel setelah diurutkan dalam urutan menurun menurut Sale Key bidang

Bagan dengan jumlah baris yang dikumpulkan dari database tanpa pelipatan kueri, pelipatan kueri parsial, dan pelipatan kueri penuh.

Saat meminta data dari sumber data, sumber data perlu menghitung hasil untuk permintaan lalu mengirim data ke pemohon. Meskipun sumber daya komputasi telah disebutkan, sumber daya jaringan untuk memindahkan data dari sumber data ke Power Query, lalu membuat Power Query dapat menerima data secara efektif dan menyiapkannya untuk transformasi yang akan terjadi secara lokal dapat memakan waktu tergantung pada ukuran data.

Untuk contoh yang dipamerkan, Power Query harus meminta lebih dari 3,6 juta baris dari sumber data untuk tidak ada contoh pelipatan kueri dan pelipatan kueri parsial. Untuk contoh pelipatan kueri lengkap, kueri hanya meminta 10 baris. Untuk bidang yang diminta, contoh tidak ada lipatan kueri yang meminta semua bidang yang tersedia dari tabel. Baik lipatan kueri parsial maupun contoh pelipatan kueri lengkap hanya mengirimkan permintaan untuk bidang yang mereka butuhkan.

Perhatian

Kami menyarankan agar Anda menerapkan solusi refresh bertambah bertahap yang memanfaatkan pelipatan kueri untuk kueri atau tabel dengan data dalam jumlah besar. Integrasi produk yang berbeda dari Power Query menerapkan batas waktu untuk mengakhiri kueri yang berjalan lama. Beberapa sumber data juga menerapkan batas waktu pada sesi yang berjalan lama, mencoba menjalankan kueri mahal terhadap server mereka. Informasi selengkapnya: Menggunakan refresh bertahap dengan aliran data dan Refresh bertahap untuk model semantik

Transformasi yang dijalankan oleh mesin Power Query

Artikel ini memperlihatkan bagaimana Anda bisa menggunakan paket Kueri untuk lebih memahami bagaimana kueri Anda mungkin dievaluasi. Di dalam rencana kueri, Anda dapat melihat simpul yang tepat dari operasi transformasi yang akan dilakukan oleh mesin Power Query.

Tabel berikut ini menampilkan simpul dari rencana kueri kueri kueri sebelumnya yang akan dievaluasi oleh mesin Power Query.

Contoh Label Simpul transformasi mesin Power Query
Tidak ada lipatan kueri Tidak Table.LastN, Table.SelectColumns
Pelipatan kueri parsial Sebagian Table.LastN
Pelipatan kueri penuh Penuh

Bagan dengan total transformasi yang dijalankan oleh mesin Power Query tanpa pelipatan kueri, pelipatan kueri parsial, dan pelipatan kueri penuh.

Untuk contoh yang ditampilkan dalam artikel ini, contoh pelipatan kueri lengkap tidak memerlukan transformasi apa pun untuk terjadi di dalam mesin Power Query karena tabel output yang diperlukan berasal langsung dari sumber data. Sebaliknya, dua kueri lainnya memerlukan beberapa komputasi untuk terjadi di mesin Power Query. Karena jumlah data yang perlu diproses oleh kedua kueri ini, proses untuk contoh ini membutuhkan lebih banyak waktu daripada contoh pelipatan kueri lengkap.

Transformasi dapat dikelompokkan ke dalam kategori berikut:

Tipe Operator Deskripsi
Jarak Jauh Operator yang merupakan simpul sumber data. Evaluasi operator ini terjadi di luar Power Query.
Streaming Operator adalah operator pass-through. Misalnya, Table.SelectRows dengan filter sederhana biasanya dapat memfilter hasil saat melewati operator, dan tidak perlu mengumpulkan semua baris sebelum memindahkan data. Table.SelectColumns dan Table.ReorderColumns merupakan contoh lain dari operator semacam ini.
Pemindaian penuh Operator yang perlu mengumpulkan semua baris sebelum data dapat beralih ke operator berikutnya dalam rantai. Misalnya, untuk mengurutkan data, Power Query perlu mengumpulkan semua data. Contoh lain dari operator pemindaian penuh adalah Table.Group, , Table.NestedJoindan Table.Pivot.

Tip

Meskipun tidak setiap transformasi sama dari sudut performa, dalam kebanyakan kasus, memiliki lebih sedikit transformasi biasanya lebih baik.

Pertimbangan dan saran

  • Ikuti praktik terbaik saat membuat kueri baru, seperti yang dinyatakan dalam Praktik terbaik di Power Query.
  • Gunakan indikator pelipatan kueri untuk memeriksa langkah mana yang mencegah kueri Anda dilipat. Susun ulang jika perlu untuk meningkatkan pelipatan.
  • Gunakan rencana kueri untuk menentukan transformasi mana yang terjadi di mesin Power Query untuk langkah tertentu. Pertimbangkan untuk memodifikasi kueri yang sudah ada dengan mengatur ulang langkah-langkah Anda. Kemudian periksa rencana kueri dari langkah terakhir kueri Anda lagi dan lihat apakah rencana kueri terlihat lebih baik daripada yang sebelumnya. Misalnya, rencana kueri baru memiliki lebih sedikit simpul daripada yang sebelumnya, dan sebagian besar simpul adalah simpul "Streaming" dan bukan "pemindaian penuh". Untuk sumber data yang mendukung pelipatan, simpul apa pun dalam rencana kueri selain Value.NativeQuery dan simpul akses sumber data mewakili transformasi yang tidak dilipat.
  • Jika tersedia, Anda bisa menggunakan opsi Tampilkan Kueri Asli (atau Tampilkan kueri sumber data) untuk memastikan bahwa kueri Anda dapat dilipat kembali ke sumber data. Jika opsi ini dinonaktifkan untuk langkah Anda, dan Anda menggunakan sumber yang biasanya mengaktifkannya, Anda telah membuat langkah yang menghentikan pelipatan kueri. Jika Anda menggunakan sumber yang tidak mendukung opsi ini, Anda bisa mengandalkan indikator lipatan kueri dan rencana kueri.
  • Gunakan alat diagnostik kueri untuk lebih memahami permintaan yang dikirim ke sumber data Anda saat kemampuan lipatan kueri tersedia untuk konektor.
  • Saat menggabungkan data yang bersumber dari penggunaan beberapa konektor, Power Query mencoba mendorong pekerjaan sebanyak mungkin ke kedua sumber data sambil mematuhi tingkat privasi yang ditentukan untuk setiap sumber data.
  • Baca artikel tentang tingkat privasi untuk melindungi kueri Anda agar tidak berjalan terhadap kesalahan Firewall Privasi Data.
  • Gunakan alat lain untuk memeriksa lipatan kueri dari perspektif permintaan yang diterima oleh sumber data. Berdasarkan contoh dalam artikel ini, Anda dapat menggunakan Microsoft SQL Server Profiler untuk memeriksa permintaan yang dikirim oleh Power Query dan diterima oleh Microsoft SQL Server.
  • Jika Anda menambahkan langkah baru ke kueri yang sepenuhnya dilipat dan langkah baru juga dilipat, Power Query mungkin mengirim permintaan baru ke sumber data alih-alih menggunakan versi cache dari hasil sebelumnya. Dalam praktiknya, proses ini dapat menghasilkan operasi yang tampaknya sederhana pada sejumlah kecil data yang membutuhkan waktu lebih lama untuk di-refresh dalam pratinjau dari yang diharapkan. Refresh yang lebih lama ini disebabkan oleh Power Query yang mengkueri ulang sumber data daripada mengerjakan salinan data lokal.