ทําความเข้าใจการพับโดยใช้การวินิจฉัยแบบสอบถาม

หนึ่งในเหตุผลที่พบบ่อยที่สุดในการใช้การวินิจฉัยคิวรีคือการทําความเข้าใจให้ดียิ่งขึ้นว่าการดําเนินการใดที่ Power Query ผลักดันลงไปยังแหล่งข้อมูลส่วนหลังเพื่อดําเนินการ กระบวนการนี้เรียกอีกอย่างว่าการพับ เมื่อต้องการดูว่าการดําเนินการใดที่พับ ให้ดูที่คิวรีหรือคิวรีที่เฉพาะเจาะจงที่สุดที่ Power Query ส่งไปยังแหล่งข้อมูลส่วนหลัง คุณสามารถตรวจสอบกระบวนการนี้ได้ทั้ง ODATA และ SQL

การดําเนินการที่อธิบายไว้ใน การบันทึกการวินิจฉัยคิวรีใน Power BI ดําเนินการสี่ขั้นตอน:

  • เชื่อมต่อกับแหล่งข้อมูล
  • ดึงตารางลูกค้า
  • กรองบทบาท ID ลูกค้าเป็น Sales Representative
  • จัดกลุ่มตาม Country

เนื่องจากตัวเชื่อมต่อ ODATA ไม่สนับสนุนการพับ COUNT() ไปยังจุดสิ้นสุด และเนื่องจากจุดสิ้นสุดนี้ถูกจํากัดในการดําเนินการเช่นกัน เราจึงไม่คาดหวังว่าขั้นตอนสุดท้ายนั้นจะพับ ในทางกลับกันการกรองนั้นค่อนข้างเล็กน้อย นี่คือสิ่งที่เราเห็นหากเราดูแบบสอบถามที่เฉพาะเจาะจงที่สุดที่ปล่อยออกมา:

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

เราจะเห็นว่าเรากําลังกรองตารางสําหรับ ContactTitle ค่าที่เท่ากับ Sales Representativeและเราส่งคืนเพียงสองคอลัมน์: Customer ID และ Country. Country จําเป็นสําหรับการดําเนินการจัดกลุ่ม ซึ่งต้องดําเนินการภายในเครื่อง เนื่องจากไม่ได้ดําเนินการโดยตําแหน่งข้อมูล ODATA เราสามารถสรุปได้ว่าอะไรพับและไม่พับที่นี่

ในทํานองเดียวกันหากเราดูแบบสอบถามเฉพาะและแบบสอบถามสุดท้ายที่ปล่อยออกมาในการวินิจฉัย SQL เราจะเห็นบางสิ่งบางอย่างที่แตกต่างออกไปเล็กน้อย:

    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]

คุณจะเห็นว่า Power Query สร้างการเลือกย่อยที่ContactTitleกรองเป็น Sales Representativeจากนั้นจัดกลุ่มตามCountryในส่วนที่เลือกย่อยนี้ การดําเนินงานทั้งหมดของเราถูกพับ

เมื่อใช้การวินิจฉัยแบบสอบถาม เราสามารถตรวจสอบได้ว่าการดําเนินการประเภทใดที่พับได้ ในอนาคต เราหวังว่าจะทําให้ความสามารถนี้ใช้งานได้ง่ายขึ้น