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