แชร์ผ่าน


DirectQuery ใน Power BI

DirectQuery ใน Power BI ช่วยให้คุณสามารถเก็บข้อมูลไว้ในแหล่งข้อมูลและคิวรีในเวลารายงานแทนการนําเข้า บทความนี้อธิบายว่าเมื่อใดควรใช้ DirectQuery ข้อจํากัด และทางเลือกอื่น เช่น ตารางไฮบริด Direct Lake และการเชื่อมต่อแบบสด เพื่อให้คุณสามารถเลือกโหมดที่เหมาะสมได้

บทความนี้อธิบาย:

  • โหมดการเชื่อมต่อข้อมูล Power BI และตําแหน่งที่ DirectQuery พอดี
  • เมื่อใดควรใช้ DirectQuery เทียบกับการนําเข้า ตารางไฮบริด Direct Lake หรือการเชื่อมต่อแบบสด
  • ข้อจํากัด ผลกระทบ และข้อควรพิจารณาด้านประสิทธิภาพ
  • คําแนะนําสําหรับการสร้างแบบจําลองและการออกแบบรายงาน
  • วินิจฉัยและปรับปรุงประสิทธิภาพ

หมายเหตุ

DirectQuery ยังเป็นคุณลักษณะของ SQL Server Analysis Services แม้ว่าจะมีความคล้ายคลึงกัน แต่บทความนี้มุ่งเน้นไปที่ DirectQuery กับแบบจําลองความหมายของ Power BI

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับแบบจําลองแบบรวม โปรดดู ใช้แบบจําลองแบบรวมใน Power BI Desktop ดาวน์โหลด PDF DirectQuery ใน SQL Server 2016 Analysis Services จาก Microsoft

คู่มือการตัดสินใจฉบับย่อ

ตารางต่อไปนี้สรุปโหมดการเชื่อมต่อ Power BI ที่จะพิจารณาตามความต้องการของคุณ ใช้เป็นข้อมูลอ้างอิงด่วนเพื่อช่วยเลือกระหว่าง นําเข้า, DirectQuery, ตารางไฮบริด, Direct Lake หรือการเชื่อมต่อแบบสด:

หากคุณต้องการ พิจารณาก่อน ทําไม
การโต้ตอบสูงสุดและความยืดหยุ่นในการเปลี่ยนแปลงอย่างเต็มที่ Import กลไกจัดการคอลัมน์ในหน่วยความจําและคุณสมบัติการสร้างแบบจําลองที่หลากหลาย
การเปลี่ยนแปลงข้อมูลข้อเท็จจริงล่าสุดและบริบทในอดีตเกือบเรียลไทม์ ตารางไฮบริด (นําเข้าและพาร์ติชัน DirectQuery) แหล่งที่มาของคิวรีสําหรับข้อมูลร้อนและแคชข้อมูลในอดีต
เครื่องชั่งเลคเฮาส์หรือคลังสินค้าขนาดใหญ่ที่มีการอ่านเวลาแฝงต่ํา (Fabric) Direct Lake ข้ามการรีเฟรชตามกําหนดการและคงพฤติกรรมการนําเข้า
การเข้าถึงแบบรวมศูนย์ไปยังแหล่งข้อมูลภายนอกหลายแหล่งโดยไม่ต้องนําเข้าแบบเต็ม DirectQuery (แบบจําลองแบบรวม) ปล่อยให้ข้อมูลอยู่ในสถานที่และผสมผสานแหล่งที่มา
โมเดลองค์กรที่ควบคุมจากส่วนกลางเผยแพร่แล้ว การเชื่อมต่อแบบสดกับแบบจําลองความหมายหรือ Analysis Services นําโมเดลที่คัดสรรมาใช้ใหม่และหลีกเลี่ยงการทําซ้ํา
พุชพารามิเตอร์ไปยังแหล่งที่มาขณะรันไทม์ (การกรองที่ขับเคลื่อนโดยผู้ใช้) DirectQuery ที่มีพารามิเตอร์ M แบบไดนามิก ลดข้อมูลที่สแกนและปรับปรุงประสิทธิภาพ
ความท้าทายในการทํางานพร้อมกันสูงและเวลาแฝงระยะไกล นําเข้าหรือการรวมผ่าน DirectQuery การรวมเร่งการสืบค้นทั่วไป

โหมดการเชื่อมต่อข้อมูล Power BI

Power BI เชื่อมต่อกับแหล่งข้อมูลจํานวนมาก:

  • บริการออนไลน์ เช่น Salesforce และ Dynamics 365
  • ฐานข้อมูล เช่น SQL Server, PostgreSQL, MySQL, Oracle, Snowflake และ Amazon Redshift
  • ไฟล์ (Excel, CSV, JSON, Parquet)
  • เครื่องมือข้อมูลขนาดใหญ่และการวิเคราะห์ เช่น Spark และ Databricks
  • แหล่งข้อมูลอื่นๆ เช่น เว็บไซต์และ Microsoft Exchange

