ทำงานกับความสัมพันธ์และคาร์ดินาลลิตี้
Power BI มีแนวคิดของทิศทางต่อความสัมพันธ์ ซึ่งแตกต่างจากระบบการจัดการฐานข้อมูลอื่น ๆ ทิศทางนี้มีบทบาทสําคัญในการกรองข้อมูลระหว่างหลายตาราง เมื่อคุณโหลดข้อมูล Power BI จะค้นหาความสัมพันธ์ที่มีอยู่ภายในข้อมูลด้วยชื่อคอลัมน์ที่ตรงกันโดยอัตโนมัติ คุณยังสามารถใช้ จัดการความสัมพันธ์ เพื่อแก้ไขตัวเลือกเหล่านี้ได้ด้วยตนเอง
ตัวอย่างเช่น คุณได้ดึงข้อมูลตารางมากมายจากฐานข้อมูลยอดขาย และรูปภาพต่อไปนี้เป็นตัวอย่างของแบบจําลองความหมายของคุณ Power BI ตรวจสอบความสัมพันธ์หลายชนิดโดยอัตโนมัติ แต่คุณไม่สามารถมองเห็นสิ่งที่ระบบทำให้เกิดขึ้นได้ คุณต้องการตรวจสอบให้แน่ใจว่าความสัมพันธ์นั้นสะท้อนความสัมพันธ์ที่มีอยู่ในข้อมูลของคุณได้อย่างแม่นยำ
ความสัมพันธ์
ต่อไปนี้เป็นความสัมพันธ์ชนิดต่างๆ ที่คุณจะพบได้ใน Power BI
ความสัมพันธ์แบบกลุ่มต่อหนึ่ง(*:1)
หรือหนึ่งต่อกลุ่ม(1: *)
อธิบายความสัมพันธ์ที่คุณมีอินสแตนซ์ของค่าหลายรายการในหนึ่งคอลัมน์ที่สัมพันธ์กับอินสแตนซ์ที่เกี่ยวข้องที่ไม่ซ้ำกันเพียงหนึ่งเดียวในคอลัมน์อื่น
อธิบายทิศทางระหว่างตารางข้อเท็จจริงและตารางมิติ
เป็นทิศทางชนิดที่พบบ่อยที่สุดและเป็นค่าเริ่มต้นของ Power BI เมื่อคุณสร้างความสัมพันธ์โดยอัตโนมัติ
ตัวอย่างของความสัมพันธ์แบบหนึ่งต่อกลุ่มจะอยู่ระหว่างตาราง CountryName และ Territory ซึ่งคุณสามารถมีหลายอาณาเขตจำนวนมากที่เชื่อมโยงกับประเทศที่ไม่ซ้ำกันได้
ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (1:1):
อธิบายความสัมพันธ์ซึ่งมีเพียงอินสแตนซ์ของค่าหนึ่งรายการเท่านั้นที่ใช้ร่วมกันระหว่างสองตาราง
จำเป็นต้องมีค่าที่ไม่ซ้ำกันในทั้งสองตาราง
ไม่แนะนำเนื่องจากความสัมพันธ์นี้จัดเก็บข้อมูลที่ซ้ำซ้อน และแสดงให้เห็นว่าแบบจำลองนั้นไม่ได้รับการออกแบบอย่างถูกต้อง ซึ่งการรวมตารางเป็นแนวทางปฏิบัติที่ดีกว่า
ตัวอย่างของความสัมพันธ์แบบหนึ่งต่อหนึ่งคือ กรณีที่คุณมีผลิตภัณฑ์และรหัสผลิตภัณฑ์ในสองตารางที่แตกต่างกัน การสร้างความสัมพันธ์แบบหนึ่งต่อหนึ่งนั้นซ้ำซ้อนและควรรวมสองตารางเหล่านี้เข้าด้วยกัน
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (.):
อธิบายความสัมพันธ์ที่มีค่าหลายค่าที่ใช้ร่วมกันระหว่างสองตาราง
ไม่จำเป็นต้องมีค่าที่ไม่ซ้ำกันในตารางใดตารางหนึ่งของความสัมพันธ์
ไม่แนะนำ เนื่องจากการไม่มีค่าที่ไม่ซ้ำกันทำให้เกิความคลุมเครือ และผู้ใช้ของคุณอาจไม่ทราบว่าคอลัมน์ของค่าคอลัมน์ใดกำลังอ้างอิงถึงอะไร
ตัวอย่างเช่น รูปต่อไปนี้แสดงความสัมพันธ์แบบกลุ่มต่อกลุ่มระหว่างตารางยอดขาย และคำสั่งซื้อ ในคอลัมน์ OrderDate เนื่องจากยอดขายหลายรายการสามารถมีหลายคำสั่งซื้อที่เชื่อมโยงอยู่ด้วยได้ ความคลุมเครือเกิดขึ้นเนื่องจากทั้งสองตารางสามารถมีวันที่สั่งซื้อเดียวกันได้
ทิศทางตัวกรองข้าม
คุณสามารถกรองข้อมูลบนหนึ่งหรือทั้งสองด้านของความสัมพันธ์ได้
ด้วยทิศทางตัวกรองข้ามเดียว:
คุณสามารถใช้ตารางในความสัมพันธ์เพียงตารางเดียวเท่านั้นเพื่อกรองข้อมูล ตัวอย่างเช่น ตารางที่ 1 สามารถกรองโดยตารางที่ 2 แต่ไม่สามารถกรองตารางที่ 2 โดยตารางที่ 1 ได้
เคล็ดลับ
ทำตามทิศทางของลูกศรในความสัมพันธ์ระหว่างตารางของคุณเพื่อทราบทิศทางที่ตัวกรองจะไหลไป โดยทั่วไปแล้ว คุณต้องการให้ลูกศรเหล่านี้ชี้ไปยังตารางข้อเท็จจริงของคุณ
สําหรับความสัมพันธ์แบบหนึ่งต่อกลุ่มหรือกลุ่มต่อหนึ่ง ทิศทางตัวกรองข้ามจะมาจากด้าน "หนึ่ง" ซึ่งหมายความว่าการกรองจะเกิดขึ้นในตารางที่มีหลายค่า
ด้วย ทิศทางตัวกรองข้ามทั้งสอง หรือ ตัวกรองข้ามแบบสองทิศทาง:
คุณสามารถใช้ตารางในความสัมพันธ์หนึ่งตารางเพื่อกรองตารางอื่นได้ ตัวอย่างเช่น คุณสามารถกรองตารางมิติผ่านตารางข้อเท็จจริง และกรองตารางข้อเท็จจริงผ่านตารางมิติได้
คุณอาจมีประสิทธิภาพลดลงเมื่อใช้ตัวกรองข้ามแบบสองทิศทางด้วยความสัมพันธ์แบบกลุ่มต่อกลุ่ม
คำเตือนเกี่ยวกับตัวกรองข้ามแบบสองทิศทาง: คุณไม่ควรเปิดใช้งานความสัมพันธ์ตัวกรองข้ามแบบสองทิศทางเว้นแต่ว่าคุณจะเข้าใจอย่างถ่องแท้เกี่ยวกับการทำเช่นนั้น การเปิดใช้งานอาจนำไปสู่ความคลุมเครือ การสุ่มตัวอย่างเกิน ผลลัพธ์ที่ไม่คาดคิด และการลดประสิทธิภาพที่อาจเกิดขึ้น
คาร์ดินาลลิตี้และทิศทางตัวกรองข้าม
สำหรับความสัมพันธ์แบบหนึ่งต่อหนึ่ง ตัวเลือกเดียวที่พร้อมใช้งานคือตัวกรองข้ามแบบสองทิศทาง คุณสามารถกรองข้อมูลได้ทั้งสองด้านของความสัมพันธ์นี้ และส่งผลให้มีค่าไม่คลุมเครือ จำเพาะหนึ่งค่า ตัวอย่างเช่น คุณสามารถกรองหมายเลขผลิตภัณฑ์หนึ่งค่าและส่งกลับผลิตภัณฑ์เดียว และคุณสามารถกรองผลิตภัณฑ์และส่งกลับรหัสผลิตภัณฑ์เดียวได้
สำหรับความสัมพันธ์แบบกลุ่มต่อกลุ่ม คุณสามารถเลือกที่จะกรองในทิศทางเดียวหรือทั้งสองทิศทางโดยใช้ตัวกรองข้ามแบบสองทิศทาง ความคลุมเครือที่เกี่ยวข้องกับตัวกรองข้ามแบบสองทิศทางจะเพิ่มมากขึ้นเมื่ออยู่ในความสัมพันธ์แบบกลุ่มต่อกลุ่ม เนื่องจากมีเส้นทางระหว่างตารางที่แตกต่างกันอยู่หลายเส้นทาง ถ้าคุณสร้างหน่วยวัด การคำนวณ หรือตัวกรอง ผลกระทบที่ไม่ได้ตั้งใจสามารถเกิดขึ้นได้จากตัวกรองข้อมูลของคุณ และขึ้นอยู่กับความสัมพันธ์ที่กลไกจัดการ Power BI เลือกเมื่อใช้ตัวกรอง ซึ่งส่งผลให้ผลลัพธ์สุดท้ายอาจแตกต่างกัน สถานการณ์นี้เป็นจริงสำหรับความสัมพันธ์แบบสองทิศทาง และสาเหตุที่คุณควรระมัดระวัง เมื่อใช้ความสัมพันธ์ดังกล่าว
ด้วยเหตุนี้ ความสัมพันธ์แบบกลุ่มต่อกลุ่ม และ/หรือความสัมพันธ์แบบสองทิศทางจึงมีความซับซ้อน หากคุณไม่แน่ใจว่าข้อมูลของคุณมีลักษณะเป็นอย่างไรเมื่อรวมเข้าด้วยกันแล้ว ความสัมพันธ์แบบเปิดปลายเหล่านี้ที่มีทิศทางตัวกรองหลายแบบสามารถก่อให้เกิดเส้นทางหลายเส้นทางผ่านข้อมูลได้
สร้างความสัมพันธ์แบบกลุ่มต่อกลุ่ม
พิจารณาสถานการณ์สมมติที่คุณได้รับมอบหมายให้สร้างวิชวลที่ตรวจสอบงบประมาณสำหรับลูกค้าและบัญชี คุณสามารถมีลูกค้าหลายรายในบัญชีเดียวกันและหลายบัญชีกับลูกค้ารายเดียวกัน ดังนั้นคุณจะทราบว่าคุณจำเป็นต้องสร้างความสัมพันธ์แบบกลุ่มต่อกลุ่ม
หากต้องการสร้างความสัมพันธ์นี้ ให้ไปที่ จัดการความสัมพันธ์>ใหม่ ในหน้าต่างผลลัพธ์ ให้สร้างความสัมพันธ์ระหว่างคอลัมน์ Customer ID ใน CustomerTable และ AccountTable ความสัมพันธ์ถูกตั้งค่าเป็นแบบกลุ่มต่อกลุ่มและชนิดตัวกรองอยู่ในทั้งสองทิศทาง ในทันทีทันใด คุณจะได้รับคำเตือนว่าคุณควรใช้ความสัมพันธ์ประเภทนี้เท่านั้น หากคาดว่าคอลัมน์ใดจะไม่มีค่าที่ไม่ซ้ำกัน เนื่องจากคุณอาจได้รับค่าที่ไม่คาดคิด เนื่องจากคุณต้องตัวกรองทั้งสองทิศทาง ให้เลือก ตัวกรองข้ามแบบสองทิศทาง
เลือก ตกลง ขณะนี้คุณได้สร้างความสัมพันธ์แบบกลุ่มต่อกลุ่มสำเร็จแล้ว
สำหรับข้อมูลเพิ่มเติม ให้ดู ความสัมพันธ์แบบกลุ่มต่อกลุ่มใน Power BI