หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ความเรียบง่ายและใช้งานง่ายที่ช่วยให้ผู้ใช้ Power BI สามารถรวบรวมข้อมูลได้อย่างรวดเร็วและสร้างรายงานที่น่าสนใจและมีประสิทธิภาพเพื่อทําการตัดสินใจทางธุรกิจอย่างชาญฉลาดยังช่วยให้ผู้ใช้สามารถสร้างคิวรีที่มีประสิทธิภาพต่ําได้อย่างง่ายดาย สิ่งนี้มักเกิดขึ้นเมื่อมีสองตารางที่เกี่ยวข้องกันในลักษณะที่คีย์นอกเกี่ยวข้องกับตาราง SQL หรือรายการ SharePoint ปัญหานี้ไม่ได้เฉพาะเจาะจงกับ SQL หรือ SharePoint และเกิดขึ้นในสถานการณ์การแยกข้อมูลแบ็กเอนด์จํานวนมาก โดยเฉพาะอย่างยิ่งเมื่อ Schema มีความลื่นไหลและปรับแต่งได้) นอกจากนี้ยังไม่มีอะไรผิดปกติโดยเนื้อแท้กับการจัดเก็บข้อมูลในตารางแยกต่างหากที่ใช้คีย์ร่วมกัน อันที่จริงนี่เป็นหลักการพื้นฐานของการออกแบบฐานข้อมูลและการทําให้เป็นมาตรฐาน แต่มันบ่งบอกถึงวิธีที่ดีกว่าในการขยายความสัมพันธ์
พิจารณาตัวอย่างต่อไปนี้ของรายชื่อลูกค้า SharePoint
และรายการสถานที่ต่อไปนี้ที่อ้างถึง
เมื่อเชื่อมต่อกับรายการเป็นครั้งแรก ตําแหน่งจะแสดงเป็นเรกคอร์ด
ข้อมูลระดับบนสุดนี้ถูกรวบรวมผ่านการเรียก HTTP เดียวไปยัง SharePoint API (ละเว้นการเรียกข้อมูลเมตา) ซึ่งคุณสามารถดูได้ในดีบักเกอร์เว็บใดๆ
เมื่อคุณขยายเรกคอร์ด คุณจะเห็นเขตข้อมูลที่รวมกันจากตารางรอง
เมื่อขยายแถวที่เกี่ยวข้องจากตารางหนึ่งไปยังอีกตารางหนึ่งลักษณะการทํางานเริ่มต้นของ Power BI คือการสร้างการเรียกไปยังTable.ExpandTableColumn คุณสามารถดูสิ่งนี้ได้ในฟิลด์สูตรที่สร้างขึ้น น่าเสียดายที่วิธีนี้สร้างการเรียกแต่ละรายการไปยังตารางที่สองสําหรับทุกแถวในตารางแรก
ซึ่งจะเพิ่มจํานวนการเรียก HTTP หนึ่งครั้งสําหรับแต่ละแถวในรายการหลัก นี่อาจดูเหมือนไม่มากนักในตัวอย่างข้างต้นของห้าหรือหกแถว แต่ในระบบการผลิตที่รายการ SharePoint มีหลายแสนแถว อาจทําให้ประสบการณ์ลดลงอย่างมาก
เมื่อคิวรีถึงคอขวดนี้ การบรรเทาผลกระทบที่ดีที่สุดคือการหลีกเลี่ยงพฤติกรรมการโทรต่อแถวโดยใช้การรวมตารางแบบคลาสสิก สิ่งนี้ทําให้มั่นใจได้ว่าจะมีการเรียกเพียงครั้งเดียวเพื่อดึงตารางที่สอง และการขยายส่วนที่เหลือสามารถเกิดขึ้นในหน่วยความจําโดยใช้คีย์ทั่วไประหว่างสองตาราง ความแตกต่างของประสิทธิภาพอาจมีมากในบางกรณี
ขั้นแรก ให้เริ่มต้นด้วยตารางต้นฉบับ โดยจดบันทึกคอลัมน์ที่คุณต้องการขยาย และตรวจสอบให้แน่ใจว่าคุณมีรหัสของรายการเพื่อให้คุณสามารถจับคู่ได้ โดยทั่วไป คีย์นอกจะมีชื่อคล้ายกับชื่อที่แสดงของคอลัมน์ที่มี Id ต่อท้าย ในตัวอย่างนี้ เป็น LocationId
ประการที่สอง โหลดตารางรอง ตรวจสอบให้แน่ใจว่าได้รวม Id ซึ่งเป็นคีย์นอก คลิกขวาที่แผง คิวรี เพื่อสร้างคิวรีใหม่
สุดท้าย ให้รวมสองตารางโดยใช้ชื่อคอลัมน์ที่เกี่ยวข้องที่ตรงกัน โดยทั่วไป คุณสามารถค้นหาฟิลด์นี้ได้โดยการขยายคอลัมน์ก่อน จากนั้นจึงมองหาคอลัมน์ที่ตรงกันในการแสดงตัวอย่าง
ในตัวอย่างนี้ คุณจะเห็นว่า LocationId ในรายการหลักตรงกับ Id ในรายการรอง UI เปลี่ยนชื่อเป็น Location.Id เพื่อทําให้ชื่อคอลัมน์ไม่ซ้ํากัน ตอนนี้เรามาใช้ข้อมูลนี้เพื่อรวมตาราง
เมื่อคลิกขวาที่แผงคิวรีและเลือกคิวรี>ใหม่รวม>คิวรีผสานเป็นใหม่ คุณจะเห็น UI ที่เป็นมิตรเพื่อช่วยคุณรวมคิวรีทั้งสองนี้
เลือกแต่ละตารางจากดรอปดาวน์เพื่อดูตัวอย่างของคิวรี
เมื่อคุณเลือกทั้งสองตารางแล้ว ให้เลือกคอลัมน์ที่รวมตารางอย่างมีเหตุผล (ในตัวอย่างนี้ คือ LocationId จากตารางหลักและ Id จากตารางรอง) กล่องโต้ตอบจะแนะนําจํานวนแถวที่ตรงกันโดยใช้คีย์นอกนั้น คุณอาจต้องการใช้ชนิดการรวมเริ่มต้น (ด้านซ้ายด้านนอก) สําหรับข้อมูลประเภทนี้
เลือก ตกลง และคุณจะเห็นคิวรีใหม่ ซึ่งเป็นผลลัพธ์ของการรวม การขยายเรกคอร์ดในตอนนี้ไม่ได้หมายความถึงการเรียกเพิ่มเติมไปยังแบ็กเอนด์
การรีเฟรชข้อมูลนี้จะส่งผลให้มีการเรียก SharePoint เพียงสองครั้ง หนึ่งครั้งสําหรับรายการหลัก และอีกรายการหนึ่งสําหรับรายการรอง การรวมจะดําเนินการในหน่วยความจํา ซึ่งจะช่วยลดจํานวนการเรียกไปยัง SharePoint ได้อย่างมาก
วิธีการนี้สามารถใช้กับสองตารางใดก็ได้ใน PowerQuery ที่มีคีย์นอกที่ตรงกัน
Note
รายชื่อผู้ใช้และอนุกรมวิธานของ SharePoint ยังสามารถเข้าถึงได้ในรูปแบบตาราง และสามารถรวมเข้าด้วยกันได้ตามที่อธิบายไว้ข้างต้น โดยที่ผู้ใช้มีสิทธิ์เพียงพอในการเข้าถึงรายการเหล่านี้