แชร์ผ่าน


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

บทความนี้ให้ภาพรวมพื้นฐานของวิธีการประมวลผลคิวรี M และเปลี่ยนเป็นคําขอแหล่งข้อมูล

สคริปต์ Power Query M

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

เคล็ดลับ

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

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

หมายเหตุ

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

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

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

รูปภาพก่อนหน้านี้เน้นส่วนขั้นตอนที่นําไปใช้ ซึ่งประกอบด้วยขั้นตอนต่อไปนี้:

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

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

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

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

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

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

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

หมายเหตุ

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

การประเมินคิวรีใน Power Query

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

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

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

หมายเหตุ

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

เมื่อ Power Query อ่านสคริปต์ M ของคุณ จะเรียกใช้สคริปต์ผ่านกระบวนการเพิ่มประสิทธิภาพเพื่อประเมินคิวรีของคุณอย่างมีประสิทธิภาพมากขึ้น ในกระบวนการนี้ จะกําหนดว่าขั้นตอนใด (แปลง) จากคิวรีของคุณสามารถยกเลิกการโหลดไปยังแหล่งข้อมูลของคุณได้ นอกจากนี้ยังกําหนดขั้นตอนอื่นๆ ที่ต้องประเมินโดยใช้กลไกจัดการ Power Query กระบวนการเพิ่มประสิทธิภาพนี้เรียกว่า query folding ซึ่ง 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 (หรือที่เรียกว่ากลไกจัดการ mashup) จะทําการแปลงที่ไม่สามารถพับกลับหรือถ่ายโอนไปยังแหล่งข้อมูลได้
  7. ผลลัพธ์ที่ได้มาจากจุดก่อนหน้าจะถูกโหลดไปยังปลายทาง

หมายเหตุ

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

ภาพรวมการพับคิวรี

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

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

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

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

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

สําคัญ

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

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

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

หมายเหตุ

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

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