แชร์ผ่าน


ความสัมพันธ์ของแบบจําลองใน Power BI Desktop

บทความนี้มุ่งเป้าหมายไปยังผู้สร้างแบบจําลองข้อมูลนําเข้าที่ทํางานกับ Power BI Desktop เป็นหัวข้อการออกแบบแบบจําลองที่สําคัญซึ่งจําเป็นสําหรับการนําเสนอแบบจําลองที่ใช้งานง่าย แม่นยํา และเหมาะสมที่สุด

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

วัตถุประสงค์ของความสัมพันธ์

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

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

สำคัญ

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

นี่คือวิธีที่ความสัมพันธ์เผยแพร่ตัวกรองด้วยตัวอย่างภาพเคลื่อนไหว

ไดอะแกรมแบบเคลื่อนไหวของการเผยแพร่ตัวกรองความสัมพันธ์

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

คิวรีอาจสร้างด้วยวิชวลการ์ด Power BI ร้องขอปริมาณยอดขายรวมสําหรับใบสั่งขายที่สร้างขึ้นสําหรับหมวดหมู่เดียว Cat-A และสําหรับปีเดียว CY2018 นี่คือเหตุผลที่คุณสามารถเห็นตัวกรองที่ใช้กับตาราง หมวดหมู่ และ ปี ตัวกรองบนตาราง หมวดหมู่ เผยแพร่ไปยังตาราง ผลิตภัณฑ์ เพื่อแยกผลิตภัณฑ์สองรายการที่กําหนดให้กับหมวดหมู่ Cat-A จากนั้นตัวกรองตาราง ผลิตภัณฑ์ จะเผยแพร่ไปยังตาราง ยอดขาย เพื่อแยกแถวยอดขายเพียงสองแถวสําหรับผลิตภัณฑ์เหล่านี้ แถวยอดขายทั้งสองนี้แสดงยอดขายของผลิตภัณฑ์ที่กําหนดให้กับหมวดหมู่ Cat-A ปริมาณรวมทั้งหมดคือ 14 หน่วย ในเวลาเดียวกัน ตัวกรองตาราง ปี จะเผยแพร่เพื่อกรองตาราง ยอดขาย เพิ่มเติม ส่งผลให้มีเพียงยอดขายแถวเดียวสําหรับผลิตภัณฑ์ที่กําหนดให้กับหมวดหมู่ Cat-A และที่สั่งซื้อในปี CY2018 ค่าปริมาณที่ส่งกลับโดยคิวรีคือ 11 หน่วย โปรดทราบว่าเมื่อตัวกรองหลายตัวถูกนําไปใช้กับตาราง (เช่น ตารางยอดขาย ในตัวอย่างนี้) จะเป็นการดําเนินการ AND เสมอโดยกําหนดให้เงื่อนไขทั้งหมดต้องเป็นจริง

ใช้หลักการออกแบบแบบจําลองมิติที่ดาว

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

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

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

ตารางแบบไม่เชื่อมต่อ

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

พารามิเตอร์ what-if ของ Power BI Desktop เป็นคุณลักษณะที่สร้างตารางแบบไม่เชื่อมต่อ สําหรับข้อมูลเพิ่มเติม ดูสร้างและใช้พารามิเตอร์ What if (เกิดอะไรขึ้นถ้า) เพื่อแสดงภาพตัวแปรใน Power BI Desktop

คุณสมบัติความสัมพันธ์

ความสัมพันธ์ของแบบจําลองเชื่อมโยงกับหนึ่งคอลัมน์ในตารางหนึ่งกับอีกหนึ่งคอลัมน์ในตารางที่แตกต่างกัน (มีกรณีพิเศษหนึ่งกรณีที่ข้อกําหนดนี้ไม่เป็นจริง และจะใช้กับความสัมพันธ์แบบหลายคอลัมน์ในแบบจําลอง DirectQuery เท่านั้น สําหรับข้อมูลเพิ่มเติม โปรดดูบทความฟังก์ชัน CO เมกะไบต์ INEVALUES DAX)

หมายเหตุ

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

ชนิดข้อมูลของคอลัมน์