นําเข้าข้อมูลจากแหล่งข้อมูลเหล่านี้ บางรุ่นยังสนับสนุน DirectQuery สําหรับรายการที่เก็บรักษาไว้ โปรดดู แหล่งข้อมูล Power BI แหล่งข้อมูลที่เปิดใช้งาน DirectQuery มักจะมอบประสิทธิภาพคิวรีรวมแบบโต้ตอบ

ใช้การนําเข้าตามค่าเริ่มต้น ใช้กลไกจัดการในหน่วยความจําประสิทธิภาพสูงของ Power BI และมีชุดคุณลักษณะที่สมบูรณ์ที่สุด ก้าวไปไกลกว่าการนําเข้าเฉพาะเมื่อข้อจํากัดเฉพาะ (เวลาแฝง ขนาด การกํากับดูแล ความปลอดภัย หรือสถาปัตยกรรม) ต้องการเท่านั้น

การปรับปรุงที่ทันสมัย—ตารางไฮบริด, Direct Lake, การรวมอัตโนมัติ, แบบจําลองแบบรวม และการรีเฟรชแบบเพิ่มหน่วย—ลดความถี่ที่คุณต้องการ DirectQuery บริสุทธิ์

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

นําเข้าการเชื่อมต่อ

เมื่อคุณนําเข้าข้อมูล:

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

การเชื่อมต่อ DirectQuery

เมื่อคุณใช้ DirectQuery:

  • รับข้อมูล จะสร้างการเชื่อมต่อกับแหล่งข้อมูลที่รองรับ สําหรับแหล่งข้อมูลเชิงสัมพันธ์ คุณยังสามารถเลือกตารางหรือมุมมองได้ สําหรับแหล่งข้อมูลหลายมิติ (ตัวอย่างเช่น SAP BW) คุณเลือกแบบจําลองต้นทาง
  • ไม่มีการนําเข้าข้อมูลในเวลาโหลด แต่ละวิชวลทริกเกอร์คิวรีอย่างน้อยหนึ่งคิวรีไปยังแหล่งข้อมูลต้นแบบ
  • เวลาแฝงในการรีเฟรชวิชวลขึ้นอยู่กับประสิทธิภาพของแหล่งข้อมูลพื้นฐานทั้งหมด (และค่าโสหุ้ยเครือข่าย/เกตเวย์ หากมี)
  • การเปลี่ยนแปลงในข้อมูลต้นฉบับจะปรากฏขึ้นหลังจากการดําเนินการที่สอบถามใหม่ (การนําทาง การเปลี่ยนแปลงตัวแบ่งส่วนข้อมูล/ตัวกรอง การรีเฟรชด้วยตนเอง)
  • การเผยแพร่จะสร้างข้อกําหนดแบบจําลองความหมาย (สคีมาและเมตาดาต้า) โดยไม่มีข้อมูลที่นําเข้า
  • รายงานในบริการสอบถามแหล่งที่มา เกตเวย์อาจจําเป็นสําหรับแหล่งข้อมูลภายในองค์กร
  • ไทล์แดชบอร์ดที่ยึดตามแบบจําลอง DirectQuery จะรีเฟรชตามกําหนดการเพื่อแคชผลลัพธ์ของไทล์เพื่อการเปิดแดชบอร์ดที่รวดเร็ว
  • ไทล์แดชบอร์ดแสดงผลลัพธ์จากการรีเฟรชตามกําหนดการล่าสุด เว้นแต่จะรีเฟรชด้วยตนเอง

การเชื่อมต่อแบบสด

การเชื่อมต่อแบบสดเชื่อมต่อ Power BI โดยตรงกับแบบจําลองความหมายที่มีอยู่ (ตัวอย่างเช่น Analysis Services หรือแบบจําลองความหมายของ Power BI ที่เผยแพร่อื่น) คล้ายกับ DirectQuery (ไม่มีข้อมูลที่นําเข้า) แต่ความหมาย (เช่น การบังคับใช้บทบาท) จะถูกจัดการโดยแบบจําลองอัปสตรีม เมื่อคุณเชื่อมต่อสด:

  • รายการเขตข้อมูลแบบจําลองภายนอกแบบเต็มจะปรากฏขึ้น—ไม่มีข้อกําหนดคิวรี Power Query
  • การเชื่อมต่อแบบสดจะส่งข้อมูลประจําตัวของผู้ใช้ไปยัง Analysis Services หรือแบบจําลองความหมายของ Power BI สําหรับการตัดแต่งความปลอดภัยเสมอ
  • กิจกรรมการสร้างแบบจําลองบางอย่าง (เช่น การเพิ่มตารางจากการคํานวณ) ไม่พร้อมใช้งานเนื่องจากแบบจําลองเป็นแบบภายนอก

