คําแนะนําความสัมพันธ์แบบสองทิศทาง
บทความนี้มุ่งเป้าหมายไปยังคุณในฐานะผู้สร้างแบบจําลองข้อมูลที่ทํางานกับ Power BI Desktop ซึ่งจะให้คําแนะนําคุณเกี่ยวกับเวลาในการสร้างความสัมพันธ์ของแบบจําลองแบบสองทิศทาง ความสัมพันธ์แบบสองทิศทางคือตัวกรองในทั้งสองทิศทาง
หมายเหตุ
บทนําสู่ความสัมพันธ์ของแบบจําลองนั้นไม่ครอบคลุมในบทความนี้ ถ้าคุณไม่คุ้นเคยกับความสัมพันธ์ คุณสมบัติหรือวิธีการกําหนดค่าทั้งหมด เราขอแนะนําให้คุณอ่านบทความ ความสัมพันธ์แบบจําลอง ใน Power BI Desktop ก่อน
นอกจากนี้ยังเป็นสิ่งสําคัญที่คุณต้องทําความเข้าใจเกี่ยวกับการออกแบบแบบจําลองข้อมูลรูปดาว สําหรับข้อมูลเพิ่มเติม โปรดดูทําความเข้าใจ Schema รูปดาวและความสําคัญของ Power BI
โดยทั่วไปแล้ว เราขอแนะนําให้คุณลดการใช้ความสัมพันธ์แบบสองทิศทาง เนื่องจากอาจส่งผลกระทบในเชิงลบต่อประสิทธิภาพการทํางานของคิวรีแบบจําลอง และอาจสร้างความสับสนให้กับผู้ใช้รายงานของคุณ
อย่างไรก็ตาม มีสามสถานการณ์เมื่อการกรองแบบสองทิศทางสามารถแก้ไขข้อกําหนดเฉพาะได้:
- ความสัมพันธ์ของแบบจําลองพิเศษ
- ตัวเลือกตัวแบ่งส่วนข้อมูล
"ด้วยข้อมูล" - การวิเคราะห์มิติต่อมิติ
ความสัมพันธ์ของแบบจําลองพิเศษ
ความสัมพันธ์แบบสองทิศทางมีบทบาทสําคัญในการสร้างความสัมพันธ์แบบจําลองพิเศษสองชนิดต่อไปนี้:
- แบบหนึ่งต่อหนึ่ง: ความสัมพันธ์แบบหนึ่งต่อหนึ่งจะต้องเป็นแบบสองทิศทาง ซึ่งไม่สามารถกําหนดค่าอื่นได้ โดยทั่วไปแล้ว เราไม่แนะนําให้สร้างชนิดของความสัมพันธ์เหล่านี้ สําหรับการสนทนาที่สมบูรณ์และรูปแบบการออกแบบทางเลือก ให้ดูที่ คําแนะนําความสัมพันธ์แบบหนึ่งต่อหนึ่ง
-
แบบกลุ่มต่อกลุ่ม : เมื่อเชื่อมโยงตารางมิติข้อมูลสอง จะต้องมีตารางเชื่อมโยง จําเป็นต้องใช้ตัวกรองแบบสองทิศทางเพื่อให้แน่ใจว่าตัวกรองเผยแพร่ไปทั่วตารางการเชื่อมโยง สําหรับข้อมูลเพิ่มเติม โปรดดูคําแนะนําความสัมพันธ์แบบกลุ่มต่อกลุ่ม
ตัวเลือกตัวแบ่งส่วนข้อมูล "ด้วยข้อมูล"
ความสัมพันธ์แบบสองทิศทางสามารถส่งตัวแบ่งส่วนข้อมูลที่จํากัดตัวเลือกไปยังตําแหน่งที่มีข้อมูลอยู่ได้ (ถ้าคุณคุ้นเคยกับ Excel PivotTables และตัวแบ่งส่วนข้อมูล นี่คือลักษณะการทํางานเริ่มต้นเมื่อทําการจัดหาข้อมูลจากแบบจําลองความหมายของ Power BI หรือแบบจําลอง Analysis Services) เพื่อช่วยอธิบายให้เข้าใจความหมาย ก่อนอื่นให้พิจารณาไดอะแกรมแบบจําลองต่อไปนี้
ตารางแรกที่มีชื่อว่า Customer
ซึ่งมีสามคอลัมน์ดังต่อไปนี้: Country-Region
Customer
และ CustomerCode
ตารางที่สองชื่อว่า Product
ซึ่งมีสามคอลัมน์ดังต่อไปนี้: Color
, Product
, และ SKU
ตารางที่สามชื่อว่า Sales
ซึ่งมีสี่คอลัมน์ ดังต่อไปนี้: CustomerCode
, OrderDate
, Quantity
, และ SKU
ตาราง Customer
และ Product
เป็นตารางมิติ และแต่ละรายการมีความสัมพันธ์แบบหนึ่งต่อกลุ่มกับตาราง Sales
แต่ละความสัมพันธ์จะกรองในทิศทางเดียว
เพื่อช่วยอธิบายวิธีการกรองแบบสองทิศทาง ไดอะแกรมแบบจําลองได้รับการแก้ไขเพื่อแสดงแถวของตาราง ตัวอย่างทั้งหมดในบทความนี้เป็นไปตามข้อมูลนี้
รายละเอียดแถวสําหรับสามตารางอธิบายไว้ในหัวข้อย่อยต่อไปนี้:
- ตาราง
Customer
มีสองแถว:-
CustomerCode
CUST-01Customer
Customer-1Country-Region
สหรัฐอเมริกา -
CustomerCode
CUST-02Customer
Customer-2Country-Region
ออสเตรเลีย
-
- ตาราง
Product
มีสามแถว:CL-01 เสื้อยืดGreen CL-02 กางเกงยีนส์Blue AC-01 หมวกสีน้ําเงิน
- ตาราง
Sales
มีสามแถว:-
OrderDate
1 มกราคม 2019,CustomerCode
CUST-01,SKU
CL-01,Quantity
10 -
OrderDate
กุมภาพันธ์ 2562,CustomerCode
CUST-01,SKU
CL-02,Quantity
20 -
OrderDate
3 มีนาคม 2562,CustomerCode
CUST-02,SKU
CL-01,Quantity
30
-
ในตอนนี้ ให้พิจารณาหน้ารายงานต่อไปนี้
หน้านี้ประกอบด้วยตัวแบ่งส่วนข้อมูลสองตัวและการ์ดแสดงผลด้วยภาพ ตัวแบ่งส่วนข้อมูลแรกจะยึดตามเขตข้อมูล Country-Region
และมีสองตัวเลือก: ออสเตรเลียและสหรัฐอเมริกา ขณะนี้แบ่งตามออสเตรเลีย ตัวแบ่งส่วนข้อมูลที่สองจะยึดตามเขตข้อมูล Product
และมีสามตัวเลือก: หมวก กางเกงยีนส์ และเสื้อยืด ไม่มีรายการที่ถูกเลือก (หมายความว่า ไม่มีการกรองผลิตภัณฑ์ ) วิชวลการ์ดแสดงปริมาณ 30
เมื่อรายงานผู้ใช้แบ่งส่วนโดยออสเตรเลีย คุณอาจต้องการจํากัดตัวแบ่งส่วนข้อมูลผลิตภัณฑ์เพื่อแสดงตัวเลือกที่ข้อมูล เกี่ยวข้องกับ การขายของออสเตรเลีย นั่นคือความหมายโดยการแสดงตัวเลือกตัวแบ่งส่วนข้อมูล "ด้วยข้อมูล" คุณสามารถบรรลุลักษณะการทํางานนี้ได้โดยการตั้งค่าความสัมพันธ์ระหว่างตาราง Product
และตาราง Sales
เพื่อกรอง ทั้งสองทิศทาง
ตอนนี้ตัวแบ่งส่วนข้อมูลผลิตภัณฑ์แสดงรายการตัวเลือกเดียว: เสื้อยืด ตัวเลือกนี้แสดงเฉพาะผลิตภัณฑ์ที่ขายให้กับลูกค้าชาวออสเตรเลียเท่านั้น
ก่อนอื่น เราขอแนะนําให้คุณพิจารณาอย่างรอบคอบว่าการออกแบบนี้เหมาะกับผู้ใช้รายงานของคุณหรือไม่ ผู้ใช้รายงานบางคนพบประสบการณ์ที่สับสนเนื่องจากพวกเขาไม่เข้าใจว่าทําไมตัวเลือกตัวแบ่งส่วนข้อมูลปรากฏแบบไดนามิกหรือหายไปเมื่อพวกเขาโต้ตอบกับตัวแบ่งส่วนข้อมูลอื่น ๆ
ถ้าคุณตัดสินใจที่จะแสดงตัวเลือกตัวแบ่งส่วนข้อมูล "ด้วยข้อมูล" เราไม่แนะนําให้คุณตั้งค่าความสัมพันธ์แบบสองทิศทาง ความสัมพันธ์แบบสองทิศทางจําเป็นต้องมีการประมวลผลที่มากขึ้นและอาจส่งผลกระทบต่อประสิทธิภาพการทํางานของคิวรีได้ โดยเฉพาะอย่างยิ่งเมื่อจํานวนความสัมพันธ์แบบสองทิศทางในแบบจําลองเพิ่มขึ้น
มีวิธีที่ดีกว่าเพื่อให้ได้ผลลัพธ์เดียวกัน: แทนที่จะใช้ตัวกรองแบบสองทิศทาง คุณสามารถใช้ตัวกรองระดับวิชวลกับตัวแบ่งส่วนข้อมูลผลิตภัณฑ์ได้
ตอนนี้เรามาพิจารณาว่าความสัมพันธ์ระหว่าง Product
และตาราง Sales
ไม่มีตัวกรองในทั้งสองทิศทางอีกต่อไป และมีการเพิ่มข้อกําหนดหน่วยวัดต่อไปนี้ลงในตาราง Sales
Total Quantity = SUM(Sales[Quantity])
ในการแสดงตัวเลือกตัวแบ่งส่วนข้อมูลผลิตภัณฑ์ "ด้วยข้อมูล" จะต้องมีการกรองโดยหน่วยวัด Total Quantity
โดยใช้เงื่อนไข "ไม่ใช่ค่าว่าง"
การวิเคราะห์มิติต่อมิติ
สถานการณ์ที่แตกต่างกันที่เกี่ยวข้องกับความสัมพันธ์แบบสองทิศทางจะถือว่าตารางข้อเท็จจริง เหมือนตารางการเชื่อมโยง ด้วยวิธีนี้สนับสนุนการวิเคราะห์ข้อมูลตารางมิติภายในบริบทตัวกรองของตารางมิติที่แตกต่างกัน
ใช้แบบจําลองตัวอย่างในบทความนี้ ให้พิจารณาว่าสามารถตอบคําถามต่อไปนี้ได้อย่างไร:
- มีสีกี่สีที่ถูกขายให้กับลูกค้าชาวออสเตรเลีย
- มีประเทศ/ภูมิภาคกี่ประเทศที่ซื้อกางเกงยีนส์
ทั้งสองคําถามสามารถตอบ โดยไม่ต้อง สรุปข้อมูลในตารางข้อเท็จจริงการเชื่อมโยง อย่างไรก็ตาม จําเป็นต้องใช้ให้ตัวกรองเผยแพร่จากตารางมิติหนึ่งไปยังอีกตารางหนึ่ง เมื่อตัวกรองเผยแพร่ผ่านตารางข้อเท็จจริง การสรุปคอลัมน์ตารางมิติสามารถทําได้โดยใช้ฟังก์ชัน DISTINCTCOUNT DAX และอาจเป็นฟังก์ชัน MIN และ MAX DAX
ในขณะที่ตารางข้อเท็จจริงทํางานเหมือนกับตารางการเชื่อมโยง คุณสามารถใช้คําแนะนําความสัมพันธ์แบบกลุ่มต่อกลุ่มเพื่อเชื่อมโยงตารางมิติสองตารางได้ ซึ่งจะต้องมีการตั้งค่าความสัมพันธ์อย่างน้อยหนึ่งรายการเพื่อกรองทั้งสองทิศทาง สําหรับข้อมูลเพิ่มเติม โปรดดูคําแนะนําความสัมพันธ์แบบกลุ่มต่อกลุ่ม
อย่างไรก็ตาม ตามที่อธิบายไว้ในบทความนี้ การออกแบบนี้มักจะส่งผลกระทบเชิงลบต่อประสิทธิภาพการทํางาน และประสบการณ์ของผู้ใช้ที่เกี่ยวข้องกับตัวเลือกตัวแบ่งส่วนข้อมูล "ด้วยข้อมูล" ดังนั้นเราขอแนะนําให้คุณเปิดใช้งานการกรอง แบบสองทิศทางในข้อกําหนด หน่วยวัดโดยใช้ ฟังก์ชัน CROSSFILTER DAX แทน คุณสามารถใช้ฟังก์ชัน CROSSFILTER เพื่อปรับเปลี่ยนทิศทางตัวกรองหรือแม้แต่ปิดใช้งานความสัมพันธ์ ระหว่างการประเมินของนิพจน์ได้
พิจารณาข้อกําหนดหน่วยวัดต่อไปนี้ที่เพิ่มลงในตาราง Sales
ในตัวอย่างนี้ ความสัมพันธ์แบบจําลองระหว่างตาราง Customer
และตาราง Sales
ได้รับการตั้งค่าให้กรองใน ทิศทางเดียว
Different Countries Sold =
CALCULATE(
DISTINCTCOUNT(Customer[Country-Region]),
CROSSFILTER(
Customer[CustomerCode],
Sales[CustomerCode],
BOTH
)
)
ในระหว่างการประเมินผลของหน่วยวัด Different Countries Sold
ความสัมพันธ์ระหว่าง Customer
และตาราง Sales
จะกรองทั้งสองทิศทาง
สถิติการแสดงผลด้วยภาพของตารางต่อไปนี้สําหรับแต่ละผลิตภัณฑ์ที่ขาย คอลัมน์ Quantity
เป็นเพียงผลรวมของค่าปริมาณ คอลัมน์ Different Countries Sold
แสดงจํานวนที่แตกต่างกันของค่าภูมิภาคและประเทศของลูกค้าทั้งหมดที่ซื้อผลิตภัณฑ์
เนื้อหาที่เกี่ยวข้อง
สําหรับข้อมูลเพิ่มเติมที่เกี่ยวข้องกับบทความนี้ โปรดดูทรัพยากรต่อไปนี้: