แชร์ผ่าน


การพับคิวรีบนคิวรีในระบบ

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

บทความนี้แสดงวิธีการอื่นในการสร้างคิวรีดั้งเดิมกับแหล่งข้อมูลของคุณโดยใช้ฟังก์ชัน Value.NativeQuery และให้กลไกการพับคิวรีทํางานอยู่สําหรับขั้นตอนต่อๆ ไปของคิวรีของคุณ

Note

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

ตัวเชื่อมต่อข้อมูลที่รองรับ

วิธีการที่อธิบายไว้ในส่วนถัดไปใช้กับตัวเชื่อมต่อข้อมูลต่อไปนี้:

เชื่อมต่อกับเป้าหมายจากแหล่งข้อมูล

Note

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

เมื่อเชื่อมต่อกับแหล่งข้อมูล สิ่งสําคัญคือคุณต้องเชื่อมต่อกับโหนดหรือระดับที่คุณต้องการดําเนินการคิวรีดั้งเดิมของคุณ สําหรับตัวอย่างในบทความนี้ โหนดนั้นคือระดับฐานข้อมูลภายในเซิร์ฟเวอร์

สกรีนช็อตของกล่องโต้ตอบการตั้งค่าการเชื่อมต่อสําหรับการเชื่อมต่อกับฐานข้อมูล AdventureWorks2019 บนอินสแตนซ์ภายในเครื่องของ SQL Server

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

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

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

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

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

สกรีนช็อตของคิวรีที่มีเฉพาะขั้นตอนต้นทาง

ใช้ฟังก์ชัน Value.NativeQuery

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

SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'

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

Value.NativeQuery(Source, "SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'  ", null, [EnableFolding = true])

ส่วนประกอบที่สําคัญที่สุดของสูตรนี้คือการใช้เรกคอร์ดทางเลือกสําหรับพารามิเตอร์ที่สี่ของฟังก์ชันที่มีฟิลด์เรกคอร์ด EnableFolding ตั้งค่าเป็นจริง

สกรีนช็อตของสูตรขั้นตอนแบบกําหนดเองใหม่ที่มีการใช้ฟังก์ชัน Value.NativeQuery และคิวรี SQL ที่ชัดเจน

Note

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับฟังก์ชัน Value.NativeQuery ได้จากบทความเอกสารอย่างเป็นทางการ

หลังจากที่คุณป้อนสูตร คําเตือนจะปรากฏขึ้นซึ่งกําหนดให้คุณต้องเปิดใช้งานคิวรีดั้งเดิมเพื่อเรียกใช้สําหรับขั้นตอนเฉพาะของคุณ เลือก ดําเนินการต่อ สําหรับขั้นตอนนี้ที่จะประเมิน

คําสั่ง SQL นี้ให้ตารางที่มีเพียงสามแถวและสองคอลัมน์

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

ทดสอบการพับคิวรี

เมื่อต้องการทดสอบการพับคิวรีของคิวรีของคุณ คุณสามารถลองใช้ตัวกรองกับคอลัมน์ใดๆ ของคุณ และดูว่าตัวบ่งชี้การพับคิวรีในส่วน ขั้นตอนที่ใช้ แสดงขั้นตอนเป็นพับหรือไม่ ในกรณีนี้ คุณสามารถกรองคอลัมน์ DepartmentID ให้มีค่าที่ไม่เท่ากับสอง

สกรีนช็อตสาธิตวิธีการกรองคอลัมน์ DepartmentID ให้มีค่าที่ไม่เท่ากับสองเท่านั้น

หลังจากเพิ่มตัวกรองนี้ คุณสามารถตรวจสอบว่าตัวบ่งชี้การพับคิวรียังคงแสดงการพับคิวรีที่เกิดขึ้นในขั้นตอนใหม่นี้

ขั้นตอนตัวกรองที่แสดงเป็นพับกลับไปยังแหล่งข้อมูลในส่วนขั้นตอนที่ใช้

เมื่อต้องการตรวจสอบความถูกต้องเพิ่มเติมว่าคิวรีใดถูกส่งไปยังแหล่งข้อมูล คุณสามารถเลือก (หรือคลิกขวา) ขั้นตอน แถวที่กรอง ค้างไว้ แล้วเลือกตัวเลือก ดูแผนคิวรี เพื่อตรวจสอบแผนคิวรีสําหรับขั้นตอนนั้น

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

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

สกรีนช็อตของแผนคิวรีสําหรับขั้นตอน แถวที่กรอง

เคล็ดลับ

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