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