ภาพรวมของการประเมินคิวรีและการพับคิวรีใน Power Query

Power Query ประเมินคิวรี M เพื่อกําหนดข้อมูลและการแปลงที่จําเป็นสําหรับผลลัพธ์ ในระหว่างการประเมิน ความพยายามในการพับคิวรีจะแปลการแปลงที่ได้รับการสนับสนุนเป็นการดําเนินการที่แหล่งข้อมูลสามารถทําได้ การแปลงข้อมูลที่ไม่สามารถพับทํางานในกลไกจัดการ Power Query ได้

สคริปต์ Power Query M คืออะไร

สคริปต์ M หรือที่เรียกว่ารหัส M คือชุดของฟังก์ชันภาษาสูตร Power Query M และไวยากรณ์ Power Query ประเมินเพื่อสร้างผลลัพธ์คิวรี คิวรีทุกคิวรีมีสคริปต์ M ไม่ว่าจะเป็น Power Query สร้าง คุณเขียนในตัวแก้ไขขั้นสูง หรือคุณใส่ลงในคิวรี่ว่างเปล่า

เคล็ดลับ

คุณสามารถนึกภาพสคริปต์ M เป็นสูตรที่อธิบายวิธีการเตรียมข้อมูลของคุณ

วิธีที่พบบ่อยที่สุดในการสร้างสคริปต์ M คือการใช้ตัวแก้ไข Power Query ตัวอย่างเช่น เมื่อคุณเชื่อมต่อกับแหล่งข้อมูล เช่น ฐานข้อมูล SQL Server ให้สังเกตทางด้านขวาของหน้าจอของคุณที่มีส่วนที่เรียกว่า ขั้นตอนที่ใช้ ส่วนนี้แสดงขั้นตอนหรือการแปลงทั้งหมดที่ใช้ในคิวรีของคุณ ในกรณีนี้ ตัวแก้ไข Power Query ทําหน้าที่เป็นอินเทอร์เฟซเพื่อช่วยให้คุณสร้างสคริปต์ M ที่เหมาะสมสําหรับการแปลงที่คุณต้องการและทําให้แน่ใจว่าโค้ดที่คุณใช้ถูกต้อง

หมายเหตุ

สคริปต์ M ใช้ในตัวแก้ไข Power Query เพื่อ:

  • แสดงคิวรีเป็นชุดของขั้นตอน และช่วยให้คุณสร้างหรือปรับเปลี่ยนขั้นตอน
  • แสดงมุมมองไดอะแกรม

สกรีนช็อตของขั้นตอนที่นําไปใช้และมุมมองแสดงตัวอย่างข้อมูล

ในตัวอย่าง SQL Server นี้ บานหน้าต่างขั้นตอนที่ใช้ประกอบด้วยขั้นตอนต่อไปนี้:

  • แหล่งข้อมูล: ทําการเชื่อมต่อไปยังแหล่งข้อมูล ในกรณีนี้ เป็นการเชื่อมต่อกับฐานข้อมูล SQL Server
  • การนําทาง: นําทางไปยังตารางที่ระบุในฐานข้อมูล
  • ลบคอลัมน์อื่นออก: เลือกคอลัมน์จากตารางที่จะเก็บไว้
  • เรียงลําดับแถว: เรียงลําดับตารางโดยใช้คอลัมน์อย่างน้อยหนึ่งคอลัมน์
  • เก็บแถวบนสุดไว้: กรองตารางเพื่อเก็บเฉพาะบางแถวจากด้านบนของตาราง

ดูและแก้ไขสคริปต์ M ใน Power Query

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

สกรีนช็อตที่ประกอบด้วยสคริปต์ M แบบเต็มและชื่อที่สอดคล้องกันของขั้นตอนที่ใช้

ชื่อส่วนใหญ่ที่คุณพบในบานหน้าต่าง ขั้นตอนที่ใช้ ยังใช้เหมือนในสคริปต์ M คุณตั้งชื่อขั้นตอนของคิวรีโดยใช้ ตัวระบุ ในภาษา M บางครั้งอักขระเพิ่มเติมจะตัดคําชื่อขั้นตอนใน M แต่อักขระเหล่านี้ไม่แสดงในขั้นตอนที่ใช้ ตัวอย่างคือ #"Kept top rows"ซึ่งจัดประเภทเป็น ตัวระบุที่อ้างอิง เนื่องจากอักขระพิเศษเหล่านี้ ตัวระบุที่อ้างอิงจะช่วยให้สามารถใช้ลําดับของอักขระ Unicode ศูนย์หรือมากกว่าเป็นตัวระบุได้ รวมถึงคําสําคัญ ช่องว่าง ข้อคิดเห็น ตัวดําเนินการ และตัวคั่นเครื่องหมายวรรคตอน หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวระบุในภาษา M ให้ดู โครงสร้างเลกซิคัล

การเปลี่ยนแปลงใด ๆ ที่คุณทํากับคิวรีของคุณผ่านตัวแก้ไข Power Query อัปเดตสคริปต์ M สําหรับคิวรีของคุณโดยอัตโนมัติ ตัวอย่างเช่น ถ้าคุณเปลี่ยนชื่อขั้นตอน แถวบนสุดที่เก็บไว้ เป็น 20 แถวบนสุด ชื่อก็จะเปลี่ยนไปในมุมมองสคริปต์คิวรีด้วย

สกรีนช็อตของชื่อขั้นตอนที่ใช้เปลี่ยนเป็น 20 แถวบนสุดซึ่งอัปเดตสคริปต์ M ด้วย

ในขณะที่เราขอแนะนําให้คุณใช้ตัวแก้ไข Power Query เพื่อสร้างสคริปต์ M ทั้งหมดหรือส่วนใหญ่สําหรับคุณ คุณสามารถเพิ่มหรือปรับเปลี่ยนส่วนของสคริปต์ M ของคุณได้ด้วยตนเอง หากต้องการเรียนรู้เพิ่มเติม โปรดดูการอ้างอิงภาษา M

ในบทความนี้ สคริปต์ M อ้างอิงถึงรหัส M ของ Power Query ในคิวรี ซึ่งคุณสามารถเข้าถึงผ่านตัวแก้ไขขั้นสูงหรือมุมมองสคริปต์คิวรีในแถบสูตร

วิธี Power Query ประเมินคิวรี M

Power Query ประเมินสคริปต์ M โดยกําหนดเอาต์พุตที่ต้องการและวิธีการผลิต สําหรับคิวรีที่ใช้แหล่งข้อมูลภายนอก การประเมินรวมถึงการร้องขอข้อมูลจากแหล่งข้อมูล ประมวลผลการแปลงใด ๆ ที่ทํางานในกลไกจัดการ Power Query และโหลดผลลัพธ์ไปยังปลายทาง

ไดอะแกรมต่อไปนี้สํารวจกระบวนการที่เกิดขึ้นเมื่อมีการประเมินคิวรีใน Power Query

ไดอะแกรมที่แสดงเส้นทางของการประเมินคิวรีจากสคริปต์ M ไปยังผลลัพธ์สุดท้าย

  1. สคริปต์ M ที่พบในตัวแก้ไขขั้นสูงจะถูกส่งไปยังกลไกจัดการ Power Query นอกจากนี้ยังมีข้อมูลสําคัญอื่น ๆ เช่น ข้อมูลประจําตัวและระดับความเป็นส่วนตัวของแหล่งข้อมูล
  2. Power Query กําหนดข้อมูลที่ต้องแยกจากแหล่งข้อมูลและส่งคําขอไปยังแหล่งข้อมูล
  3. แหล่งข้อมูลตอบสนองต่อคําขอจาก Power Query โดยการถ่ายโอนข้อมูลที่ร้องขอไปยัง Power Query
  4. Power Query ได้รับข้อมูลขาเข้าจากแหล่งข้อมูล และทําการแปลงใดๆ โดยใช้กลไกจัดการ Power Query หากจําเป็น
  5. Power Query โหลดผลลัพธ์ที่แปลงแล้วไปยังปลายทาง

หมายเหตุ

โฟลว์นี้แสดงคิวรีที่อ่านจากฐานข้อมูล SQL Server สําหรับคิวรีที่ไม่มีแหล่งข้อมูลภายนอก Power Query ยังคงประเมินสคริปต์ M และสร้างผลลัพธ์ แต่ไม่มีการใช้ขั้นตอนการร้องขอแหล่งข้อมูลและการโอนย้าย

วิธีที่ Query Folding ปรับการประเมินคิวรีให้เหมาะสม

เมื่อ Power Query อ่านสคริปต์ M ของคุณ จะเรียกใช้สคริปต์ผ่านกระบวนการเพิ่มประสิทธิภาพเพื่อประเมินคิวรีของคุณอย่างมีประสิทธิภาพมากขึ้น ในกระบวนการนี้ จะกําหนดว่าขั้นตอนใด (แปลง) จากคิวรีของคุณสามารถยกเลิกการโหลดไปยังแหล่งข้อมูลของคุณได้ นอกจากนี้ยังกําหนดขั้นตอนอื่นๆ ที่ต้องประเมินโดยใช้กลไกจัดการ Power Query

กระบวนการปรับให้เหมาะสมนี้จะเรียกว่า Query Folding การพับคิวรีแปลการแปลง M ที่ได้รับการสนับสนุนเป็นการดําเนินการที่แหล่งข้อมูลสามารถทําได้ Power Query พยายามเรียกใช้คิวรีมากที่สุดเท่าที่เป็นไปได้ในแหล่งข้อมูล และประเมินการแปลงใด ๆ ที่เหลืออยู่ในกลไกจัดการ Power Query

สําคัญ

ปฏิบัติตามกฎทั้งหมดจากภาษาสูตร Power Query M (หรือที่เรียกว่าภาษา M) โดยเฉพาะอย่างยิ่ง การประเมินขี้เกียจ มีบทบาทสําคัญในระหว่างกระบวนการปรับให้เหมาะสม ในกระบวนการนี้ Power Query จะเข้าใจว่าการแปลงเฉพาะใดจากคิวรีของคุณที่ต้องได้รับการประเมิน Power Query ยังเข้าใจว่าการแปลงอื่นๆ ใดที่ไม่จําเป็นต้องประเมิน เนื่องจากไม่จําเป็นต้องใช้ในผลลัพธ์ของคิวรีของคุณ

นอกจากนี้ เมื่อมีหลายแหล่งข้อมูลเกี่ยวข้อง ระดับความเป็นส่วนตัวของข้อมูลของแต่ละแหล่งข้อมูลจะถูกนํามาพิจารณาเมื่อประเมินคิวรี ข้อมูลเพิ่มเติม: เบื้องหลังฉากของไฟร์วอลล์ความเป็นส่วนตัวของข้อมูล

แผนภาพต่อไปนี้แสดงให้เห็นถึงขั้นตอนที่เกิดขึ้นในกระบวนการปรับให้เหมาะสมนี้

ไดอะแกรมที่แสดงกระบวนการเพิ่มประสิทธิภาพระหว่างการประเมินคิวรี

  1. สคริปต์ M ที่พบในตัวแก้ไขขั้นสูงจะถูกส่งไปยังกลไกจัดการ Power Query นอกจากนี้ยังมีข้อมูลสําคัญอื่น ๆ เช่น ข้อมูลประจําตัวและระดับความเป็นส่วนตัวของแหล่งข้อมูล
  2. กลไกการพับคิวรีจะส่งคําขอเมตาดาต้าเพื่อกําหนดความสามารถของแหล่งข้อมูล สคีมาของตาราง ความสัมพันธ์ระหว่างตารางที่แหล่งข้อมูล และเมตาดาต้าอื่นๆ
  3. กลไกการพับคิวรีจะกําหนดข้อมูลที่จะแยกจากแหล่งข้อมูล และการแปลงที่ต้องเกิดขึ้นภายในกลไก Power Query โดยอิงตามเมตาดาต้าที่ได้รับ ซึ่งจะส่งคําแนะนําไปยังคอมโพเนนต์อื่นสองส่วนที่ดึงข้อมูลจากแหล่งข้อมูล และแปลงข้อมูลขาเข้าในกลไกจัดการ Power Query ถ้าจําเป็น
  4. หลังจากคอมโพเนนต์ภายในของ Power Query ได้รับคําแนะนํา Power Query ส่งคําขอไปยังแหล่งข้อมูลโดยใช้คิวรีแหล่งข้อมูล
  5. แหล่งข้อมูลได้รับคําขอจาก Power Query และถ่ายโอนข้อมูลไปยังกลไกจัดการ Power Query
  6. หลังจากที่ข้อมูลอยู่ภายใน Power Query กลไกการแปลงภายใน Power Query (หรือที่เรียกว่าโปรแกรมผสมเข้าด้วยกัน) จะทําการแปลงข้อมูลที่ไม่สามารถพับกลับหรือออฟโหลดไปยังแหล่งข้อมูลได้
  7. Power Query โหลดผลลัพธ์ที่แปลงแล้วไปยังปลายทาง