ตําแหน่งที่ DirectQuery เหมาะกับตัวเลือกที่ใหม่กว่า

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

  • ตารางไฮบริด ช่วยให้คุณสามารถผสมพาร์ติชันในหน่วยความจําและพาร์ติชัน DirectQuery ในตารางเดียว (ล่าสุดเทียบกับในอดีต)
  • Direct Lake (Fabric) ช่วยให้เข้าถึงโต๊ะเลคเฮาส์ได้เกือบเรียลไทม์โดยไม่ต้องรีเฟรชค่าใช้จ่ายแบบเดิม
  • การรวมอัตโนมัติและตารางการรวมด้วยตนเองช่วยเร่งการสืบค้นบ่อยครั้ง
  • การรีเฟรชแบบเพิ่มหน่วยด้วยแบบเรียลไทม์ช่วยให้ DirectQuery สามารถสร้างกรอบเวลาล่าสุดไปยังแหล่งที่มาได้ในขณะที่ข้อมูลที่เก่ากว่ายังคงนําเข้าอยู่

ประเมินตัวเลือกเหล่านี้ก่อนที่จะนําแบบจําลอง DirectQuery มาใช้อย่างสมบูรณ์

กรณีการใช้งาน DirectQuery

DirectQuery มีประโยชน์มากที่สุดเมื่อ:

  • ข้อมูลเปลี่ยนแปลงบ่อยเกินไปสําหรับการนําเข้า (แม้จะมีการรีเฟรชแบบเพิ่มหน่วยและความถี่ในการรีเฟรชตามกําหนดการสูงสุด) และคุณต้องการการมองเห็นเวลาแฝงต่ํา
  • ปริมาณข้อมูลหรือข้อจํากัดด้านการกํากับดูแลทําให้การนําเข้าข้อมูลทั้งหมดไม่สามารถทําได้
  • การรักษาความปลอดภัยที่บังคับใช้แหล่งที่มา (กฎแถวแบบละเอียด) จะต้องยังคงมีอํานาจผ่านการส่งผ่าน
  • อํานาจอธิปไตยของข้อมูลหรือกฎข้อบังคับจํากัดสําเนาฉบับเต็มที่ยังคงมีอยู่
  • แหล่งที่มาเป็นแบบหลายมิติหรือหน่วยวัดเป็นศูนย์กลาง (เช่น SAP BW) และหน่วยวัดที่กําหนดโดยเซิร์ฟเวอร์จะต้องได้รับการแก้ไขต่อวิชวล

ข้อมูลเปลี่ยนแปลงบ่อยครั้งและคุณต้องการการรายงานแบบเรียลไทม์

โมเดลที่นําเข้า (Pro) สามารถกําหนดเวลาการรีเฟรชได้สูงสุด 8 ครั้งต่อวัน (รวมถึงทริกเกอร์ตามความต้องการ/API) Premium และ PPU รองรับการรีเฟรชตามกําหนดการสูงสุด 48 รายการต่อวัน รวมถึงการรีเฟรชแบบเพิ่มหน่วยและ DirectQuery แบบเรียลไทม์สําหรับพาร์ติชันล่าสุด (ไฮบริด) หากเวลาแฝงที่คุณต้องการยังไม่สามารถตอบสนองได้ หรือไม่สามารถนําเข้าแบบเต็มได้ ให้ใช้ DirectQuery, ตารางไฮบริด หรือ Direct Lake แดชบอร์ด DirectQuery สามารถรีเฟรชไทล์ได้บ่อยทุกๆ 15 นาที

ข้อมูลมีขนาดใหญ่

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

  • การนําเข้าเฉพาะชุดย่อยที่รวมหรือกรองเท่านั้น
  • การใช้การรีเฟรชและการรวมแบบเพิ่มหน่วย
  • การใช้ตารางไฮบริดหรือ Direct Lake สําหรับเซ็กเมนต์ล่าสุดและเซ็กเมนต์ที่มีมูลค่าสูง

ดู แบบจําลองความหมายขนาดใหญ่ใน Power BI Premium สําหรับการจัดการข้อมูลในหน่วยความจําขนาดใหญ่

แหล่งที่มาของการรักษาความปลอดภัยที่บังคับใช้