ชนิดข้อมูลสําหรับทั้งคอลัมน์ "from" และ "to' ของความสัมพันธ์ควรเหมือนกัน การทํางานกับความสัมพันธ์ที่กําหนดไว้ใน คอลัมน์ DateTime อาจไม่ทํางานตามที่คาดไว้ กลไกที่จัดเก็บข้อมูล Power BI จะใช้ชนิดข้อมูล DateTime เท่านั้นชนิดข้อมูลวันที่ เวลาและวันที่/เวลา/โซนเวลาเป็นรูปแบบ Power BI ที่สร้างขึ้นที่นําไปใช้ด้านบน วัตถุที่ขึ้นอยู่กับแบบจําลองใด ๆ จะยังคงปรากฏเป็น DateTime ในกลไกจัดการ (เช่น ความสัมพันธ์ กลุ่ม และอื่น ๆ) ดังนั้น ถ้าผู้ใช้เลือก วันที่ จากแท็บ การวาง รูปแบบ สําหรับคอลัมน์ดังกล่าว พวกเขายังคงไม่ลงทะเบียนเป็นวันที่เดียวกัน เนื่องจากส่วนเวลาของข้อมูลยังคงถูกพิจารณาโดยกลไกจัดการ อ่านเพิ่มเติมเกี่ยวกับวิธีการ จัดการชนิดวันที่/เวลา หากต้องการแก้ไขลักษณะการทํางาน ชนิดข้อมูลของคอลัมน์ควรได้รับการอัปเดตในตัวแก้ไข Power Query เพื่อลบส่วนเวลาออกจากข้อมูลที่นําเข้า ดังนั้นเมื่อกลไกจัดการข้อมูล ค่าจะปรากฏเหมือนกัน

คาร์ดินาลลิตี้

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

หมายเหตุ

ถ้าการดําเนินการรีเฟรชข้อมูลพยายามโหลดค่าที่ซ้ํากันลงในคอลัมน์ด้าน "หนึ่ง" การรีเฟรชข้อมูลทั้งหมดจะล้มเหลว

ตัวเลือกทั้งสี่พร้อมกับเครื่องหมายแบบย่อจะอธิบายไว้ในรายการหัวข้อย่อยต่อไปนี้:

  • หนึ่งต่อกลุ่ม (1:*)
  • แบบกลุ่มต่อหนึ่ง (*:1)
  • หนึ่งต่อหนึ่ง (1:1)
  • กลุ่มต่อกลุ่ม (*:*)

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

คาร์ดินาลลิตี้หนึ่งต่อกลุ่ม (และแบบกลุ่มต่อหนึ่ง)

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

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

คาร์ดินาลลิตี้แบบหนึ่งต่อหนึ่ง

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

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

คาร์ดินาลลิตี้แบบกลุ่มต่อกลุ่ม

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

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

หมายเหตุ

ประเภทของคาร์ดินาลลิตี้แบบกลุ่มต่อกลุ่มได้รับการสนับสนุนสําหรับแบบจําลองที่พัฒนาขึ้นสําหรับเซิร์ฟเวอร์รายงาน Power BI มกราคม 2024 และใหม่กว่า

เคล็ดลับ

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

สกรีนช็อตของสองตารางในไดอะแกรมแบบจําลองที่เน้นตัวบ่งชี้คาร์ดินาลลิตี้

ทิศทางตัวกรองแบบข้าม

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

ประเภทของคาร์ดินาลลิตี้ ตัวเลือกตัวกรองข้าม
หนึ่งต่อกลุ่ม (หรือ กลุ่มต่อหนึ่ง) เดียว
ทั้งสองรายการ
One-to-one ทั้งสองรายการ
กลุ่มต่อกลุ่ม เดียว (Table1 ไปยัง Table2)
เดียว (Table2 ไปยัง Table1)
ทั้งสองรายการ

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

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

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

คุณสามารถปรับเปลี่ยนทิศทางตัวกรองข้ามของความสัมพันธ์ รวมถึงการปิดใช้งานการเผยแพร่ตัวกรองโดยใช้การคํานวณแบบจําลอง ซึ่งทําได้โดยใช้ฟังก์ชัน CROSSFILTER DAX

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

