Gambaran umum evaluasi kueri dan pelipatan kueri di Power Query

Power Query mengevaluasi kueri M untuk menentukan data dan transformasi yang diperlukan untuk hasilnya. Selama evaluasi, pelipatan kueri mencoba menerjemahkan transformasi yang didukung menjadi operasi yang dapat dilakukan oleh sumber data. Transformasi yang tidak dapat dilipat berjalan di mesin Power Query.

Apa itu skrip M Power Query?

Skrip M, juga disebut kode M, adalah kumpulan fungsi dan sintaks bahasa rumus Power Query M yang Power Query mengevaluasi untuk menghasilkan hasil kueri. Setiap kueri memiliki skrip M, baik Power Query membuatnya, Anda menulisnya di editor tingkat lanjut, atau Anda memasukkannya dalam kueri kosong.

Petunjuk / Saran

Anda dapat menganggap skrip M sebagai resep yang menjelaskan cara menyiapkan data Anda.

Cara paling umum untuk membuat skrip M adalah dengan menggunakan editor Power Query. Misalnya, saat Anda menyambungkan ke sumber data, seperti database SQL Server, perhatikan di sisi kanan layar Anda bahwa ada bagian yang disebut langkah-langkah yang diterapkan. Bagian ini memperlihatkan semua langkah atau transformasi yang digunakan dalam kueri Anda. Dalam hal ini, editor Power Query berfungsi sebagai antarmuka untuk membantu Anda membuat skrip M yang sesuai untuk transformasi yang Anda inginkan dan memastikan bahwa kode yang Anda gunakan valid.

Nota

Skrip M digunakan di editor Power Query untuk:

  • Perlihatkan kueri sebagai serangkaian langkah dan memungkinkan Anda membuat atau mengubah langkah-langkah.
  • Perlihatkan tampilan diagram.

Cuplikan layar langkah-langkah yang diterapkan dan tampilan pratinjau data.

Dalam contoh SQL Server ini, panel Langkah yang diterapkan berisi langkah-langkah berikut:

  • Sumber: Membuat koneksi ke sumber data. Dalam hal ini, ini adalah koneksi ke database SQL Server.
  • Navigasi: Menavigasi ke tabel tertentu dalam database.
  • Menghapus kolom lain: Memilih kolom mana dari tabel yang akan disimpan.
  • Baris yang diurutkan: Mengurutkan tabel menggunakan satu atau beberapa kolom.
  • Baris atas yang disimpan: Memfilter tabel untuk hanya menyimpan beberapa baris dari bagian atas tabel.

Menampilkan dan mengedit skrip M di Power Query

Kumpulan nama langkah ini adalah cara yang mudah dan menyenangkan untuk melihat skrip M yang dibuat oleh Power Query untuk Anda. Anda dapat melihat skrip M lengkap dengan beberapa cara. Di Power Query, pilih Editor Lanjutan di tab Tampilan. Anda juga bisa memilih Editor Lanjutan dari grup Kueri di tab Beranda. Di beberapa versi Power Query, Anda juga bisa mengubah tampilan bilah rumus untuk memperlihatkan skrip kueri dengan masuk ke tab Tampilan dan dari grup Tata Letak, pilih Skrip tampilan>Skrip skrip Kueri.

Cuplikan layar yang berisi skrip M lengkap dan nama yang sesuai dari langkah-langkah yang diterapkan.

Sebagian besar nama yang Anda temukan di panel Langkah yang diterapkan juga digunakan seperti dalam skrip M. Anda memberi nama langkah-langkah kueri dengan menggunakan pengidentifikasi dalam bahasa M. Terkadang karakter tambahan membungkus nama langkah dalam M, tetapi karakter ini tidak ditampilkan dalam langkah-langkah yang diterapkan. Contohnya adalah #"Kept top rows", yang dikategorikan sebagai pengidentifikasi yang dikutip karena karakter tambahan ini. Pengidentifikasi yang dikutip memungkinkan urutan nol atau lebih karakter Unicode digunakan sebagai pengidentifikasi, termasuk kata kunci, spasi kosong, komentar, operator, dan tanda baca. Untuk mempelajari selengkapnya tentang pengidentifikasi dalam bahasa M, lihat struktur leksikal.

Setiap perubahan yang Anda buat pada kueri Anda melalui editor Power Query secara otomatis memperbarui skrip M untuk kueri Anda. Misalnya, jika Anda mengubah nama langkah Baris Teratas yang Dipertahankan menjadi 20 Baris Teratas, nama tersebut juga berubah di tampilan skrip kueri.

Cuplikan layar nama langkah yang diterapkan diubah menjadi 20 baris teratas, yang juga memperbarui skrip M.

Meskipun kami menyarankan agar Anda menggunakan editor Power Query untuk membuat semua atau sebagian besar skrip M untuk Anda, Anda dapat menambahkan atau memodifikasi potongan skrip M Anda secara manual. Untuk mempelajari selengkapnya, lihat referensi bahasa M.

Dalam artikel ini, skrip M mengacu pada kode M Power Query dalam kueri, yang bisa Anda akses melalui editor tingkat lanjut atau tampilan skrip kueri di bilah rumus.

Cara Power Query mengevaluasi kueri M

Power Query mengevaluasi skrip M dengan menentukan output yang diperlukan dan cara menghasilkannya. Untuk kueri yang menggunakan sumber data eksternal, evaluasi mencakup permintaan data dari sumbernya, memproses transformasi apa pun yang berjalan di mesin Power Query, dan memuat hasilnya ke tujuan.

Diagram berikut menjelajahi proses yang terjadi saat kueri dievaluasi dalam Power Query.

Diagram yang memperlihatkan jalur evaluasi kueri dari skrip M ke output akhir.

  1. Skrip M, yang ditemukan di dalam editor tingkat lanjut, dikirimkan ke mesin Power Query. Informasi penting lainnya juga disertakan, seperti kredensial dan tingkat privasi sumber data.
  2. Power Query menentukan data apa yang perlu diekstrak dari sumber data dan mengirimkan permintaan ke sumber data.
  3. Sumber data menanggapi permintaan dari Power Query dengan mentransfer data yang diminta ke Power Query.
  4. Power Query menerima data masuk dari sumber data dan melakukan transformasi apa pun menggunakan mesin Power Query jika perlu.
  5. Power Query memuat hasil transformasi ke tujuan.

Nota

Alur ini menunjukkan kueri yang membaca data dari database SQL Server. Untuk kueri tanpa sumber data eksternal, Power Query masih mengevaluasi skrip M dan menghasilkan hasil, tetapi permintaan sumber data dan tahap transfer tidak berlaku.

Bagaimana pelipatan kueri mengoptimalkan evaluasi kueri

Saat Power Query membaca skrip M Anda, Power Query menjalankannya melalui proses pengoptimalan untuk mengevaluasi kueri Anda lebih efisien. Dalam proses ini, ini menentukan langkah mana (transformasi) dari kueri Anda yang dapat dilepaskan ke sumber data Anda. Ini juga menentukan langkah lain mana yang perlu dievaluasi menggunakan mesin Power Query.

Proses pengoptimalan ini disebut pelipatan kueri. Query folding menerjemahkan transformasi M yang didukung menjadi operasi yang dapat dijalankan oleh sumber data. Power Query mencoba menjalankan kueri sebanyak mungkin di sumber data dan mengevaluasi transformasi yang tersisa di mesin Power Query.

Penting

Semua aturan dari bahasa rumus Power Query M (juga dikenal sebagai bahasa M) diikuti. Yang paling mencolok, lazy evaluation memainkan peran penting selama proses pengoptimalan. Dalam proses ini, Power Query memahami transformasi spesifik apa dari kueri Anda yang perlu dievaluasi. Power Query juga memahami transformasi lain yang tidak perlu dievaluasi karena tidak diperlukan dalam output kueri Anda.

Selain itu, ketika beberapa sumber terlibat, tingkat privasi data dari setiap sumber data dipertimbangkan saat mengevaluasi kueri. Informasi selengkapnya: Di balik layar Firewall Privasi Data

Diagram berikut menunjukkan langkah-langkah yang terjadi dalam proses pengoptimalan ini.

Diagram yang memperlihatkan proses pengoptimalan selama evaluasi kueri.

  1. Skrip M, yang ditemukan di dalam editor tingkat lanjut, dikirimkan ke mesin Power Query. Informasi penting lainnya juga disediakan, seperti kredensial dan tingkat privasi sumber data.
  2. Mekanisme pelipatan kueri mengirimkan permintaan metadata untuk menentukan kemampuan sumber data, skema tabel, hubungan antara tabel di sumber data, dan metadata lainnya.
  3. Berdasarkan metadata yang diterimanya, mekanisme pelipatan kueri menentukan informasi apa yang akan diekstrak dari sumber data dan transformasi mana yang harus terjadi di dalam mesin Power Query. Ini mengirimkan instruksi ke dua komponen lain yang mengambil data dari sumber data dan mengubah data masuk di mesin Power Query jika perlu.
  4. Setelah komponen internal Power Query menerima instruksi, Power Query mengirim permintaan ke sumber data menggunakan kueri sumber data.
  5. Sumber data menerima permintaan dari Power Query dan mentransfer data ke mesin Power Query.
  6. Setelah data berada di dalam Power Query, mesin transformasi di dalam Power Query (juga dikenal sebagai mesin mashup) melakukan transformasi yang tidak dapat dilipat kembali atau dibongkar ke sumber data.
  7. Power Query memuat hasil transformasi ke tujuan.

