เปิดใช้งาน DirectQuery สําหรับตัวเชื่อมต่อที่ใช้ ODBC
การใช้ฟังก์ชัน Odbc.DataSource ที่มีอยู่แล้วภายในของ M เป็นวิธีที่แนะนําในการสร้างตัวเชื่อมต่อแบบกําหนดเองสําหรับแหล่งข้อมูลที่มีโปรแกรมควบคุม ODBC ที่มีอยู่ และ/หรือสนับสนุนไวยากรณ์คิวรี SQL การค รอบฟังก์ชัน Odbc.DataSource จะช่วยให้ตัวเชื่อมต่อของคุณสืบทอดพฤติกรรมการพับคิวรีตามความสามารถที่รายงานโดยโปรแกรมควบคุมของคุณ ซึ่งจะเปิดใช้งานกลไก M เพื่อสร้างคําสั่ง SQL ตามตัวกรองและการแปลงอื่น ๆ ที่กําหนดโดยผู้ใช้ภายในประสบการณ์ Power Query โดยไม่ต้องระบุตรรกะนี้ภายในตัวเชื่อมต่อเอง
ส่วนขยาย ODBC สามารถเลือกเปิดใช้งานโหมด DirectQuery ซึ่งช่วยให้ Power BI สามารถสร้างคิวรีในขณะทํางานได้แบบไดนามิกโดยไม่ต้องแคชแบบจําลองข้อมูลของผู้ใช้ไว้ล่วงหน้า
หมายเหตุ
การเปิดใช้งานการสนับสนุน DirectQuery เพิ่มความยากและความซับซ้อนของตัวเชื่อมต่อของคุณ เมื่อเปิดใช้งาน DirectQuery Power BI จะป้องกันไม่ให้กลไก M ชดเชยการดําเนินการที่ไม่สามารถพุชไปยังแหล่งข้อมูลพื้นฐานได้อย่างเต็มที่
บทความนี้ถือว่ามีความคุ้นเคยกับการสร้างตัวเชื่อมต่อแบบกําหนดเองพื้นฐาน
โปรดดูตัวอย่าง SqlODBC สําหรับตัวอย่างโค้ดส่วนใหญ่ในส่วนต่อไปนี้ สามารถพบตัวอย่างอื่น ๆ ได้ในไดเรกทอรีตัวอย่าง ODBC
ฟังก์ชันเพิ่มการขยายของ ODBC
โปรแกรม M มีฟังก์ชันแหล่งข้อมูลที่เกี่ยวข้องกับ ODBC สองฟังก์ชัน: Odbc.DataSource และ Odbc.Query
ฟังก์ชัน Odbc.DataSource มีตารางการนําทางเริ่มต้นพร้อมฐานข้อมูล ตาราง และมุมมองทั้งหมดจากระบบของคุณ ฟังก์ชันนี้ยังสนับสนุน Query Folding และอนุญาตให้มีตัวเลือกการกําหนดค่าที่หลากหลาย ส่วนขยายที่ใช้ ODBC ส่วนใหญ่ใช้ฟังก์ชันนี้เป็นฟังก์ชันเพิ่มหลัก ฟังก์ชันยอมรับสองอาร์กิวเมนต์ ได้แก่ สายอักขระการเชื่อมต่อ และระเบียนตัวเลือกเพื่อให้การแทนที่ลักษณะการทํางาน
ฟังก์ชัน Odbc.Query ช่วยให้คุณสามารถดําเนินการคําสั่ง SQL ผ่านโปรแกรมควบคุม ODBC ได้ ซึ่งทําหน้าที่เป็นพาส-ทรูสําหรับการดําเนินการคิวรี ซึ่งแตกต่างจากฟังก์ชัน Odbc.DataSource ซึ่งจะไม่มีฟังก์ชันการพับคิวรีและต้องการให้คิวรี SQL ได้รับมาจากตัวเชื่อมต่อ (หรือผู้ใช้ปลายทาง) เมื่อสร้างตัวเชื่อมต่อแบบกําหนดเอง โดยทั่วไปแล้ว ฟังก์ชันนี้จะใช้ภายในเพื่อเรียกใช้คิวรีเพื่อเรียกใช้เมตาดาต้าที่อาจไม่แสดงผ่านช่อง ODBC ปกติ ฟังก์ชันยอมรับสองอาร์กิวเมนต์ ได้แก่ สายอักขระการเชื่อมต่อ และคิวรี SQL
แนวทางฟังก์ชันแหล่งข้อมูล
ตัวเชื่อมต่อแบบกําหนดเองสามารถยอมรับอาร์กิวเมนต์ฟังก์ชันจํานวนใดก็ได้ แต่เพื่อให้สอดคล้องกับฟังก์ชันแหล่งข้อมูลที่มีอยู่ภายในที่จัดส่งด้วย Power Query ขอแนะนําให้ทําตามคําแนะนําต่อไปนี้:
ต้องใช้ชุดพารามิเตอร์น้อยที่สุดที่ใช้ในการสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ของคุณ ยิ่งผู้ใช้ปลายทางมีพารามิเตอร์น้อยลงเท่าไหร่ ตัวเชื่อมต่อของคุณก็จะยิ่งใช้งานได้ง่ายขึ้นเท่านั้น
แม้ว่าคุณจะสามารถกําหนดพารามิเตอร์ด้วยค่าจํานวนคงที่ (นั่นคือ รายการแบบเลื่อนลงใน UI) ระบบจะป้อนพารามิเตอร์ก่อนผู้ใช้จะรับรองความถูกต้อง ค่าใด ๆ ที่สามารถค้นหาได้ทางโปรแกรมหลังจากที่ผู้ใช้ได้รับการรับรองความถูกต้อง (เช่น แค็ตตาล็อกหรือชื่อฐานข้อมูล) ควรสามารถเลือกได้ผ่านตัวนําทาง ลักษณะการทํางานเริ่มต้นสําหรับ ฟังก์ชัน Odbc.DataSource คือการส่งคืนตารางการนําทางแบบลําดับชั้นที่ประกอบด้วยแค็ตตาล็อก (ฐานข้อมูล), Schema และชื่อตาราง อย่างไรก็ตาม ลักษณะการทํางานนี้สามารถถูกแทนที่ภายในตัวเชื่อมต่อของคุณ
ถ้าคุณรู้สึกว่าผู้ใช้ของคุณโดยทั่วไปจะทราบว่าค่าใดที่จะป้อนสําหรับรายการที่พวกเขาเลือกจากตัวนําทาง (เช่นชื่อฐานข้อมูล) ทําให้พารามิเตอร์เหล่านี้เป็นทางเลือก ไม่จําเป็นต้องใช้พารามิเตอร์ที่สามารถค้นหาได้โดยทางโปรแกรม
พารามิเตอร์สุดท้ายสําหรับฟังก์ชันของคุณควรเป็นเรกคอร์ดทางเลือกที่เรียกว่า "ตัวเลือก" โดยทั่วไปพารามิเตอร์นี้อนุญาตให้ผู้ใช้ขั้นสูงตั้งค่าคุณสมบัติที่เกี่ยวข้องกับ ODBC ทั่วไป (เช่น
CommandTimeout
), ตั้งค่าลักษณะการทํางานแทนที่เฉพาะตัวเชื่อมต่อของคุณ และอนุญาตให้มีการขยายในอนาคตโดยไม่ส่งผลกระทบต่อความเข้ากันได้ย้อนหลังสําหรับฟังก์ชันของคุณอาร์กิวเมนต์ที่เกี่ยวข้องกับความปลอดภัย/ข้อมูลประจําตัวต้องไม่เป็นส่วนหนึ่งของพารามิเตอร์ฟังก์ชันแหล่งข้อมูลของคุณ เนื่องจากค่าที่ป้อนในกล่องโต้ตอบการเชื่อมต่อจะยังคงอยู่ในคิวรีของผู้ใช้ ควรระบุพารามิเตอร์ที่เกี่ยวข้องกับข้อมูลประจําตัวเป็นส่วนหนึ่งของวิธีการรับรองความถูกต้องที่ได้รับการสนับสนุนของตัวเชื่อมต่อ
ตามค่าเริ่มต้น พารามิเตอร์ที่จําเป็นทั้งหมดสําหรับฟังก์ชันแหล่งข้อมูลของคุณเป็นปัจจัยในค่าเส้นทางแหล่งข้อมูลที่ใช้ในการระบุข้อมูลประจําตัวผู้ใช้
ในขณะที่ UI สําหรับฟังก์ชัน Odbc.DataSource ที่มีอยู่ภายในมีดรอปดาวน์ที่ช่วยให้ผู้ใช้สามารถเลือก DSN แต่ฟังก์ชันนี้ไม่พร้อมใช้งานผ่านการขยายความสามารถ ถ้าการกําหนดค่าแหล่งข้อมูลของคุณซับซ้อนพอที่จะต้องใช้กล่องโต้ตอบการกําหนดค่าที่ปรับแต่งได้อย่างสมบูรณ์ เราขอแนะนําให้คุณต้องการให้ผู้ใช้ปลายทางของคุณกําหนดค่า DSN ระบบล่วงหน้า และให้ฟังก์ชันของคุณนําไปใช้ในชื่อ DSN เป็นเขตข้อมูลข้อความ
ขั้นตอนถัดไป
คำติชม
https://aka.ms/ContentUserFeedback
เร็วๆ นี้: ตลอดปี 2024 เราจะขจัดปัญหา GitHub เพื่อเป็นกลไกคำติชมสำหรับเนื้อหา และแทนที่ด้วยระบบคำติชมใหม่ สำหรับข้อมูลเพิ่มเติม ให้ดู:ส่งและดูข้อคิดเห็นสำหรับ