การนําเข้าขึ้นอยู่กับข้อมูลประจําตัวของ Power BI บวกกับการรักษาความปลอดภัยระดับแถว (RLS) ที่เป็นตัวเลือกที่กําหนดไว้ในแบบจําลองความหมาย DirectQuery สามารถ (เมื่อได้รับการสนับสนุน) ผ่านข้อมูลประจําตัวผู้ใช้ (SSO) เพื่อให้แหล่งข้อมูลบังคับใช้กฎความปลอดภัยของตนเอง ดู ภาพรวมของการลงชื่อเข้าระบบครั้งเดียว (SSO) สําหรับเกตเวย์ข้อมูลภายในองค์กรใน Power BI

ข้อจํากัดด้านอํานาจอธิปไตยของข้อมูล

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

แหล่งที่มาด้วยการวัดที่กําหนดโดยเซิร์ฟเวอร์

บางระบบ (เช่น SAP BW) มีตรรกะเชิงความหมาย (หน่วยวัดและลําดับชั้น) ที่คุณแก้ไขในเวลาคิวรี DirectQuery เปิดใช้งานต่อความละเอียดของวิชวล ดู DirectQuery และ SAP BW และ DirectQuery และ SAP HANA

ข้อควรพิจารณาเฉพาะแหล่งที่มา (รวมถึง PostgreSQL และ MySQL)

พฤติกรรมและประสิทธิภาพแตกต่างกันไปตามเครื่องยนต์:

  • โพสต์เกรส: ตัวระบุที่อ้างถึงจะคํานึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ตรวจสอบให้แน่ใจว่าดัชนี b-tree เหมาะสมในคอลัมน์รวมและตัวกรอง หลีกเลี่ยงฟังก์ชันที่ทําให้การพับคิวรีหยุดทํางานก่อนกําหนด ตรวจสอบการแคสต์โดยนัยบนข้อความและการรวมตัวเลข
  • MySQL: ใช้การเปรียบเทียบและโหมด SQL ที่สอดคล้องกัน สร้างดัชนีแบบรวมสําหรับตัวกรองทั่วไปและรูปแบบการรวม คอลัมน์ขนาดใหญ่ TEXT สามารถลดการพับหรือบังคับให้ประมวลผลภายหลังได้
  • Snowflake, BigQuery และ Databricks: การปรับขนาดแบบยืดหยุ่นช่วยปรับปรุงการทํางานพร้อมกัน แต่เวลาแฝงในการเริ่มต้นแบบเย็นอาจส่งผลต่อการสืบค้นแรก ส่ง ping วอร์มอัพหรือกําหนดเวลากิจกรรมเป็นระยะ
  • Azure Synapse, SQL และ Fabric Warehouse: ดัชนี Columnstore และการแคชชุดผลลัพธ์ให้การเร่งความเร็วที่แข็งแกร่ง จับคู่กับการรวมอัตโนมัติ
  • Azure Data Explorer: การตัดแต่งกิ่งแบบฉายภาพมีความสําคัญ เลือกเฉพาะคอลัมน์ที่ต้องการและกดตัวกรองก่อนกําหนด
  • SAP BW และ SAP HANA: วัดความละเอียดและความหมายลําดับชั้นขับเคลื่อนรูปแบบการสืบค้น หลีกเลี่ยงการแปลงซ้อนทับที่ขัดขวางการพับ

ยืนยันการพับคิวรี (เลือก ดูคิวรีดั้งเดิม ในตัวแก้ไข Power Query) เพื่อให้การแปลงผลักลง

ข้อจํากัดของ DirectQuery

การใช้ DirectQuery มีความหมายในความสอดคล้อง ประสิทธิภาพ ความปลอดภัย การแปลง การสร้างแบบจําลอง และการรายงาน

ความหมายโดยนัยทั่วไป

ความหมายทั่วไปต่อไปนี้ใช้เมื่อใช้ DirectQuery ใน Power BI:

  • รีเฟรชเพื่อดูข้อมูลล่าสุด แคช (วิชวล ไทล์ ผลลัพธ์) หมายความว่าวิชวลสามารถแสดงผลลัพธ์ก่อนหน้าได้จนกว่าจะรีเฟรช เลือก รีเฟรช เพื่อบังคับให้คิวรีใหม่ของวิชวลทั้งหมดบนหน้า
  • วิชวลไม่สอดคล้องกันของเวลาเสมอไป วิชวลที่แตกต่างกัน (หรือคิวรีภายในในวิชวลเดียว) สามารถดําเนินการในเวลาที่แตกต่างกันเล็กน้อย รีเฟรชหน้าหรือออกแบบสแนปช็อตรวมหากต้องการความแม่นยํา ณ จุดเวลาที่เข้มงวด
  • การเปลี่ยนแปลง Schema จําเป็นต้องมีการรีเฟรช Power BI Desktop บริการจะไม่ตรวจหาคอลัมน์ที่หลุดหรือเปลี่ยนชื่อโดยอัตโนมัติ เปิดแบบจําลองใน Power BI Desktop และรีเฟรชเพื่อกระทบยอดข้อมูลเมตาของแบบจําลอง
  • ขีดจํากัดผลลัพธ์ระดับกลางหนึ่งล้านแถว คิวรี (หรือการดําเนินการระดับกลาง) ที่ส่งกลับมากกว่า 1,000,000 แถวล้มเหลว ความจุแบบพรีเมียมสามารถเพิ่มขีดจํากัดนี้ได้—ดูจํานวนชุดแถวระดับกลางสูงสุด
  • การเปลี่ยนโหมดการจัดเก็บข้อมูลถูกจํากัด คุณไม่สามารถสลับแบบจําลองการนําเข้าอย่างเดียวเป็น DirectQuery ได้ทั่วโลก ดูส่วนถัดไป

