หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ใน Power Query คุณสามารถกําหนดคิวรีดั้งเดิมและเรียกใช้กับแหล่งข้อมูลของคุณได้ บทความ นําเข้าข้อมูลจากฐานข้อมูลโดยใช้คิวรีฐานข้อมูลดั้งเดิม จะอธิบายวิธีการทํากระบวนการนี้กับแหล่งข้อมูลหลายแหล่ง คิวรีของคุณจะไม่ใช้ประโยชน์จากการพับคิวรีใดๆ จากขั้นตอนคิวรีที่ตามมา
บทความนี้แสดงวิธีการอื่นในการสร้างคิวรีดั้งเดิมกับแหล่งข้อมูลของคุณโดยใช้ฟังก์ชัน Value.NativeQuery และให้กลไกการพับคิวรีทํางานอยู่สําหรับขั้นตอนต่อๆ ไปของคิวรีของคุณ
Note
เราขอแนะนําให้คุณอ่านเอกสารประกอบเกี่ยวกับการ พับคิวรี และ ตัวบ่งชี้การพับคิวรี เพื่อทําความเข้าใจแนวคิดที่ใช้ในบทความนี้
ตัวเชื่อมต่อข้อมูลที่รองรับ
วิธีการที่อธิบายไว้ในส่วนถัดไปใช้กับตัวเชื่อมต่อข้อมูลต่อไปนี้:
- อเมซอน เรดชิฟท์
- Dataverse(เมื่อใช้การคํานวณขั้นสูง)
- Google บิ๊กคิวรี
- PostgreSQL
- SAP ฮานา
- Snowflake
- เซิร์ฟเวอร์ SQL
เชื่อมต่อกับเป้าหมายจากแหล่งข้อมูล
Note
บทความนี้ใช้ตัวเชื่อมต่อ SQL Server และฐานข้อมูลตัวอย่าง AdventureWorks2019 ประสบการณ์อาจแตกต่างกันไปในแต่ละตัวเชื่อมต่อ แต่บทความนี้แสดงพื้นฐานเกี่ยวกับวิธีการเปิดใช้งานความสามารถในการพับคิวรีผ่านคิวรีดั้งเดิมสําหรับตัวเชื่อมต่อที่รองรับ
เมื่อเชื่อมต่อกับแหล่งข้อมูล สิ่งสําคัญคือคุณต้องเชื่อมต่อกับโหนดหรือระดับที่คุณต้องการดําเนินการคิวรีดั้งเดิมของคุณ สําหรับตัวอย่างในบทความนี้ โหนดนั้นคือระดับฐานข้อมูลภายในเซิร์ฟเวอร์
หลังจากที่คุณกําหนดการตั้งค่าการเชื่อมต่อและระบุข้อมูลประจําตัวสําหรับการเชื่อมต่อของคุณแล้ว กล่องโต้ตอบการนําทางสําหรับแหล่งข้อมูลของคุณจะเปิดขึ้น กล่องโต้ตอบการนําทางประกอบด้วยออบเจ็กต์ที่พร้อมใช้งานทั้งหมดที่คุณสามารถเชื่อมต่อได้
จากรายการนี้ คุณต้องเลือกออบเจ็กต์ที่เรียกใช้คิวรีดั้งเดิม (หรือที่เรียกว่าเป้าหมาย) สําหรับตัวอย่างนี้ วัตถุนั้นคือระดับฐานข้อมูล
ที่หน้าต่างตัวนําทางใน 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 ตั้งค่าเป็นจริง
Note
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับฟังก์ชัน Value.NativeQuery ได้จากบทความเอกสารอย่างเป็นทางการ
หลังจากที่คุณป้อนสูตร คําเตือนจะปรากฏขึ้นซึ่งกําหนดให้คุณต้องเปิดใช้งานคิวรีดั้งเดิมเพื่อเรียกใช้สําหรับขั้นตอนเฉพาะของคุณ เลือก ดําเนินการต่อ สําหรับขั้นตอนนี้ที่จะประเมิน
คําสั่ง SQL นี้ให้ตารางที่มีเพียงสามแถวและสองคอลัมน์
ทดสอบการพับคิวรี
เมื่อต้องการทดสอบการพับคิวรีของคิวรีของคุณ คุณสามารถลองใช้ตัวกรองกับคอลัมน์ใดๆ ของคุณ และดูว่าตัวบ่งชี้การพับคิวรีในส่วน ขั้นตอนที่ใช้ แสดงขั้นตอนเป็นพับหรือไม่ ในกรณีนี้ คุณสามารถกรองคอลัมน์ DepartmentID ให้มีค่าที่ไม่เท่ากับสอง
หลังจากเพิ่มตัวกรองนี้ คุณสามารถตรวจสอบว่าตัวบ่งชี้การพับคิวรียังคงแสดงการพับคิวรีที่เกิดขึ้นในขั้นตอนใหม่นี้
เมื่อต้องการตรวจสอบความถูกต้องเพิ่มเติมว่าคิวรีใดถูกส่งไปยังแหล่งข้อมูล คุณสามารถเลือก (หรือคลิกขวา) ขั้นตอน แถวที่กรอง ค้างไว้ แล้วเลือกตัวเลือก ดูแผนคิวรี เพื่อตรวจสอบแผนคิวรีสําหรับขั้นตอนนั้น
ในมุมมองแผนแบบสอบถาม คุณจะเห็นว่าโหนดที่มีชื่อ Value.NativeQuery ที่มีการเชื่อมโยงหลายมิติรายละเอียดมุมมอง คุณสามารถเลือกการเชื่อมโยงหลายมิตินี้เพื่อดูแบบสอบถามที่แน่นอนที่กําลังถูกส่งไปยังฐานข้อมูล SQL Server
คิวรีดั้งเดิมถูกห่อหุ้มรอบคําสั่ง SELECT อื่นเพื่อสร้างคิวรีย่อยของต้นฉบับ Power Query พยายามอย่างเต็มที่เพื่อสร้างคิวรีที่เหมาะสมที่สุดตามการแปลงที่ใช้และคิวรีดั้งเดิมที่มีให้
เคล็ดลับ
สําหรับสถานการณ์ที่คุณได้รับข้อผิดพลาดเนื่องจากไม่สามารถพับคิวรีได้ เราขอแนะนําให้คุณลองตรวจสอบขั้นตอนของคุณเป็นคิวรีย่อยของคิวรีดั้งเดิมของคุณเพื่อตรวจสอบว่าอาจมีข้อขัดแย้งทางไวยากรณ์หรือบริบทหรือไม่