หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
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 แต่อักขระเหล่านี้ไม่แสดงในขั้นตอนที่ใช้ ตัวอย่างคือ #"Kept top rows"ซึ่งจัดประเภทเป็น ตัวระบุที่อ้างอิง เนื่องจากอักขระพิเศษเหล่านี้ ตัวระบุที่อ้างอิงจะช่วยให้สามารถใช้ลําดับของอักขระ Unicode ศูนย์หรือมากกว่าเป็นตัวระบุได้ รวมถึงคําสําคัญ ช่องว่าง ข้อคิดเห็น ตัวดําเนินการ และตัวคั่นเครื่องหมายวรรคตอน หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวระบุในภาษา M ให้ดู โครงสร้างเลกซิคัล
การเปลี่ยนแปลงใด ๆ ที่คุณทํากับคิวรีของคุณผ่านตัวแก้ไข Power Query อัปเดตสคริปต์ M สําหรับคิวรีของคุณโดยอัตโนมัติ ตัวอย่างเช่น ถ้าคุณเปลี่ยนชื่อขั้นตอน แถวบนสุดที่เก็บไว้ เป็น 20 แถวบนสุด ชื่อก็จะเปลี่ยนไปในมุมมองสคริปต์คิวรีด้วย
ในขณะที่เราขอแนะนําให้คุณใช้ตัวแก้ไข Power Query เพื่อสร้างสคริปต์ M ทั้งหมดหรือส่วนใหญ่สําหรับคุณ คุณสามารถเพิ่มหรือปรับเปลี่ยนส่วนของสคริปต์ M ของคุณได้ด้วยตนเอง หากต้องการเรียนรู้เพิ่มเติม โปรดดูการอ้างอิงภาษา M
ในบทความนี้ สคริปต์ M อ้างอิงถึงรหัส M ของ Power Query ในคิวรี ซึ่งคุณสามารถเข้าถึงผ่านตัวแก้ไขขั้นสูงหรือมุมมองสคริปต์คิวรีในแถบสูตร
วิธี Power Query ประเมินคิวรี M
Power Query ประเมินสคริปต์ M โดยกําหนดเอาต์พุตที่ต้องการและวิธีการผลิต สําหรับคิวรีที่ใช้แหล่งข้อมูลภายนอก การประเมินรวมถึงการร้องขอข้อมูลจากแหล่งข้อมูล ประมวลผลการแปลงใด ๆ ที่ทํางานในกลไกจัดการ Power Query และโหลดผลลัพธ์ไปยังปลายทาง
ไดอะแกรมต่อไปนี้สํารวจกระบวนการที่เกิดขึ้นเมื่อมีการประเมินคิวรีใน Power Query
- สคริปต์ M ที่พบในตัวแก้ไขขั้นสูงจะถูกส่งไปยังกลไกจัดการ Power Query นอกจากนี้ยังมีข้อมูลสําคัญอื่น ๆ เช่น ข้อมูลประจําตัวและระดับความเป็นส่วนตัวของแหล่งข้อมูล
- Power Query กําหนดข้อมูลที่ต้องแยกจากแหล่งข้อมูลและส่งคําขอไปยังแหล่งข้อมูล
- แหล่งข้อมูลตอบสนองต่อคําขอจาก Power Query โดยการถ่ายโอนข้อมูลที่ร้องขอไปยัง Power Query
- Power Query ได้รับข้อมูลขาเข้าจากแหล่งข้อมูล และทําการแปลงใดๆ โดยใช้กลไกจัดการ Power Query หากจําเป็น
- 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 ยังเข้าใจว่าการแปลงอื่นๆ ใดที่ไม่จําเป็นต้องประเมิน เนื่องจากไม่จําเป็นต้องใช้ในผลลัพธ์ของคิวรีของคุณ
นอกจากนี้ เมื่อมีหลายแหล่งข้อมูลเกี่ยวข้อง ระดับความเป็นส่วนตัวของข้อมูลของแต่ละแหล่งข้อมูลจะถูกนํามาพิจารณาเมื่อประเมินคิวรี ข้อมูลเพิ่มเติม: เบื้องหลังฉากของไฟร์วอลล์ความเป็นส่วนตัวของข้อมูล
แผนภาพต่อไปนี้แสดงให้เห็นถึงขั้นตอนที่เกิดขึ้นในกระบวนการปรับให้เหมาะสมนี้
- สคริปต์ M ที่พบในตัวแก้ไขขั้นสูงจะถูกส่งไปยังกลไกจัดการ Power Query นอกจากนี้ยังมีข้อมูลสําคัญอื่น ๆ เช่น ข้อมูลประจําตัวและระดับความเป็นส่วนตัวของแหล่งข้อมูล
- กลไกการพับคิวรีจะส่งคําขอเมตาดาต้าเพื่อกําหนดความสามารถของแหล่งข้อมูล สคีมาของตาราง ความสัมพันธ์ระหว่างตารางที่แหล่งข้อมูล และเมตาดาต้าอื่นๆ
- กลไกการพับคิวรีจะกําหนดข้อมูลที่จะแยกจากแหล่งข้อมูล และการแปลงที่ต้องเกิดขึ้นภายในกลไก Power Query โดยอิงตามเมตาดาต้าที่ได้รับ ซึ่งจะส่งคําแนะนําไปยังคอมโพเนนต์อื่นสองส่วนที่ดึงข้อมูลจากแหล่งข้อมูล และแปลงข้อมูลขาเข้าในกลไกจัดการ Power Query ถ้าจําเป็น
- หลังจากคอมโพเนนต์ภายในของ Power Query ได้รับคําแนะนํา Power Query ส่งคําขอไปยังแหล่งข้อมูลโดยใช้คิวรีแหล่งข้อมูล
- แหล่งข้อมูลได้รับคําขอจาก Power Query และถ่ายโอนข้อมูลไปยังกลไกจัดการ Power Query
- หลังจากที่ข้อมูลอยู่ภายใน Power Query กลไกการแปลงภายใน Power Query (หรือที่เรียกว่าโปรแกรมผสมเข้าด้วยกัน) จะทําการแปลงข้อมูลที่ไม่สามารถพับกลับหรือออฟโหลดไปยังแหล่งข้อมูลได้
- 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 ส่งไปยังแหล่งข้อมูล ความพร้อมใช้งานขึ้นอยู่กับตัวเชื่อมต่อ