สําคัญ

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

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

การเปลี่ยนโหมดที่เก็บข้อมูล (นําเข้า ↔ DirectQuery)

คุณไม่สามารถสลับแบบจําลองการนําเข้าทั้งหมดไปยัง DirectQuery ได้ แทน:

  • เพิ่มการเชื่อมต่อ DirectQuery ใหม่ไปยังแหล่งข้อมูลเดียวกันและแมปวิชวลกับตารางใหม่
  • สร้างแบบจําลองแบบรวม: เก็บ นําเข้ามิติ เพิ่มตารางข้อเท็จจริง DirectQuery (หรือในทางกลับกัน) และเลือกตั้งค่าบางตารางเป็นคู่
  • ใช้ตารางไฮบริด (พาร์ติชัน DirectQuery ล่าสุดและการนําเข้าในอดีต) สําหรับการเพิ่มประสิทธิภาพแบบร้อนและเย็น
  • สร้างใหม่ด้วยการแปลงที่เป็นมิตรกับการพับหากขั้นตอนก่อนหน้านี้ป้องกัน DirectQuery

หมายเหตุ

แต่ละตารางที่เพิ่มผ่านการเชื่อมต่อที่รองรับ DirectQuery สามารถสลับระหว่าง DirectQuery, นําเข้า และ Dual ได้หากการแปลงที่ใช้ทั้งหมดยังคงพับอยู่

ผลกระทบต่อประสิทธิภาพและโหลด

ประสิทธิภาพการโต้ตอบขึ้นอยู่กับเวลาแฝงของแหล่งที่มาและการทํางานพร้อมกัน ตั้งเป้าให้เวลารีเฟรชภาพทั่วไปต่ํากว่า 5 วินาที มากกว่า 30 วินาทีทําให้การใช้งานลดลง การกระทําของผู้ใช้แต่ละรายการจะทริกเกอร์การค้นหา จํานวนผู้ใช้ วิชวล และไทล์ที่สูงสามารถสร้างภาระงานที่สําคัญ โดยวางแผนความจุตามนั้น

ความหมายโดยนัยของความปลอดภัย

เว้นแต่จะมีการกําหนดค่า SSO DirectQuery จะใช้ข้อมูลประจําตัวที่เก็บไว้ที่กําหนดค่าไว้สําหรับผู้ชมทั้งหมด กําหนด RLS ในแบบจําลองความหมายตามต้องการ หลายแหล่งในแบบจําลองแบบรวมสามารถย้ายข้อมูลระหว่างแหล่งที่มาได้ ประเมินการเคลื่อนย้ายข้อมูลที่ละเอียดอ่อน - ดู ผลกระทบด้านความปลอดภัย

ข้อจํากัดการแปลงข้อมูล

การพับ Power Query เป็นสิ่งจําเป็นสําหรับประสิทธิภาพที่ปรับขนาดได้ การแปลงต้องย่อเป็นคิวรีดั้งเดิมเดียว ขั้นตอนที่ซับซ้อน (การดําเนินการที่ไม่สามารถพับได้, ฟังก์ชันแบบกําหนดเองบางอย่าง, ตรรกะขั้นตอนแบบหลายขั้นตอน) อาจทําให้เกิดข้อผิดพลาดที่ต้องทําให้ง่ายขึ้นหรือสลับไปใช้การนําเข้า แหล่งข้อมูล OLAP เช่น SAP BW ไม่อนุญาตให้มีการแปลงในแบบสอบถาม เนื่องจากแบบจําลองภายนอกทั้งหมดถูกเปิดเผย การเรียกกระบวนงานที่เก็บไว้และนิพจน์ตารางทั่วไป (CTE) ไม่ได้รับการสนับสนุนในลักษณะที่อนุญาตให้พับใน DirectQuery

ข้อจํากัดของการสร้างแบบจําลอง

การเพิ่มความสมบูรณ์ส่วนใหญ่ใช้งานได้ แต่ความสามารถบางอย่างจะลดลง:

  • ไม่มีลําดับชั้นวันที่อัตโนมัติ (สร้างตารางวันที่ที่ชัดเจน)
  • ความแม่นยําของเวลาจํากัดไว้ที่วินาที (ลบมิลลิวินาทีที่แหล่งกําเนิด)
  • คอลัมน์จากการคํานวณ จํากัด เฉพาะนิพจน์ระดับแถวที่พับ ฟังก์ชันที่ไม่รองรับถูกละเว้นจากการเติมข้อความอัตโนมัติ
  • ไม่มีฟังก์ชัน PATH หลัก-ลูก
  • ไม่รองรับการจัดกลุ่ม

ข้อจํากัดการรายงาน

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

  • ไม่รองรับคอลัมน์ข้อความยาวกว่า 32,764 อักขระ
  • ตัวกรองการวัด, ตัวกรอง MedianTopN, ข้อความขั้นสูงประกอบด้วย / เริ่มตัวกรอง, ตัวแบ่งส่วนข้อมูลแบบเลือกหลายรายการ และผลรวม / ผลรวมย่อย (โดยเฉพาะกับ DistinctCount) สามารถเพิ่มการสืบค้นเพิ่มเติมหรือลดประสิทธิภาพการทํางาน
  • พิจารณาลดความซับซ้อนของการออกแบบหรือปิดใช้งานการโต้ตอบบางอย่าง

ตัวอย่าง (ตัวกรองการวัด):

สกรีนช็อตของวิชวล Power BI ที่มีตัวกรองหน่วยวัดที่ใช้เพื่อแสดงค่าโสหุ้ยคิวรีที่เพิ่มเข้ามา

คําแนะนํา DirectQuery

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

ประสิทธิภาพของแหล่งข้อมูลต้นแบบ

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

การออกแบบแบบจําลอง

  • ทําให้ขั้นตอน Power Query เรียบง่ายและพับได้ ดูตัวอย่าง "ดูคิวรีดั้งเดิม" บ่อยๆ
  • เริ่มต้นด้วยมาตรการง่ายๆ แล้วทําซ้ํา
  • หลีกเลี่ยงการรวมในคอลัมน์นิพจน์จากการคํานวณ - ทําให้เป็นรูปธรรมในแหล่งที่มาหากจําเป็น
  • หลีกเลี่ยงการเข้าร่วมบน uniqueidentifier โดยที่การร่ายทําลายการใช้ดัชนี ทําให้คีย์ประเภทอื่นเป็นรูปธรรม
  • ซ่อนตัวแทน/คีย์ระบบ สร้างคอลัมน์นามแฝงที่มองเห็นได้หากจําเป็น
  • ตรวจทานตาราง/คอลัมน์จากการคํานวณ ที่สามารถสร้างนิพจน์ที่ไม่สามารถพับได้
  • จํากัดตัวกรองแบบสองทิศทาง เฉพาะกรณีที่จําเป็นเท่านั้น ทดสอบผลกระทบด้านประสิทธิภาพ
  • พิจารณา สมมติว่าความสมบูรณ์ของการอ้างอิง เพื่อเปิดใช้งาน INNER JOIN การใช้งาน
  • หลีกเลี่ยงตัวกรองวันที่สัมพัทธ์ใน Power Query ใช้ตรรกะสัมพัทธ์ในแบบจําลองหรือเลเยอร์รายงานแทน

ตัวอย่างการกรอง:

สกรีนช็อตของการกรองขั้นตอน Power Query ในช่วง 14 วันที่ผ่านมาเพื่อแสดงว่าตรรกะวันที่สัมพัทธ์กลายเป็นสัญพจน์คงที่อย่างไร

คิวรีเนทีฟที่เป็นผลลัพธ์จะใช้วันที่สัญพจน์คงที่:

สกรีนช็อตของคิวรี SQL ดั้งเดิมที่สร้างขึ้นด้วยสัญพจน์วันที่คงที่หลังจากใช้ตัวกรองวันที่สัมพัทธ์ใน Power Query

การออกแบบรายงาน

