ฟังก์ชัน UNION DAX กับ Power Query

ฟังก์ชัน UNION DAX กับ Power Query

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้เทคนิคการเพิ่มประสิทธิภาพ DAXโดยใช้ฟังก์ชัน UNION บทช่วยสอนนี้จะเปรียบเทียบประสิทธิภาพของฟังก์ชัน UNION กับPower Queryและเทคนิคอื่นๆ สำหรับการรวมตาราง

ฟังก์ชันจะรวมสองตารางเป็นตารางเดียวโดยการรวมแถวและลบแถวที่ซ้ำกัน

ตัวอย่างในบทช่วยสอนนี้คือตารางการขายที่แบ่งออกเป็นสามตารางสำหรับแต่ละปี (2007, 2008, 2009)

สารบัญ

ฟังก์ชัน UNION ใน DAX

เปิดDAX Studioและเปิดใช้ Server Timings and Query Plan

ฟังก์ชัน UNION DAX กับ Power Query

รหัส DAX ด้านล่างใช้เป็นตัวอย่าง:

ฟังก์ชัน UNION DAX กับ Power Query

หลังจากที่คุณรันโค้ดแล้ว ให้ไปที่แท็บServer Timings คุณจะเห็นว่าโค้ดใช้เวลาทั้งหมด 5.4 วินาทีในการดำเนินการ เวลาดำเนินการส่วน ใหญ่ใช้ในStorage Engine แต่ละข้อความค้นหาทั้งสามนี้มีการดำเนินการเหมือนกัน แต่ปีต่างกัน

ฟังก์ชัน UNION DAX กับ Power Query

หลังจากที่ Storage Engine ส่งคืนแบบสอบถามทั้งสามนี้แล้วFormula Engineจะดำเนินการ UNION ซึ่งสามารถดูได้ใน Logical Query Plan แผนแบบสอบถามยังดำเนินการเพื่อคำนวณยอดขายรวม

ฟังก์ชัน UNION DAX กับ Power Query

ในแผนการค้นหาจริง คุณสามารถดูแคชข้อมูลสามรายการที่มีการดำเนินการที่ดำเนินการในแต่ละปีในตารางการขาย

ฟังก์ชัน UNION DAX กับ Power Query

การเปรียบเทียบประสิทธิภาพของ DAX

เพื่อสร้างการเปรียบเทียบ มาสร้างการวัดสำหรับยอดขายรวมโดยใช้ตารางยอดขายเดิม

ฟังก์ชัน UNION DAX กับ Power Query

หากคุณรันโค้ดนี้และไปที่ แท็บ Server Timingsคุณจะเห็นว่าโค้ดนี้มีประสิทธิภาพมากกว่าฟังก์ชัน UNION อย่างเห็นได้ชัด

ฟังก์ชัน UNION ใช้ 97.9 กิโลไบต์ ในขณะที่การวัดใหม่ใช้เพียง 1 KB

ฟังก์ชัน UNION DAX กับ Power Query

เมื่อคุณใช้ UNION DAX Engine จะส่งคืนแคชข้อมูลจำนวนมากกลับไปยัง Formula Engine สิ่งนี้สร้างแรงกดดันอย่างมากต่อ RAM

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

ทางเลือกของฟังก์ชัน UNION DAX

แทนที่จะใช้ UNION คุณสามารถใช้ ฟังก์ชัน SUMX ได้สามฟังก์ชันสำหรับตัวอย่างนี้ นั่นคือหนึ่งฟังก์ชัน SUMX ในแต่ละปี

ฟังก์ชัน UNION DAX กับ Power Query

เมื่อคุณรันโค้ดนี้และไปที่แท็บ Server Timings คุณจะเห็นว่าเวลาดำเนินการนั้นลดลงอย่างมาก มันเปลี่ยนจาก 5,400 มิลลิวินาทีเป็น 33 มิลลิวินาทีในขณะที่ยังคงดำเนินการค้นหาที่แตกต่างกันสามรายการ

ฟังก์ชัน UNION DAX กับ Power Query

อีกวิธีหนึ่งคือการผนวกตารางตัวแบบข้อมูลใน Power Query หรือในแหล่งข้อมูลเอง

แต่ตัวเลือกที่ดีที่สุดคือการสร้างตารางจากการคำนวณที่จะทำการรวมตารางทั้งสามนั้นเข้าด้วยกัน แต่ตัวเลือกนี้มีข้อดีและข้อเสีย

การใช้ตารางจากการคำนวณช่วยให้คุณประหยัดเวลาในการประมวลผลโดยรวม ซึ่งตรงข้ามกับการดำเนินการผนวกใน Power Query อย่างไรก็ตาม สิ่งนี้จะทำให้ขนาดฐานข้อมูลใน VertiPaq เพิ่มขึ้น

เมื่อคุณใช้ตารางจากการคำนวณ คุณกำลังสร้างตารางใหม่ที่รวมสามตารางเข้าด้วยกัน แต่ตารางแยกทั้งสามนี้จะยังคงอยู่ในฐานข้อมูลต่อไป

ฟังก์ชัน UNION DAX กับ Power Query

ในตัวอย่างนี้ ตารางสามตารางใช้พื้นที่ทั้งหมด 25 MB หากคุณสร้างตารางจากการคำนวณ ตารางนั้นจะกิน RAM อีก 25 MB

สำหรับกรณีที่ละเอียดอ่อนเช่นนี้ คุณต้องตัดสินใจอย่างรอบรู้เกี่ยวกับแนวทางการดำเนินการที่ดีที่สุด

บทสรุป

ฟังก์ชัน UNION ใน DAX จะรวมสองตารางเป็นหนึ่งเดียว ทำให้วิเคราะห์ข้อมูลได้ง่ายขึ้น ทำงานโดยรับสองตารางเป็นอินพุตและส่งกลับตารางใหม่ที่มีแถวทั้งหมดจากตารางอินพุตทั้งสอง อย่างไรก็ตาม ฟังก์ชันนี้มีข้อจำกัดในตัวเอง

ฟังก์ชัน UNION อาจทำงานช้ากว่าวิธีอื่นๆ ในการรวมข้อมูล โดยเฉพาะอย่างยิ่งหากตารางอินพุตมีขนาดใหญ่ นอกจากนี้ยังสามารถใช้พื้นที่ในการจัดเก็บมากกว่าทางเลือกอื่นๆ

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

สิ่งที่ดีที่สุด


ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

วิธีบันทึกและโหลดไฟล์ RDS ใน R

วิธีบันทึกและโหลดไฟล์ RDS ใน R

คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ

บทนำในการกรองบริบทใน LuckyTemplates

บทนำในการกรองบริบทใน LuckyTemplates

ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร

วิเคราะห์การเปลี่ยนแปลงอัตรากำไรล่วงเวลา – การวิเคราะห์ด้วย LuckyTemplates และ DAX

วิเคราะห์การเปลี่ยนแปลงอัตรากำไรล่วงเวลา – การวิเคราะห์ด้วย LuckyTemplates และ DAX

เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates

แนวคิด Materialization สำหรับแคชข้อมูลใน DAX Studio

แนวคิด Materialization สำหรับแคชข้อมูลใน DAX Studio

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

การรายงานทางธุรกิจโดยใช้ LuckyTemplates

การรายงานทางธุรกิจโดยใช้ LuckyTemplates

หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้