หมายเหตุ

ขึ้นอยู่กับการแปลงและแหล่งข้อมูลที่ใช้ในสคริปต์ M Power Query กําหนดว่าจะสตรีมหรือบัฟเฟอร์ข้อมูลขาเข้า

การพับคิวรีทําอะไรได้บ้างใน Power Query

เป้าหมายของ Query Folding คือการถ่ายโหลด หรือส่งการประเมินคิวรีไปยังแหล่งข้อมูลจํานวนมากที่สามารถคํานวณการแปลงคิวรีของคุณได้

กลไกการพับคิวรีช่วยให้เป้าหมายนี้ทําได้โดยการแปลสคริปต์ M ของคุณเป็นภาษาที่แหล่งข้อมูลของคุณสามารถแปลและดําเนินการได้ จากนั้นจะผลักดันการประเมินไปยังแหล่งข้อมูลของคุณและส่งผลลัพธ์ของการประเมินนั้นไปยัง Power Query

การดําเนินการนี้มักจะให้การดําเนินการคิวรีที่เร็วกว่าการแยกข้อมูลที่จําเป็นทั้งหมดจากแหล่งข้อมูลของคุณและเรียกใช้การแปลงทั้งหมดที่จําเป็นในกลไกจัดการ Power Query

เมื่อคุณใช้ รับประสบการณ์ข้อมูล Power Query จะแนะนําคุณตลอดกระบวนการที่ช่วยให้คุณเชื่อมต่อกับแหล่งข้อมูลของคุณได้ในที่สุด เมื่อทําเช่นนั้น Power Query จะใช้ชุดของฟังก์ชันในภาษา M ที่จัดประเภทเป็น การเข้าถึงฟังก์ชันข้อมูล ฟังก์ชันเฉพาะเหล่านี้ใช้กลไกและโพรโทคอลเพื่อเชื่อมต่อกับแหล่งข้อมูลของคุณโดยใช้ภาษาที่แหล่งข้อมูลของคุณสามารถเข้าใจได้

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

สําคัญ

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

ผลลัพธ์การพับคิวรีใน Power Query

ทั้งนี้ขึ้นอยู่กับวิธีการจัดโครงสร้างของคิวรี อาจมีผลลัพธ์ที่เป็นไปได้สามประการสําหรับกลไก Query Folding:

ผลลัพธ์การพับคิวรี การประมวลผลที่แหล่งข้อมูล การประมวลผลในกลไกจัดการ Power Query
การพับคิวรีแบบเต็ม แหล่งข้อมูลจะประมวลผลการแปลงคิวรีทั้งหมด การประมวลผลน้อยที่สุดเกิดขึ้นในกลไก Power Query
การพับคิวรีบางส่วน แหล่งข้อมูลจะประมวลผลการแปลงข้อมูลที่ Power Query สามารถแปลเป็นภาษาคิวรีดั้งเดิมได้ กลไกจัดการ Power Query ประมวลผลการแปลงที่เหลือ
ไม่มีการพับคิวรี แหล่งข้อมูลส่งกลับแหล่งข้อมูลที่ร้องขอโดยไม่มีการประมวลผลการแปลงคิวรี กลไกจัดการ Power Query ประมวลผลการแปลงที่จําเป็นทั้งหมด

แหล่งข้อมูลที่สนับสนุนการพับคิวรี

การสนับสนุนการพับคิวรีจะขึ้นอยู่กับตัวเชื่อมต่อ แหล่งข้อมูล และการแปลงในคิวรี ตัวเชื่อมต่อสําหรับแหล่งข้อมูลที่มีโครงสร้างด้วยความสามารถในการประมวลผลคิวรี เช่น SQL Server และตัวดึงข้อมูล OData มักสนับสนุน Query Folding แหล่งข้อมูลที่ไม่มีกลไกจัดการคิวรี เช่น ไฟล์ CSV และ Excel ไม่สนับสนุนการพับคิวรี

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

ตรวจสอบการพับคิวรีใน Power Query Online

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

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