Nota

Bergantung pada transformasi dan sumber data yang digunakan dalam skrip M, Power Query menentukan apakah akan melakukan streaming atau buffer data masuk.

Apa yang dilakukan query folding di Power Query

Tujuan pelipatan kueri adalah untuk mengalihkan atau mendorong evaluasi kueri sebanyak mungkin ke sumber data yang mampu menghitung transformasi kueri Anda.

Mekanisme pelipatan kueri mencapai tujuan ini dengan menerjemahkan skrip M Anda ke bahasa yang dapat ditafsirkan dan dijalankan sumber data Anda. Sistem kemudian mendorong evaluasi ke sumber data Anda dan mengirim hasil evaluasi tersebut ke Power Query.

Operasi ini sering memberikan eksekusi kueri yang lebih cepat daripada mengekstrak semua data yang diperlukan dari sumber data Anda dan menjalankan semua transformasi yang diperlukan di mesin Power Query.

Saat Anda menggunakan pengalaman mendapatkan data , Power Query memandu Anda melalui proses sehingga memungkinkan Anda terhubung ke sumber data Anda. Saat melakukannya, Power Query menggunakan serangkaian fungsi dalam bahasa M yang dikategorikan sebagai fungsi akses data . Fungsi khusus ini menggunakan mekanisme dan protokol untuk menyambungkan ke sumber data Anda menggunakan bahasa yang dapat dipahami sumber data Anda.

Untuk transformasi yang dilakukan setelah fungsi sumber data, mekanisme pelipatan kueri memeriksa apakah transformasi tersebut dapat didorong ke sumber data alih-alih diproses dalam mesin Power Query.

Penting

Fungsi sumber data, biasanya ditampilkan sebagai langkah Sumber kueri, mengkueri data di sumber data dalam bahasa aslinya. Untuk transformasi yang dilakukan setelah fungsi sumber data, Power Query mencoba query folding hanya jika konektor dan transformasi mendukungnya. Mekanisme ini dapat menerjemahkan dan menggabungkan transformasi yang didukung ke dalam satu kueri sumber data.

Hasil query folding di Power Query

Bergantung pada bagaimana kueri disusun, mungkin ada tiga kemungkinan hasil untuk mekanisme pelipatan kueri:

Hasil query folding Memproses di sumber data Pemrosesan di mesin Power Query
Pelipatan kueri secara penuh Sumber data memproses semua transformasi kueri. Pemrosesan minimal terjadi di mesin Power Query.
Pelipatan kueri parsial Sumber data memproses transformasi yang dapat diterjemahkan oleh Power Query ke dalam bahasa kueri asli. Mesin Power Query memproses transformasi yang tersisa.
Tidak ada query folding Sumber data mengembalikan data sumber yang diminta tanpa memproses transformasi kueri. Mesin Power Query memproses semua transformasi yang diperlukan.

Sumber data yang mendukung pelipatan kueri

Dukungan pelipatan kueri bergantung pada konektor, sumber data, dan transformasi dalam kueri. Konektor untuk sumber data terstruktur dengan kemampuan pemrosesan kueri, seperti SQL Server dan Umpan OData, biasanya mendukung pelipatan kueri. Sumber tanpa mesin kueri, seperti file CSV dan Excel, tidak mendukung pelipatan kueri.

Selama pengoptimalan, mesin Power Query mungkin menyusun ulang langkah-langkah kueri. Menggunakan sumber data dengan lebih banyak sumber daya pemrosesan dan kemampuan pelipatan kueri dapat mengurangi waktu muat kueri karena pemrosesan terjadi di sumber data alih-alih di mesin Power Query.

Verifikasi pelipatan kueri di Power Query Online

Di Power Query Online, gunakan indikator query folding di samping langkah yang diterapkan untuk mengidentifikasi langkah mana yang mengalami pelipatan. Anda juga dapat menggunakan rencana kueri untuk melihat operasi mana yang berjalan di sumber data dan operasi mana yang berjalan di mesin Power Query. Fitur-fitur ini hanya tersedia di Power Query Online.

Jika tersedia, gunakan Tampilkan Kueri Asli atau Tampilkan kueri sumber data untuk memeriksa permintaan yang Power Query kirim ke sumber data. Ketersediaan tergantung pada konektor.