เมื่อออกแบบรายงานที่ใช้ DirectQuery ให้พิจารณาแนวทางปฏิบัติที่ดีที่สุดต่อไปนี้เพื่อเพิ่มประสิทธิภาพการใช้งานและประสิทธิภาพ:

  • ใช้ตัวเลือกการลดคิวรี (ใช้ปุ่ม นําไปใช้กับตัวแบ่งส่วนข้อมูลและตัวกรอง และปิดใช้งานการไฮไลต์ข้ามในกรณีที่เวลาแฝงส่งผลเสียต่อประสบการณ์)

    สกรีนช็อตของตัวเลือกการลดคิวรี Power BI Desktop ที่แสดงการตั้งค่าเพื่อหน่วงเวลาตัวแบ่งส่วนข้อมูลและคิวรีตัวกรอง

  • ใช้ตัวกรองหลักตั้งแต่เนิ่นๆ เพื่อลดจํานวนแถวระดับกลางและหลีกเลี่ยงการถึงขีดจํากัด

  • จํากัดวิชวลต่อหน้า เพื่อลดคิวรีแบบขนานและแบบอนุกรม

  • ปิดใช้งานการโต้ตอบที่ไม่จําเป็น (การกรองข้ามหรือการเน้น) หากทําให้เกิดการสืบค้นแหล่งที่มาที่มีราคาแพง

    สกรีนช็อตของวิชวลสองภาพที่แสดงให้เห็นถึงการกรองข้ามและการเน้นการโต้ตอบที่สามารถทริกเกอร์คิวรีแหล่งที่มาหลายรายการ

จํานวนสูงสุดของการเชื่อมต่อ

ปรับการทํางานพร้อมกันของ DirectQuery ต่อไฟล์ (ค่าเริ่มต้น 10) ใน ตัวเลือกไฟล์ > และการตั้งค่า > ตัวเลือก > DirectQuery สําหรับไฟล์ปัจจุบัน

สกรีนช็อตของการตั้งค่าการเชื่อมต่อสูงสุดของ DirectQuery ต่อแหล่งข้อมูลในตัวเลือก Power BI Desktop

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

สภาพแวดล้อม ขีดจํากัดสูงสุดต่อแหล่งข้อมูล
Power BI Pro การเชื่อมต่อที่ใช้งานอยู่ 10 รายการ
Power BI พรีเมียม ขึ้นอยู่กับ ข้อจํากัดของหน่วยเก็บสต็อก (SKU) แบบจําลองความหมาย
เซิร์ฟเวอร์รายงาน Power BI การเชื่อมต่อที่ใช้งานอยู่ 10 รายการ

หมายเหตุ

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

คุณสมบัติการลดประสิทธิภาพ

ใช้ฟีเจอร์เหล่านี้เพื่อปรับปรุงประสิทธิภาพของ DirectQuery:

  • การรวมอัตโนมัติและตารางการรวมด้วยตนเอง: แคชข้อมูลสรุปเพื่อลดการสืบค้นแหล่งที่มา
  • ตารางไฮบริด: รักษาข้อมูลล่าสุดผ่าน DirectQuery ประวัติผ่านการนําเข้า
  • การออกแบบหน่วยวัดที่รับรู้การรวม: ตรวจสอบให้แน่ใจว่า DAX ประเมินที่เลเยอร์การรวมเมื่อเป็นไปได้
  • พารามิเตอร์ M แบบไดนามิก: ผลักดันการเลือกผู้ใช้ไปยังเพรดิเคตต้นทางตั้งแต่เนิ่นๆ
  • การแคชแบบสอบถามและผลลัพธ์ (การตั้งค่าความจุ): ใช้ชุดผลลัพธ์ล่าสุดซ้ําสําหรับวิชวลที่ซ้ํากัน
  • โหมดที่เก็บข้อมูลคู่สําหรับตารางมิติที่ใช้ร่วมกัน: ลดการสแกนมิติระยะไกลซ้ําๆ

DirectQuery ในบริการของ Power BI

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

ประสิทธิภาพในการให้บริการขึ้นอยู่กับ:

  • จํานวนผู้ใช้พร้อมกัน
  • ความซับซ้อนของภาพและจํานวนต่อหน้า
  • การมีความปลอดภัยระดับแถว (สามารถลดการใช้แคชซ้ําได้)
  • กําหนดการรีเฟรชไทล์

ลักษณะการทํางานของรายงานในบริการของ Power BI

การเปิดหน้ารายงานจะเรียกใช้คิวรีสําหรับแต่ละวิชวล (บางครั้งหลายรายการต่อวิชวล) การโต้ตอบ (การเปลี่ยนแปลงตัวแบ่งส่วนข้อมูล การไฮไลต์ข้าม ตัวกรอง) เรียกใช้คิวรีอีกครั้ง บริการจะแคชผลลัพธ์บางอย่าง คิวรีที่ทําซ้ําที่แน่นอนสามารถส่งคืนได้ทันที เว้นแต่ขอบเขตความปลอดภัยจะแตกต่างกัน

ความแตกต่างของความสามารถ:

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

การรีเฟรชแดชบอร์ด

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

หมดเวลาคิวรี

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

การวินิจฉัยประสิทธิภาพ

วินิจฉัยประสิทธิภาพการทํางานก่อนใน Power BI Desktop

ใช้ ตัววิเคราะห์ประสิทธิภาพ เพื่อแยกวิชวลที่ช้า มุ่งเน้นไปที่วิชวลที่มีปัญหาทีละรายการ

ใช้ตัวสร้างโพรไฟล์ของเซิร์ฟเวอร์ SQL เพื่อดูคิวรี

Power BI Desktop เขียนการติดตามเซสชัน รวมถึง DirectQuery SQL สําหรับบางแหล่งข้อมูล ไปยังไฟล์ FlightRecorderCurrent.trc ในโฟลเดอร์ AnalysisServicesWorkspaces ของผู้ใช้

สกรีนช็อตของ SQL Server Profiler ที่แสดงเหตุการณ์การติดตามที่มีระยะเวลากิจกรรม DirectQuery และ DAX

ในการค้นหาการติดตาม:

  1. ใน Power BI Desktop เลือก ตัวเลือกไฟล์>และการตั้งค่า >> ตัวเลือก การวินิจฉัย

  2. เลือกเปิดโฟลเดอร์การถ่ายโอนข้อมูลข้อขัดข้อง/การติดตาม

    สกรีนช็อตของกล่องโต้ตอบตัวเลือกการวินิจฉัยใน Power BI Desktop พร้อมลิงก์เพื่อเปิดโฟลเดอร์การติดตาม

  3. ขึ้นไปหนึ่งระดับไปที่ AnalysisServicesWorkspaces เปิดโฟลเดอร์พื้นที่ทํางานที่ใช้งานอยู่ จากนั้น ข้อมูล และค้นหา FlightRecorderCurrent.trc

  4. ใน SQL Server Profiler เปิดแฟ้ม: แฟ้ม>เปิด>แฟ้มการติดตาม

Profiler จะแสดงเหตุการณ์ที่จัดกลุ่มดังนี้

สกรีนช็อตของเหตุการณ์ Profiler ที่จัดกลุ่มตาม ActivityID ที่แสดงคิวรี DAX และเหตุการณ์เริ่มต้นและสิ้นสุดของ DirectQuery SQL

คอลัมน์เหตุการณ์:

  • ข้อมูลข้อความ: DAX (สําหรับการเริ่มต้น/สิ้นสุดคิวรี) หรือ SQL ดั้งเดิม (สําหรับ DirectQuery เริ่มต้น/สิ้นสุด)
  • ระยะเวลา (มิลลิวินาที) และ EndTime ช่วยระบุขั้นตอนที่ช้า
  • ActivityID จัดกลุ่มเหตุการณ์ที่เกี่ยวข้อง

คําแนะนําในการจับภาพ:

  • ทําให้เซสชันสั้น (≈10 วินาทีของการดําเนินการที่กําหนดเป้าหมาย)
  • เปิดไฟล์การติดตามอีกครั้งเพื่อดูเหตุการณ์ที่ล้างใหม่
  • หลีกเลี่ยงอินสแตนซ์เดสก์ท็อปพร้อมกันหลายอินสแตนซ์เพื่อลดความสับสน

ทําความเข้าใจรูปแบบของคิวรี

Power BI มักจะใช้การเลือกย่อย (ตารางที่ได้รับ) สําหรับตารางตรรกะที่อ้างอิงแต่ละตารางที่กําหนดโดยขั้นตอน Power Query

สกรีนช็อตของตาราง TPC-DS ตัวอย่างใน SQL Server ที่ใช้เพื่อแสดงรูปแบบ SQL ที่สร้างขึ้นสําหรับวิชวล DirectQuery

ตรรกะคิวรีตัวอย่าง:

SalesAmount (SUMX(Web_Sales, [ws_sales_price]*[ws_quantity]))
by Item[i_category]
for Date_dim[d_year] = 2000

วิชวลผลลัพธ์:

สกรีนช็อตของวิชวลตัวอย่างที่รวมยอดขายตามประเภทสินค้าสําหรับปีที่ระบุ

SQL ที่สร้างขึ้นด้วยการเลือกย่อย:

สกรีนช็อตของคิวรี SQL ที่สร้างขึ้นพร้อมการเลือกย่อยที่แสดงถึงข้อกําหนดตาราง Power Query ที่พับ

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

หมายเหตุ

บทความนี้ให้คําแนะนําทั่วไปเกี่ยวกับ DirectQuery ใน Power BI ตรวจสอบประสิทธิภาพและพฤติกรรมของ DirectQuery ด้วยแหล่งข้อมูล สคีมา ดัชนี ปริมาณงาน และข้อกําหนดการทํางานพร้อมกันที่เฉพาะเจาะจงของคุณเสมอก่อนที่จะปรับใช้กับการผลิต