เราขอแนะนําให้ใช้การกรองแบบสองทิศทางตามความจําเป็นเท่านั้น สําหรับข้อมูลเพิ่มเติม โปรดดู คําแนะนําความสัมพันธ์แบบสองทิศทาง

เคล็ดลับ

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

สกรีนช็อตของสองตารางในไดอะแกรมแบบจําลองที่มีการเน้นหัวลูกศรตัวกรองข้าม

ทำให้ความสัมพันธ์นี้ทำงาน

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

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

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

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

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

เคล็ดลับ

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

สกรีนช็อตของสองตารางในไดอะแกรมแบบจําลองและความสัมพันธ์สองความสัมพันธ์ เส้นทึบหนึ่งเส้นสําหรับใช้งานและเส้นประหนึ่งเส้นสําหรับไม่ได้ใช้งาน

ตั้งสมมติฐานโดยซื่อตรงต่อการอ้างอิง

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

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

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

สำคัญ

ถ้าความสมบูรณ์ของข้อมูลถูกทําลาย inner join จะกําจัดแถวที่ไม่ตรงกันระหว่างตาราง ตัวอย่างเช่น พิจารณาแบบจําลองตารางยอดขายที่มีค่าคอลัมน์ ProductID ที่ไม่มีอยู่ในตารางผลิตภัณฑ์ที่เกี่ยวข้อง การเผยแพร่ตัวกรองจาก ตาราง ผลิตภัณฑ์ ไปยัง ตาราง ยอดขาย จะกําจัดแถวยอดขายสําหรับผลิตภัณฑ์ที่ไม่รู้จัก ซึ่งจะส่งผลให้คํากล่าวไม่เกี่ยวกับผลลัพธ์การขาย

สําหรับข้อมูลเพิ่มเติม ให้ดู สมมติว่ามีการตั้งค่า Referential Integrity ใน Power BI Desktop

ฟังก์ชัน DAX ที่เกี่ยวข้อง

มีฟังก์ชัน DAX มากมายที่เกี่ยวข้องกับความสัมพันธ์ของแบบจําลอง มีการอธิบายแต่ละฟังก์ชันโดยย่อในรายการหัวข้อย่อยต่อไปนี้:

  • RELATED: ดึงค่าจากด้าน "หนึ่ง" ของความสัมพันธ์ ซึ่งมีประโยชน์เมื่อเกี่ยวข้องกับการคํานวณจากตารางที่แตกต่างกันที่ได้รับการประเมินใน บริบทแถว
  • RELATEDTABLE: ดึงข้อมูลตารางของแถวจากด้าน "กลุ่ม" ของความสัมพันธ์
  • USERELATIONSHIP: อนุญาตให้การคํานวณใช้ความสัมพันธ์ที่ไม่ได้ใช้งาน (ในทางเทคนิค ฟังก์ชันนี้จะปรับเปลี่ยนน้ําหนักของความสัมพันธ์ของแบบจําลองที่ไม่ได้ใช้งานแบบเฉพาะที่ช่วยในการมีอิทธิพลต่อการใช้งาน) ซึ่งจะมีประโยชน์เมื่อแบบจําลองของคุณมีตารางมิติการเล่นบทบาท และคุณเลือกที่จะสร้างความสัมพันธ์ที่ไม่ได้ใช้งานจากตารางนี้ คุณยังสามารถใช้ฟังก์ชันนี้เพื่อ แก้ไขความคลุมเครือในเส้นทางตัวกรอง
  • CROSSFILTER: ปรับเปลี่ยนทิศทางตัวกรองข้ามของความสัมพันธ์ (เป็นหนึ่งหรือทั้งสอง) หรือปิดใช้งานการเผยแพร่ตัวกรอง (ไม่มี) ซึ่งจะมีประโยชน์เมื่อคุณต้องการเปลี่ยนแปลงหรือละเว้นความสัมพันธ์ของแบบจําลองในระหว่างการประเมินการคํานวณที่เฉพาะเจาะจง
  • CO เมกะไบต์ INEVALUES: รวมสตริงข้อความสองรายการขึ้นไปเป็นสตริงข้อความเดียว วัตถุประสงค์ของฟังก์ชันนี้คือการสนับสนุนความสัมพันธ์แบบหลายคอลัมน์ในแบบจําลอง DirectQuery เมื่อตารางอยู่ในกลุ่มแหล่งข้อมูลเดียวกัน
  • TREATAS: ใช้ผลลัพธ์ของนิพจน์ตารางเป็นตัวกรองคอลัมน์จากตารางที่ไม่เชื่อมโยง ซึ่งจะเป็นประโยชน์ในสถานการณ์ขั้นสูงเมื่อคุณต้องการสร้างความสัมพันธ์เสมือนในระหว่างการประเมินการคํานวณเฉพาะ
  • ฟังก์ชันหลักและรอง: ตระกูลของฟังก์ชันที่เกี่ยวข้องที่คุณสามารถใช้ในการสร้างคอลัมน์จากการคํานวณเพื่อทําให้ลําดับชั้นแบบพ่อ-ลูกเป็นธรรมชาติ จากนั้นคุณสามารถใช้คอลัมน์เหล่านี้เพื่อสร้างลําดับชั้นแบบคงที่ได้

