Bagikan melalui


Contoh pemrosesan kueri

Artikel ini menyediakan beberapa contoh skenario untuk masing-masing dari tiga kemungkinan hasil lipatan kueri. Ini juga mencakup beberapa saran tentang bagaimana memaksimalkan mekanisme pelipatan kueri, serta efek yang dapat ditimbulkannya pada 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 dengan hanya mencakup bidang-bidang berikut:

  • Kunci Penjualan
  • Kunci Pelanggan
  • Kunci Tanggal Faktur
  • Description
  • Kuantitas

Nota

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.

Cuplikan layar tabel output sampel 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 .

Tangkapan layar dari transformasi Pertahankan baris bawah yang ditemukan di dalam grup Kurangi baris dari tab Home.

Setelah Anda 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.

Cuplikan layar panel Pertahankan baris bawah tempat Anda memasukkan nilai 10 di dalam dialog Pertahankan baris bawah.

Petunjuk / Saran

Untuk kasus ini, melakukan operasi ini menghasilkan hasil dari 10 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.

Cuplikan layar Ribbon Beranda di mana Anda memilih transformasi Pilih kolom untuk contoh tanpa penggabungan kueri.

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

Cuplikan layar panel Pilih kolom tempat Anda memilih kolom 'Kunci Penjualan', 'Kunci Pelanggan', 'Kunci Tanggal Faktur', 'Deskripsi', dan 'Kuantitas'.

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 penggabungan kueri: Memahami evaluasi kueri

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

Panel langkah yang berlaku untuk kueri dengan indikator pelipatan kueri yang menunjukkan baris terbawah yang disimpan dan langkah penghapusan kolom lainnya.

Anda bisa mengklik kanan langkah terakhir kueri Anda, yang disebut Pilih kolom, dan memilih opsi yang bertuliskan Lihat Rencana 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.

Cuplikan layar rencana Kueri untuk kueri yang dibuat dengan beberapa simpul, dua di antaranya berada dalam persegi panjang yang mewakili simpul yang 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 sebelumnya dan simpul Value.NativeQuery , mewakili bagian mana dari kueri yang dilepaskan ke sumber data. Sisa simpul, dalam kasus ini Table.LastN dan Table.SelectColumns yang disorot dalam persegi panjang pada gambar sebelumnya, dievaluasi oleh engine Power Query. Kedua simpul ini mewakili dua transformasi yang Anda tambahkan, Menyimpan baris bawah dan Memilih 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 .

Cuplikan layar Pernyataan SQL yang 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. Menyambungkan 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 tabel fact_Sale. Untuk skenario ini, kasus ini tidak diharapkan, karena tabel berisi jutaan baris dan yang diminati hanyalah 10 baris 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 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.

Cuplikan layar pita Beranda tempat Anda memilih transformasi Pilih kolom untuk contoh lipatan kueri parsial.

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

Cuplikan layar panel Pilih kolom tempat Anda memilih kolom 'Kunci Penjualan', 'Kunci Pelanggan', 'Kunci Tanggal Faktur', 'Deskripsi', dan 'Kuantitas' untuk contoh pelipatan kueri parsial.

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

Cuplikan layar menu kontekstual tempat Anda mengurutkan bidang 'Kunci Penjualan' tabel dalam urutan naik.

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

Cuplikan layar menu kontekstual tabel tempat Anda memilih opsi Pertahankan baris bawah.

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

Cuplikan layar dialog Pertahankan baris bawah dengan nilai 10 dimasukkan sebagai nilai input untuk hanya menyimpan 10 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 penyederhanaan kueri parsial: Memahami penilaian 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 dievaluasi di luar sumber data atau, dengan kata lain, oleh mesin Power Query.

Cuplikan layar panel Langkah yang diterapkan untuk kueri dengan indikator pelipatan kueri yang menampilkan bahwa baris bawah yang disimpan ditandai sebagai langkah yang 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.

Cuplikan layar rencana Kueri memperlihatkan beberapa simpul di mana simpul 'Table.LastN', yang diperlihatkan di dalam persegi panjang, adalah simpul yang 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 .

Cuplikan layar paket Kueri tempat Anda bisa memilih Tampilkan detail di 'Value.NativeQuery' untuk melihat permintaan yang tepat.

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

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: Menyambungkan 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 instansi standar dataflow Power BI (yang meliputi evaluasi dan pemuatan data dalam dataflow).

Contoh pelipatan kueri lengkap

Setelah Anda menyambungkan ke database dan menavigasi ke fact_Sale tabel, mulailah dengan memilih kolom yang ingin Anda pertahankan 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.

Cuplikan layar dari transformasi Pilih Kolom yang digunakan untuk contoh penggabungan kueri lengkap.

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

Cuplikan layar memperlihatkan kolom 'Kunci Penjualan', 'Kunci Pelanggan', 'Kunci Tanggal Faktur', 'Deskripsi', dan 'Kuantitas' yang dipilih untuk contoh pelipatan kueri lengkap.

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

Cuplikan layar menu konteks bidang 'Kunci Penjualan' dengan opsi Urutan menurun ditekankan.

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.

Cuplikan layar dialog Pertahankan baris atas dengan nilai 10 dimasukkan sebagai nilai input untuk hanya menyimpan 10 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-langkah yang diterapkan, perhatikan bahwa indikator lipatan kueri memperlihatkan bahwa transformasi yang Anda tambahkan, Pilih kolom, Baris yang Diurutkan, dan Baris teratas yang disimpan, ditandai sebagai langkah-langkah yang 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 bertuliskan Rencana kueri.

Tangkapan layar rencana kueri yang memperlihatkan konten Value.NativeQuery.

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: Menyambungkan 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, ini mewakili permintaan untuk hanya 10 rekaman teratas tabel fact_Sale, dengan hanya bidang yang diperlukan setelah diurutkan dalam urutan menurun menggunakan Sale Key.

Nota

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, dengan hanya bidang yang Anda minta dari tabel fact_Sale. 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 efek 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 waktu penyegaran rata-rata yang diambil menggunakan mekanisme penyegaran dataflows (aliran data) Power BI ketika tersambung ke lingkungan Azure Synapse Analytics khusus yang menggunakan DW2000c sebagai tingkat layanan.

Waktu refresh untuk setiap kueri adalah sebagai berikut:

Example Etiket Waktu dalam detik
Tidak ada lipatan kueri None 361
Pelipatan kueri parsial Partial 184
Pelipatan kueri penuh Penuh 31

Bagan yang membandingkan waktu penyegaran kueri tanpa pelipatan 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, terdapat dua proses kunci khusus yang dicoba dioptimalkan oleh query folding untuk meminimalkan dampak dari kedua proses tersebut pada Power Query.

  • Data yang sedang dalam perjalanan
  • Transformasi yang dijalankan oleh mesin Power Query

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

Data yang sedang dalam perjalanan

Saat kueri dijalankan, kueri mencoba mengambil data dari sumber data sebagai salah satu langkah pertamanya. Jenis data 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.

Example Etiket Baris yang diminta Description
Tidak ada lipatan kueri None 3644356 Permintaan untuk semua bidang dan semua rekaman dari tabel fact_Sale
Pelipatan kueri parsial Partial 3644356 Permintaan untuk semua catatan, tetapi hanya bidang yang diperlukan dari tabel fact_Sale setelah diurutkan berdasarkan bidang Sale Key
Pelipatan kueri penuh Penuh 10 Minta hanya kolom yang diperlukan dan 10 rekaman TERATAS tabel fact_Sale setelah diurutkan dalam urutan menurun menurut kolom Sale Key

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

Saat Anda 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 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 contoh tanpa 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 penyegaran bertahap yang menggunakan penggabungan kueri untuk kueri atau tabel dengan data 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, berupaya melakukan kueri yang membutuhkan banyak sumber daya 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 Rencana Kueri untuk lebih memahami cara penilaian kueri Anda. Di dalam rencana kueri, Anda dapat melihat simpul yang tepat dari operasi transformasi yang dilakukan oleh mesin Power Query.

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

Example Etiket Simpul transformasi mesin pengolah Power Query
Tidak ada lipatan kueri None Table.LastN, Table.SelectColumns
Pelipatan kueri parsial Partial Table.LastN
Pelipatan kueri penuh Penuh

Grafik dengan total transformasi yang dilakukan 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 Description
Terpencil Operator yang merupakan simpul sumber data. Evaluasi operator ini terjadi di luar Power Query.
Streaming Operator ini merupakan operator lintas langsung. 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.

Petunjuk / Saran

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 pelipatan kueri Anda. 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 penggulungan 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 Anda 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 untuk mencegahnya mengalami error 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 melakukan kueri ulang sumber data asli daripada menggunakan salinan data lokal.