คําแนะนําความสัมพันธ์ที่ใช้งานอยู่และไม่ได้ใช้งาน
บทความนี้มุ่งเป้าหมายไปยังคุณในฐานะผู้สร้างแบบจําลองข้อมูลที่ทํางานกับ Power BI Desktop ซึ่งจะให้คําแนะนําแก่คุณว่าเมื่อใดที่ควรสร้างความสัมพันธ์ของแบบจําลองที่ใช้งานอยู่หรือไม่ได้ใช้งาน ตามค่าเริ่มต้น ความสัมพันธ์ที่ใช้งานอยู่จะเผยแพร่ตัวกรองไปยังตารางอื่น อย่างไรก็ตาม ความสัมพันธ์ที่ไม่ได้ใช้งานจะเผยแพร่เฉพาะตัวกรองเมื่อนิพจน์ DAX เปิดใช้งาน (ใช้) ความสัมพันธ์
โน้ต
บทนําสู่ความสัมพันธ์ของแบบจําลองนั้นไม่ครอบคลุมในบทความนี้ ถ้าคุณไม่คุ้นเคยกับความสัมพันธ์ คุณสมบัติหรือวิธีการกําหนดค่าทั้งหมด เราขอแนะนําให้คุณอ่านบทความ ความสัมพันธ์แบบจําลอง ใน Power BI Desktop
นอกจากนี้ยังเป็นสิ่งสําคัญที่คุณต้องทําความเข้าใจเกี่ยวกับการออกแบบแบบจําลองข้อมูลรูปดาว สําหรับข้อมูลเพิ่มเติม โปรดดู ทําความเข้าใจโครงร่างรูปดาวและความสําคัญสําหรับ Power BI
ความสัมพันธ์ที่ใช้งานอยู่
โดยทั่วไปเราขอแนะนําให้คุณกําหนดความสัมพันธ์ที่ใช้งานอยู่เมื่อใดก็ตามที่เป็นไปได้ พวกเขาขยายขอบเขตและศักยภาพของวิธีการที่ผู้เขียนรายงานสามารถใช้แบบจําลองของคุณ และผู้ใช้ที่ทํางานกับ Q&A
พิจารณาตัวอย่างของ แบบจําลองการนําเข้า ออกแบบมาเพื่อวิเคราะห์ประสิทธิภาพการทํางานตามเวลาของเที่ยวบิน (OTP) แบบจําลองมีตาราง Flight
ซึ่งเป็นตารางข้อเท็จจริง ที่จัดเก็บหนึ่งแถวต่อเที่ยวบิน แต่ละแถวจะบันทึกวันที่เที่ยวบิน หมายเลขเที่ยวบิน สนามบินขาออกและขาเข้า และเวลาหน่วง (เป็นนาที) นอกจากนี้ยังมีตาราง Airport
ซึ่งเป็นตารางมิติ ที่จัดเก็บหนึ่งแถวต่อสนามบิน แต่ละแถวจะอธิบายรหัสสนามบิน ชื่อสนามบิน และประเทศหรือภูมิภาค
นี่คือไดอะแกรมแบบจําลองบางส่วนของสองตาราง
มีสองความสัมพันธ์ของแบบจําลองระหว่าง Flight
และตาราง Airport
ในตาราง Flight
คอลัมน์ DepartureAirport
และ ArrivalAirport
เกี่ยวข้องกับคอลัมน์ Airport
ของตาราง Airport
ในการออกแบบ Schema รูปดาว ตาราง Airport
ได้รับการอธิบายเป็นมิติการเล่นบทบาท ในแบบจําลองนี้ บทบาททั้งสองจะถูก สนามบินขาออกและสนามบินขาเข้า
ในขณะที่การออกแบบนี้ทํางานได้ดีสําหรับการออกแบบ Schema รูปดาวเชิงสัมพันธ์ ซึ่งทํางานได้ไม่ดีสําหรับแบบจําลอง Power BI นั่นเป็นเพราะว่าความสัมพันธ์ของแบบจําลองคือเส้นทางสําหรับการเผยแพร่ตัวกรองและเส้นทางเหล่านี้ต้องเป็นแบบเชิงกําหนด สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบให้แน่ใจว่าเส้นทางการเผยแพร่ตัวกรองเป็นไปในเชิงกําหนด ดู แก้ไขเส้นทางความสัมพันธ์ที่ไม่ชัดเจนดังนั้น ตามที่แสดงในตัวอย่างนี้ —ความสัมพันธ์หนึ่งใช้งานอยู่ในขณะที่ความสัมพันธ์อื่นไม่ได้ใช้งาน (แสดงด้วยเส้นประ) โดยเฉพาะจะเป็นความสัมพันธ์กับคอลัมน์ ArrivalAirport
ที่ใช้งานอยู่ ซึ่งหมายความว่าตัวกรองที่นําไปใช้กับตาราง Airport
จะเผยแพร่ไปยังคอลัมน์ ArrivalAirport
ของตาราง Flight
โดยอัตโนมัติ
การออกแบบแบบจําลองนี้มีข้อจํากัดที่รุนแรงเกี่ยวกับวิธีการรายงานข้อมูล โดยเฉพาะไม่สามารถกรองตาราง Airport
เพื่อแยกรายละเอียดเที่ยวบินสําหรับสนามบินขาออกโดยอัตโนมัติได้ เนื่องจากรายงานจําเป็นต้องกรอง (หรือจัดกลุ่ม) ตามสนามบินขาออกและขาเข้า ในเวลาเดียวกันต้องมีความสัมพันธ์ที่ใช้งานอยู่สองความสัมพันธ์ การแปลข้อกําหนดนี้ลงในการออกแบบแบบจําลอง Power BI หมายความว่าแบบจําลองต้องมีตารางสนามบินสองตาราง
นี่คือการออกแบบแบบจําลองที่ได้รับการปรับปรุงแล้ว
ขณะนี้แบบจําลองมีตารางสนามบินสองตาราง: Departure Airport
และ Arrival Airport
แต่ละความสัมพันธ์ของแบบจําลองระหว่างตารางเหล่านี้และตาราง Flight
ใช้งานอยู่ โปรดสังเกตว่าชื่อคอลัมน์ในตาราง Departure Airport
และตาราง Arrival Airport
จะถูกขึ้นต้นด้วยคํา ขาออกหรือ ขาเข้า
การออกแบบแบบจําลองที่ได้รับการปรับปรุงรองรับการสร้างการออกแบบรายงานต่อไปนี้
ตัวกรองหน้ารายงานโดย เมลเบิร์น เป็นสนามบินขาออกและกลุ่มวิชวลตารางโดยสนามบินขาเข้า
โน้ต
สําหรับแบบจําลองที่นําเข้า การเพิ่มตารางมิติอื่นส่งผลให้ขนาดของแบบจําลองเพิ่มขึ้น และเวลาการรีเฟรชที่นานขึ้น ดังนั้นจึงขัดต่อคําแนะนําที่อธิบายไว้ในบทความเทคนิคการลดข้อมูล สําหรับการนําเข้า แบบจําลอง อย่างไรก็ตาม ในตัวอย่าง ข้อกําหนดในการมีเฉพาะความสัมพันธ์ที่ใช้งานอยู่จะแทนที่คําแนะนําเหล่านี้
นอกจากนี้ เป็นเรื่องปกติที่ตารางมิติจัดเก็บจํานวนแถวต่ําที่สัมพันธ์กับจํานวนแถวตารางข้อเท็จจริง ดังนั้น ขนาดของแบบจําลองที่เพิ่มขึ้นและเวลาการรีเฟรชไม่น่าจะมีขนาดใหญ่เกินไป
วิธีการ Refactoring
ต่อไปนี้คือวิธีการปรับโครงสร้างแบบจําลองจากตารางมิติการเล่นตามบทบาทเดี่ยวให้เป็นการออกแบบที่มี หนึ่งตารางต่อบทบาท
ลบความสัมพันธ์ที่ไม่ได้ใช้งาน
พิจารณาเปลี่ยนชื่อตารางมิติการเล่นบทบาทเพื่ออธิบายบทบาทได้ดียิ่งขึ้น ในตัวอย่างในบทความนี้ ตาราง
Airport
เกี่ยวข้องกับคอลัมน์ArrivalAirport
ของตารางFlight
ดังนั้นจึงถูกเปลี่ยนชื่อเป็นArrival Airport
สร้างสําเนาของตารางการเล่นบทบาทให้มีชื่อที่แสดงถึงบทบาท ถ้าเป็นตารางนําเข้า เราขอแนะนําให้คุณสร้างตารางที่มีการคํานวณ ถ้าเป็นตาราง DirectQuery คุณสามารถทําซ้ําคิวรี Power Query ได้
ในตัวอย่าง ตาราง
Departure Airport
ถูกสร้างขึ้นโดยใช้ข้อกําหนดตารางจากการคํานวณต่อไปนี้Departure Airport = 'Arrival Airport'
สร้างความสัมพันธ์ที่ใช้งานอยู่เพื่อเชื่อมโยงตารางใหม่
พิจารณาเปลี่ยนชื่อคอลัมน์ในตารางเพื่อให้สะท้อนบทบาทของคอลัมน์ได้อย่างถูกต้อง ในตัวอย่างในบทความนี้ คอลัมน์ทั้งหมดถูกขึ้นต้นด้วยคําว่า
ขาออก หรือขาเข้าของ ชื่อเหล่านี้ทําให้มั่นใจได้ว่ารายงานวิชวลจะมีป้ายชื่อที่อธิบายตัวเองและไม่ชัดเจน นอกจากนี้ยังช่วยปรับปรุงประสบการณ์ Q&A ซึ่งช่วยให้ผู้ใช้สามารถเขียนคําถามที่ถูกต้องได้อย่างง่ายดาย พิจารณาการเพิ่มคําอธิบายไปยังตารางการเล่นตามบทบาท (ในบานหน้าต่าง ข้อมูล คําอธิบายจะปรากฏขึ้นในคําแนะนําเครื่องมือเมื่อผู้เขียนรายงานเลื่อนเคอร์เซอร์ไปที่ตาราง) ด้วยวิธีนี้ คุณสามารถสื่อสารรายละเอียดการเผยแพร่ตัวกรองอื่นๆ กับผู้เขียนรายงานได้
ความสัมพันธ์ที่ไม่ได้ใช้งาน
ในบางสถานการณ์ ความสัมพันธ์ที่ไม่ได้ใช้งานสามารถตอบสนองความต้องการการรายงานเฉพาะได้
พิจารณาข้อกําหนดของแบบจําลองและการรายงานที่แตกต่างกัน:
- แบบจําลองการขายประกอบด้วยตาราง
Sales
ที่มีสองคอลัมน์วันที่:OrderDate
และShipDate
- แต่ละแถวในตาราง
Sales
จะบันทึกลําดับเดียว - ตัวกรองวันที่จะถูกนําไปใช้กับคอลัมน์
OrderDate
ซึ่งจัดเก็บวันที่ที่ถูกต้องเสมอ - มีเพียงหน่วยวัดเดียวเท่านั้นที่จําเป็นต้องมีการเผยแพร่ตัวกรองวันที่ไปยังคอลัมน์
ShipDate
ซึ่งสามารถมีช่องว่างได้ (จนกว่าจะมีการจัดส่งคําสั่งซื้อ) - ไม่มีความต้องการในการกรอง (หรือกลุ่ม) และ รอบระยะเวลาวันที่จัดส่งพร้อมกัน
นี่คือไดอะแกรมแบบจําลองบางส่วนของสองตาราง
มีสองความสัมพันธ์ของแบบจําลองระหว่าง Sales
และตาราง Date
ในตาราง Sales
คอลัมน์ OrderDate
และ ShipDate
เกี่ยวข้องกับคอลัมน์ Date
ของตาราง Date
ในแบบจําลองนี้ บทบาทสองบทบาทสําหรับตาราง Date
จะถูก วันที่สั่งซื้อและ วันที่จัดส่ง ซึ่งเป็นความสัมพันธ์กับคอลัมน์ OrderDate
ที่ใช้งานอยู่
หน่วยวัดทั้งหก—ยกเว้นหนึ่งรายการ—ต้องกรองตามคอลัมน์ OrderDate
อย่างไรก็ตาม หน่วยวัดที่ Orders Shipped
จะต้องกรองตามคอลัมน์ ShipDate
นี่คือข้อกําหนดหน่วยวัด Orders
เพียงแค่นับแถวของตาราง Sales
ภายในบริบทตัวกรอง ตัวกรองใด ๆ ที่นําไปใช้กับตาราง Date
เผยแพร่ไปยังคอลัมน์ OrderDate
Orders = COUNTROWS(Sales)
นี่คือข้อกําหนดหน่วยวัด Orders Shipped
ซึ่งจะใช้ฟังก์ชัน USERELATIONSHIP DAX ซึ่งจะเปิดใช้งานการเผยแพร่ตัวกรองสําหรับความสัมพันธ์เฉพาะ แต่ในระหว่างการประเมินนิพจน์เท่านั้น ในตัวอย่างนี้ ความสัมพันธ์กับคอลัมน์ ShipDate
ถูกใช้
Orders Shipped =
CALCULATE(
COUNTROWS(Sales)
,USERELATIONSHIP('Date'[Date], Sales[ShipDate])
)
การออกแบบแบบจําลองนี้รองรับการสร้างการออกแบบรายงานต่อไปนี้
ตัวกรองหน้ารายงานตามไตรมาส 2019 ไตรมาสที่ 4 กลุ่มวิชวลตารางตามเดือนและแสดงสถิติยอดขายต่างๆ หน่วยวัด Orders
และ Orders Shipped
สร้างผลลัพธ์ที่แตกต่างกัน โดยแต่ละรายการใช้ตรรกะการสรุปเดียวกัน (นับจํานวนแถวของตาราง Sales
) แต่การเผยแพร่ตัวกรองตาราง Date
ที่แตกต่างกัน
โปรดสังเกตว่าตัวแบ่งส่วนข้อมูลไตรมาสมีตัวเลือก BLANK ตัวเลือกตัวแบ่งส่วนข้อมูลนี้ปรากฏขึ้นเนื่องจากการขยายตาราง Sales
ตารางมีวันที่สั่งซื้อที่ถูกต้อง แต่บางแถวมีวันที่จัดส่งที่ว่างเปล่า - คําสั่งซื้อเหล่านี้ยังไม่ได้รับการจัดส่ง การขยายตารางพิจารณาความสัมพันธ์ที่ไม่ได้ใช้งานด้วยเช่นกัน ดังนั้นค่าว่างจึงสามารถปรากฏได้เนื่องจากช่องว่างในหลายด้านของความสัมพันธ์ (หรือเนื่องจากปัญหาความสมบูรณ์ของข้อมูล)
โน้ต
ตัวกรองการรักษาความปลอดภัยระดับแถว (RLS) เผยแพร่ผ่านความสัมพันธ์ที่ใช้งานอยู่เท่านั้น ตัวกรอง RLS จะไม่แพร่ขยายสําหรับความสัมพันธ์ที่ไม่ได้ใช้งานแม้ว่า USERELATIONSHIP ฟังก์ชัน DAX ถูกใช้โดยข้อกําหนดหน่วยวัด
คำ แนะ นำ
เราขอแนะนําให้คุณกําหนดความสัมพันธ์ที่ใช้งานอยู่เมื่อใดก็ตามที่เป็นไปได้ โดยเฉพาะอย่างยิ่งเมื่อมีการกําหนดบทบาท RLS สําหรับแบบจําลองข้อมูลของคุณ พวกเขาขยายขอบเขตและศักยภาพของวิธีการที่ผู้เขียนรายงานสามารถใช้แบบจําลองของคุณ และผู้ใช้ที่ทํางานกับ Q&A ซึ่งหมายความว่าตารางมิติการเล่นบทบาทควรซ้ํากันในแบบจําลองของคุณ
ในบางสถานการณ์ อย่างไรก็ตาม คุณสามารถกําหนดความสัมพันธ์ที่ไม่ได้ใช้งานอย่างน้อยหนึ่งรายการสําหรับตารางมิติการเล่นบทบาทได้ คุณสามารถพิจารณาวิธีนี้ได้เมื่อ:
- ไม่มีข้อกําหนดสําหรับวิชวลรายงานเพื่อกรองตามบทบาทที่แตกต่างกันในเวลาเดียวกัน
- คุณใช้ฟังก์ชัน DAX USERELATIONSHIP เพื่อเปิดใช้งานความสัมพันธ์เฉพาะสําหรับการคํานวณแบบจําลองที่เกี่ยวข้อง
เนื้อหาที่เกี่ยวข้อง
สําหรับข้อมูลเพิ่มเติมที่เกี่ยวข้องกับบทความนี้ โปรดดูทรัพยากรต่อไปนี้:
- ความสัมพันธ์ของแบบจําลอง ใน Power BI Desktop
- ทําความเข้าใจ Schema รูปดาวและความสําคัญของ Power BI
- คําแนะนําการแก้ไขปัญหาความสัมพันธ์ของ
- คำ ถาม ลองถาม ชุมชน Fabric
- คำ แนะ นำ มีส่วนช่วยปรับปรุง ผ้า