การประเมินผลความสัมพันธ์

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

ก่อนอื่น คุณจําเป็นต้องมีทฤษฎีการสร้างแบบจําลองบางอย่างเพื่อทําความเข้าใจการประเมินผลความสัมพันธ์อย่างสมบูรณ์

แหล่งข้อมูลแบบจําลองนําเข้าหรือ DirectQuery ข้อมูลทั้งหมดมาจากแคช Vertipaq หรือฐานข้อมูลต้นทาง ในทั้งสองอินสแตนซ์ Power BI สามารถกําหนดได้ว่ามีด้าน "หนึ่ง" ของความสัมพันธ์อยู่

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

นี่คือตัวอย่างของโมเดลแบบรวม

ไดอะแกรมของแบบจําลองแบบรวมที่ประกอบด้วยกลุ่มแหล่งข้อมูลสองกลุ่ม

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

ความสัมพันธ์แบบธรรมดา

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

ในตัวอย่างต่อไปนี้ มีความสัมพันธ์แบบปกติสองความสัมพันธ์ ซึ่งทั้งสองมีเครื่องหมายเป็น R ความสัมพันธ์ดังกล่าวประกอบรวมด้วย ความสัมพันธ์แบบหนึ่งต่อกลุ่มที่อยู่ภายในกลุ่มแหล่งข้อมูล Vertipaq และความสัมพันธ์แบบหนึ่งต่อกลุ่มที่อยู่ภายในแหล่งข้อมูล DirectQuery

ไดอะแกรมของแบบจําลองแบบรวมที่ประกอบด้วยกลุ่มแหล่งข้อมูลสองกลุ่ม ซึ่งมีเครื่องหมายความสัมพันธ์แบบธรรมดาที่ทําเครื่องหมาย

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

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

หมายเหตุ

ความสัมพันธ์ที่ไม่ได้ใช้งานจะขยายด้วย แม้ว่าการคํานวณจะไม่ใช้ความสัมพันธ์นี้ก็ตาม ความสัมพันธ์แบบสองทิศทางไม่มีผลกระทบต่อการขยายตาราง

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

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

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

นี่คือวิธีการทํางานของการขยายตารางด้วยตัวอย่างภาพเคลื่อนไหว

ไดอะแกรมแบบเคลื่อนไหวของการขยายตาราง

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

ความสัมพันธ์แบบจํากัด

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

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

ในตัวอย่างต่อไปนี้ มีความสัมพันธ์แบบจํากัดสองความสัมพันธ์ ซึ่งทั้งสองมีเครื่องหมายเป็น L ความสัมพันธ์สองความสัมพันธ์ประกอบรวมด้วย ความสัมพันธ์แบบกลุ่มต่อกลุ่มที่อยู่ภายในกลุ่มแหล่งข้อมูล Vertipaq และความสัมพันธ์แบบข้ามกลุ่มแหล่งข้อมูลแบบหนึ่งต่อกลุ่ม

