แชร์ผ่าน


คําแนะนําความสัมพันธ์แบบหนึ่งต่อหนึ่ง

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

หมายเหตุ

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

นอกจากนี้ยังเป็นสิ่งสําคัญที่คุณต้องทําความเข้าใจเกี่ยวกับการออกแบบแบบจําลองข้อมูลรูปดาว สําหรับข้อมูลเพิ่มเติม โปรดดูทําความเข้าใจ Schema รูปดาวและความสําคัญของ Power BI

มีสองสถานการณ์ที่เกี่ยวข้องกับความสัมพันธ์แบบหนึ่งต่อหนึ่ง:

  • มิติลดรูป: คุณสามารถหา มิติ ลดรูปจากตารางชนิดข้อเท็จจริงได้

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

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

มิติที่ลดลง

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

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

พิจารณาตารางยอดขายต้นทางที่จัดเก็บรายละเอียดคําสั่งซื้อในสองคอลัมน์

แถวตารางสําหรับตารางยอดขาย

คอลัมน์ OrderNumber จะจัดเก็บหมายเลขลําดับ และ คอลัมน์ OrderLineNumber จะจัดเก็บลําดับของบรรทัดภายในลําดับ

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

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

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

เนื่องจากตารางคําสั่งซื้อได้รับมาจากข้อมูลยอดขาย ดังนั้นควรมีจํานวนแถวเท่ากันในแต่ละตาราง นอกจากนี้ ควรมีค่าที่ตรงกันในแต่ละคอลัมน์ SalesOrderLineID

ข้อมูลแถวที่ขยายข้ามตาราง

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

นี่คือไดอะแกรมแบบจําลองบางส่วนของสองตาราง

ไดอะแกรมแบบจําลองมีสองตาราง การออกแบบได้รับการอธิบายในย่อหน้าต่อไปนี้

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

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

หมายเหตุ

ไม่สามารถแสดงแถวตารางในไดอะแกรมแบบจําลอง Power BI Desktop ได้ การดําเนินการนี้จะทําในบทความนี้เพื่อสนับสนุนการสนทนาด้วยตัวอย่างที่ชัดเจน

ขณะนี้ไดอะแกรมแบบจําลองแสดงแถวของตาราง การอธิบายรายละเอียดเกี่ยวกับแถวในย่อหน้าต่อไปนี้

รายละเอียดแถวสําหรับสองตารางอธิบายไว้ในหัวข้อย่อยต่อไปนี้:

  • ตาราง ผลิตภัณฑ์ มีสามแถว:
    • SKU CL-01 ผลิตภัณฑ์ เสื้อยืด สี เขียว
    • SKU CL-02 ผลิตภัณฑ์ กางเกงยีนส์ สีน้ําเงิน
    • SKU AC-01 ผลิตภัณฑ์ หมวก สีน้ําเงิน
  • ตาราง หมวดหมู่ ผลิตภัณฑ์มีสองแถว:
    • SKU CL-01 ประเภท เสื้อผ้า
    • SKU AC-01 ประเภท อุปกรณ์

โปรดสังเกตว่า ตารางประเภท ผลิตภัณฑ์ไม่มีแถวสําหรับผลิตภัณฑ์ SKU CL-02 เราจะกล่าวถึงผลกระทบของแถวที่หายไปนี้ในบทความนี้ในภายหลัง

ในบานหน้าต่าง ข้อมูล ผู้เขียนรายงานจะพบเขตข้อมูลที่เกี่ยวข้องกับผลิตภัณฑ์ในสองตาราง: ผลิตภัณฑ์ และ ประเภทผลิตภัณฑ์

บานหน้าต่าง ข้อมูล แสดงตารางทั้งสองที่ขยาย และคอลัมน์จะแสดงรายการเป็นเขตข้อมูลที่มีการเรียกหมวดหมู่ผลิตภัณฑ์และผลิตภัณฑ์

มาดูกันว่าจะเกิดอะไรขึ้นเมื่อมีการเพิ่มเขตข้อมูลจากทั้งสองตารางลงในภาพตาราง ในตัวอย่างนี้ คอลัมน์ SKU มาจากตารางผลิตภัณฑ์

วิชวลตารางมีสี่คอลัมน์: SKU ผลิตภัณฑ์ สี และประเภท ค่าประเภทสําหรับผลิตภัณฑ์ SKU CL-02 ว่างเปล่า

โปรดสังเกตว่าค่า ประเภท สําหรับผลิตภัณฑ์ SKU CL-02 ว่างเปล่า เนื่องจากไม่มีแถวในตาราง หมวดหมู่ ผลิตภัณฑ์สําหรับผลิตภัณฑ์นี้

คำแนะนำ

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

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

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

ความสัมพันธ์แบบหนึ่งต่อหนึ่งแบบภายในกลุ่มแหล่งข้อมูล

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

ขั้นตอนต่อไปนี้แสดงวิธีการรวมและแบบจําลองข้อมูลที่เกี่ยวข้องแบบหนึ่งต่อหนึ่ง:

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

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

    ในตัวอย่างของเรา ตอนนี้ผู้เขียนรายงานค้นหาตารางเดียวที่ชื่อว่า ผลิตภัณฑ์ ในบานหน้าต่าง ข้อมูล ซึ่งประกอบด้วยเขตข้อมูลที่เกี่ยวข้องกับผลิตภัณฑ์ทั้งหมด

    บานหน้าต่างข้อมูลแสดงทั้งสองตารางที่ขยาย และคอลัมน์จะแสดงรายการเป็นเขตข้อมูลที่มีการเรียกผลิตภัณฑ์

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

    ในวิชวลตารางต่อไปนี้ โปรดสังเกตว่าประเภทสําหรับผลิตภัณฑ์ SKU CL-02 อ่าน [ไม่ได้กําหนด] ในคิวรี ประเภท null ถูกแทนที่ด้วยค่าข้อความโทเค็นนี้

    วิชวลตารางมีสี่คอลัมน์: SKU ผลิตภัณฑ์ สี และประเภท ค่าประเภทสําหรับผลิตภัณฑ์ SKU CL-02 มีการติดป้ายชื่อ

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

    ในตัวอย่างของเรา ผู้เขียนรายงานสามารถใช้ลําดับชั้นที่มีสองระดับได้แล้วในขณะนี้: ประเภทและผลิตภัณฑ์

    บานหน้าต่างข้อมูลแสดงทั้งสองตารางที่ขยาย และคอลัมน์จะแสดงรายการเป็นเขตข้อมูลที่มีการเรียกผลิตภัณฑ์

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

ในตัวอย่างของเรา ผู้เขียนรายงานสามารถค้นหา เขตข้อมูลประเภท ภายใน โฟลเดอร์การแสดงผลการตลาด ได้

บานหน้าต่างข้อมูลแสดงเขตข้อมูลประเภทภายในโฟลเดอร์การแสดงผลที่ชื่อว่าการตลาด

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

ความสัมพันธ์แบบหนึ่งต่อหนึ่งแบบข้ามกลุ่มแหล่งข้อมูล

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

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

วิชวลตารางมีสี่คอลัมน์: SKU ผลิตภัณฑ์ สี และประเภท ตารางมีสองแถวเท่านั้น

ตารางแสดงสองแถวเท่านั้น ผลิตภัณฑ์ SKU CL-02 หายไปเนื่องจากไม่มีแถว ที่ตรงกันในตารางประเภท ผลิตภัณฑ์

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