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

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

สคริปต์ Power Query M

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

เคล็ดลับ

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

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

หมายเหตุ

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

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

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

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

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

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

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

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

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

ไดอะแกรมการประเมินคิวรีเป็นภาพรวม

  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 (หรือที่เรียกว่ากลไกจัดการผสมเข้าด้วยกัน) จะทําการแปลงข้อมูลที่ไม่สามารถพับกลับหรือออฟโหลดไปยังแหล่งข้อมูลได้
  7. ผลลัพธ์ที่ได้มาจากจุดก่อนหน้าจะถูกโหลดไปยังปลายทาง

หมายเหตุ

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

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

เป้าหมายของ 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

หมายเหตุ

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

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

ขั้นตอนถัดไป

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

สําหรับข้อมูลเกี่ยวกับตัวบ่งชี้การพับคิวรีที่พบในบานหน้าต่าง ขั้นตอนที่ นําไปใช้ ไปที่ ตัวบ่งชี้การพับคิวรี