ไดอะแกรมของแบบจําลองแบบรวมที่ประกอบด้วยสองตารางซึ่งมีเครื่องหมายความสัมพันธ์แบบจํากัดที่ทําเครื่องหมาย

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

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

มีข้อจํากัดอื่น ๆ ที่เกี่ยวข้องกับความสัมพันธ์แบบจํากัด:

  • RELATEDไม่สามารถใช้ฟังก์ชัน DAX เพื่อดึงค่าคอลัมน์ด้าน "หนึ่ง" ได้
  • การบังคับใช้ RLS มีข้อจํากัดของโทโพโลยี

เคล็ดลับ

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

สกรีนช็อตของสองตารางในไดอะแกรมแบบจําลองที่มีการเน้นความสัมพันธ์แบบจํากัด

แก้ไขความคลุมเครือของเส้นทางความสัมพันธ์

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

ลำดับความสำคัญ

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

  1. เส้นทางที่ประกอบด้วยความสัมพันธ์แบบหนึ่งต่อกลุ่ม
  2. เส้นทางที่ประกอบด้วยความสัมพันธ์แบบหนึ่งต่อกลุ่มหรือกลุ่มต่อกลุ่ม
  3. เส้นทางที่ประกอบด้วยความสัมพันธ์แบบกลุ่มต่อหนึ่ง
  4. เส้นทางที่ประกอบด้วยความสัมพันธ์แบบหนึ่งต่อกลุ่มจากตารางต้นทางไปยังตารางระดับกลางตามด้วยความสัมพันธ์แบบกลุ่มต่อหนึ่งจากตารางระดับกลางไปยังตารางเป้าหมาย
  5. เส้นทางที่ประกอบด้วยความสัมพันธ์แบบหนึ่งต่อกลุ่มหรือกลุ่มต่อกลุ่มจากตารางต้นทางไปยังตารางระดับกลางตามด้วยความสัมพันธ์แบบกลุ่มต่อกลุ่มหรือกลุ่มต่อกลุ่มจากตารางขั้นกลางไปยังตารางเป้าหมาย
  6. เส้นทางอื่น

เมื่อมีการรวมความสัมพันธ์ไว้ในเส้นทางที่พร้อมใช้งานทั้งหมด จะถูกลบออกจากการพิจารณาจากเส้นทางทั้งหมด

ค่าถ่วงน้ำหนัก

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

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

พิจารณาตัวอย่างต่อไปนี้ หน่วยวัดยอดขายผลิตภัณฑ์จะกําหนดน้ําหนักที่สูงขึ้นให้กับความสัมพันธ์ระหว่าง Sales[ProductID] และ Product[ProductID] ตามด้วยความสัมพันธ์ระหว่าง Inventory[ProductID] และ Product[ProductID]

Product Sales = 
CALCULATE(
    CALCULATE(
        SUM(Sales[SalesAmount]), 
        USERELATIONSHIP(Sales[ProductID], Product[ProductID])
    ),
    USERELATIONSHIP(Inventory[ProductID], Product[ProductID])
)

หมายเหตุ

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

การกําหนดลักษณะประสิทธิภาพ

รายการต่อไปนี้เรียงลําดับประสิทธิภาพการเผยแพร่ตัวกรอง จากประสิทธิภาพเร็วที่สุดไปยังช้าที่สุด:

  1. ความสัมพันธ์แบบภายในกลุ่มแหล่งข้อมูลชนิดหนึ่งต่อกลุ่ม
  2. ความสัมพันธ์ของแบบจําลองแบบกลุ่มต่อกลุ่มทําได้ด้วยตารางตัวกลางและเกี่ยวข้องกับความสัมพันธ์แบบสองทิศทางอย่างน้อยหนึ่งความสัมพันธ์
  3. ความสัมพันธ์ของคาร์ดินาลลิตี้แบบกลุ่มต่อกลุ่ม
  4. ความสัมพันธ์แบบข้ามกลุ่มแหล่งข้อมูล

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับบทความนี้ โปรดดูทรัพยากรต่อไปนี้: