Gambaran umum evaluasi kueri dan pelipatan kueri di Power Query

Artikel ini memberikan gambaran umum dasar tentang bagaimana kueri M diproses dan diubah menjadi permintaan sumber data.

Skrip Power Query M

Kueri apa pun, baik yang dibuat oleh Power Query, ditulis secara manual oleh Anda di editor tingkat lanjut, atau dimasukkan menggunakan dokumen kosong, terdiri dari fungsi dan sintaks dari bahasa rumus Power Query M. Kueri ini ditafsirkan dan dievaluasi oleh mesin Power Query untuk menghasilkan hasilnya. Skrip M berfungsi sebagai kumpulan instruksi yang diperlukan untuk mengevaluasi kueri.

Tip

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, Anda akan melihat di sisi kanan layar Anda bahwa ada bagian yang disebut langkah-langkah yang diterapkan. Bagian ini menampilkan 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 cari, dan memastikan bahwa kode yang Anda gunakan valid.

Catatan

Skrip M digunakan di editor Power Query untuk:

  • Tampilkan kueri sebagai serangkaian langkah dan izinkan pembuatan atau modifikasi langkah-langkah baru.
  • Menampilkan tampilan diagram.

Gambar langkah-langkah yang diterapkan dan tampilan pratinjau data.

Gambar sebelumnya menekankan bagian langkah-langkah yang diterapkan, yang 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 jumlah baris tertentu dari bagian atas tabel.

Kumpulan nama langkah ini adalah cara yang mudah diingat untuk menampilkan skrip M yang telah dibuat Power Query untuk Anda. Ada beberapa cara untuk melihat skrip M lengkap. Di Power Query, Anda bisa memilih 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.

Gambar dengan skrip M lengkap dan nama yang sesuai dari langkah-langkah yang diterapkan.

Sebagian besar nama yang ditemukan di panel Langkah yang diterapkan juga digunakan seperti dalam skrip M. Langkah-langkah kueri diberi nama menggunakan sesuatu yang disebut pengidentifikasi dalam bahasa M. Terkadang karakter tambahan dibungkus di sekitar 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 dapat digunakan untuk mengizinkan urutan nol atau lebih karakter Unicode untuk digunakan sebagai pengidentifikasi, termasuk kata kunci, spasi kosong, komentar, operator, dan tanda baca. Untuk mempelajari selengkapnya tentang pengidentifikasi dalam bahasa M, buka struktur leksikal.

Setiap perubahan yang Anda buat pada kueri Anda melalui editor Power Query akan secara otomatis memperbarui skrip M untuk kueri Anda. Misalnya, menggunakan gambar sebelumnya sebagai titik awal, jika Anda mengubah nama langkah baris atas yang disimpan menjadi 20 baris Teratas, perubahan ini akan secara otomatis diperbarui dalam tampilan skrip.

Gambar dengan nama langkah yang diterapkan berubah 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 bisa menambahkan atau memodifikasi potongan skrip M Anda secara manual. Untuk mempelajari selengkapnya tentang bahasa M, buka situs dokumen resmi untuk bahasa M.

Catatan

Skrip M, juga disebut sebagai kode M, adalah istilah yang digunakan untuk kode apa pun yang menggunakan bahasa M. Dalam konteks artikel ini, skrip M juga mengacu pada kode yang ditemukan di dalam kueri Power Query dan dapat diakses melalui jendela editor tingkat lanjut atau melalui tampilan skrip di bilah rumus.

Evaluasi kueri di Power Query

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

Diagram evaluasi kueri sebagai gambaran umum.

  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 merespons 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. Hasil yang berasal dari titik sebelumnya dimuat ke tujuan.

Catatan

Meskipun contoh ini menampilkan kueri dengan SQL Database sebagai sumber data, konsep ini berlaku untuk kueri dengan atau tanpa sumber data.

Saat Power Query membaca skrip M Anda, Power Query menjalankan skrip melalui proses pengoptimalan untuk mengevaluasi kueri Anda dengan 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, di mana Power Query mencoba mendorong sebanyak mungkin eksekusi ke sumber data untuk mengoptimalkan eksekusi kueri Anda.

Penting

Semua aturan dari bahasa rumus Power Query M (juga dikenal sebagai bahasa M) diikuti. Terutama, evaluasi malas 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 evaluasi kueri yang menjelaskan proses pengoptimalan.

  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 ke sumber data untuk menentukan kemampuan sumber data, skema tabel, hubungan antara tabel yang berbeda di sumber data, dan banyak lagi.
  3. Berdasarkan metadata yang diterima, mekanisme pelipatan kueri menentukan informasi apa yang akan diekstrak dari sumber data dan kumpulan transformasi apa yang perlu terjadi di dalam mesin Power Query. Ini mengirimkan instruksi ke dua komponen lain yang mengurus pengambilan data dari sumber data dan mengubah data masuk di mesin Power Query jika perlu.
  4. Setelah instruksi diterima oleh komponen internal Power Query, Power Query mengirimkan 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. Hasil yang berasal dari titik sebelumnya dimuat ke tujuan.

Catatan

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

Gambaran umum pelipatan kueri

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

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

Operasi ini sering memberikan eksekusi kueri yang jauh 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 yang pada akhirnya memungkinkan Anda menyambungkan ke sumber data Anda. Saat melakukannya, Power Query menggunakan serangkaian fungsi dalam bahasa M yang dikategorikan sebagai mengakses fungsi data. Fungsi khusus ini menggunakan mekanisme dan protokol untuk menyambungkan ke sumber data Anda menggunakan bahasa yang dapat dipahami sumber data Anda.

Namun, langkah-langkah berikut dalam kueri Anda adalah langkah-langkah atau transformasi yang coba dioptimalkan oleh mekanisme pelipatan kueri. Kemudian memeriksa apakah mereka dapat dilepaskan ke sumber data Anda alih-alih diproses menggunakan mesin Power Query.

Penting

Semua fungsi sumber data, biasanya ditampilkan sebagai langkah Sumber kueri, mengkueri data di sumber data dalam bahasa aslinya. Mekanisme pelipatan kueri digunakan pada semua transformasi yang diterapkan ke kueri Anda setelah fungsi sumber data Anda sehingga dapat diterjemahkan dan digabungkan ke dalam kueri sumber data tunggal atau transformasi sebanyak yang dapat dilepaskan ke sumber data.

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

  • Pelipatan kueri penuh: Saat semua transformasi kueri Anda didorong kembali ke sumber data dan pemrosesan minimal terjadi di mesin Power Query.
  • Pelipatan kueri parsial: Saat hanya beberapa transformasi dalam kueri Anda, dan tidak semua, dapat didorong kembali ke sumber data. Dalam hal ini, hanya subset transformasi Anda yang dilakukan di sumber data Anda dan transformasi kueri lainnya terjadi di mesin Power Query.
  • Tidak ada pelipatan kueri: Saat kueri berisi transformasi yang tidak dapat diterjemahkan ke bahasa kueri asli sumber data Anda, baik karena transformasi tidak didukung atau konektor tidak mendukung pelipatan kueri. Untuk kasus ini, Power Query mendapatkan data mentah dari sumber data Anda dan menggunakan mesin Power Query untuk mencapai output yang Anda inginkan dengan memproses transformasi yang diperlukan di tingkat mesin Power Query.

Catatan

Mekanisme pelipatan kueri terutama tersedia di konektor untuk sumber data terstruktur seperti, tetapi tidak terbatas pada, Microsoft SQL Server dan Umpan OData. Selama fase pengoptimalan, mesin terkadang dapat menyusun ulang langkah-langkah dalam kueri.

Memanfaatkan sumber data yang memiliki lebih banyak sumber daya pemrosesan dan memiliki kemampuan pelipatan kueri dapat mempercepat waktu pemuatan kueri Anda saat pemrosesan terjadi di sumber data dan bukan di mesin Power Query.

Langkah berikutnya

Untuk contoh terperinci dari tiga kemungkinan hasil mekanisme pelipatan kueri, buka Contoh lipatan kueri.

Untuk informasi tentang indikator pelipatan kueri yang ditemukan di panel Langkah yang Diterapkan, buka Indikator pelipatan kueri