Memahami pelipatan menggunakan Diagnostik Kueri

Salah satu alasan paling umum untuk menggunakan Diagnostik Kueri adalah untuk lebih memahami operasi apa yang Power Query dorong ke sumber data back-end untuk dilakukan. Proses ini juga dikenal sebagai pelipatan. Untuk melihat operasi mana yang dapat dilipat, lihat kueri atau beberapa kueri paling spesifik yang dikirim Power Query ke sumber data backend. Anda dapat memeriksa proses ini untuk ODATA dan SQL.

Operasi yang dijelaskan dalam Merekam diagnostik kueri di Power BI melakukan empat langkah:

  • Menyambungkan ke sumber data
  • Mengambil tabel pelanggan
  • Memfilter peran ID Pelanggan ke Sales Representative
  • Kelompokkan menurut Country

Karena konektor ODATA saat ini tidak mendukung folding COUNT() ke titik akhir, dan karena titik akhir ini terbatas dalam operasinya juga, kami tidak mengharapkan langkah terakhir itu untuk dilipat. Di sisi lain, pemfilteran relatif sepele. Inilah yang kita lihat jika kita melihat kueri yang paling spesifik yang dipancarkan:

Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1

Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK

Kita dapat melihat bahwa kita memfilter tabel untuk ContactTitle yang sama dengan Sales Representative, dan kita hanya mengembalikan dua kolom: Customer ID dan Country. Country diperlukan untuk operasi pengelompokan, yang harus dilakukan secara lokal karena tidak dilakukan oleh titik akhir ODATA. Kita bisa menyimpulkan apa yang terlipat dan yang tidak terlipat di sini.

Demikian pula, jika kita melihat kueri spesifik dan akhir yang dipancarkan dalam diagnostik SQL, kita melihat sesuatu yang sedikit berbeda:

    count(1) as [Count]
from 
(
    select [_].[Country]
    from [dbo].[Customers] as [_]
    where [_].[ContactTitle] = 'Sales Representative' and [_].[ContactTitle] is not null
) as [rows]
group by [Country]

Anda dapat melihat bahwa Power Query membuat sub-pemilihan tempat ContactTitle difilter ke Sales Representative, lalu mengelompokkan menurut Country pada sub-pemilihan ini. Semua operasi kami berhenti.

Dengan menggunakan Diagnostik Kueri, kita dapat memeriksa jenis operasi apa yang dilipat. Di masa depan, kami berharap dapat membuat kemampuan ini lebih mudah digunakan.