ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ทั้งและเป็นเครื่องมือที่มีประสิทธิภาพในการจัดการและวิเคราะห์ข้อมูลในแบบสอบถาม DAX แต่มีความแตกต่างที่สำคัญบางประการซึ่งสำคัญที่ต้องทำความเข้าใจ
ในบล็อกนี้ เราจะพูดถึง ฟังก์ชัน CALCULATABLEและแผนการสืบค้นใน DAX studioและทำความเข้าใจว่าฟังก์ชันนี้แตกต่างจากฟังก์ชันFILTER อย่างไร ในตอนท้าย คุณจะเข้าใจวิธีการเลือกฟังก์ชันที่เหมาะสมสำหรับความต้องการในการวิเคราะห์ข้อมูลของคุณได้ดีขึ้น
เพื่อสาธิต เราจะใช้รหัส DAX ด้านล่าง
เมื่อคุณรันโค้ดนี้ คุณจะได้ตารางแสดงยี่ห้อและสี
ใน แท็ บQuery Plansคุณจะได้รับรหัสที่สอดคล้องกับ ตัวดำเนินการ CrossApplyในFormula Engine
ในเวลาเดียวกัน คุณจะเห็นว่าโค้ดดึงเฉพาะสีและแบรนด์ของผลิตภัณฑ์ในแท็บServer Timings เท่านั้น
สารบัญ
ผลลัพธ์ DAX Studio Server Timings สำหรับ CALCULATABLE
ตัวอย่างเช่น ลองกรองสีของผลิตภัณฑ์เพื่อแสดงเฉพาะสีแดงและ/หรือสีดำ
คุณสามารถทำได้โดยใช้ฟังก์ชัน FILTER เมื่อคุณรัน Server Timings จะแสดงว่าอาร์กิวเมนต์ FILTER ไม่ได้ใช้กับโค้ดxmSQL
แต่ถ้าคุณใช้ฟังก์ชัน CALCULATABLE ข้อความค้นหาในแท็บ Server Timings จะแสดงว่าผลลัพธ์ถูกกรองตามสีของผลิตภัณฑ์
แผนการสืบค้นที่สามารถคำนวณได้ใน DAX Studio
ลองดูที่ Query Plan สำหรับแต่ละฟังก์ชัน
ตารางคำนวณอยู่ในบรรทัดแรกของLogical Query Planเนื่องจากเป็นฟังก์ชันระดับบนสุดในโค้ด ดังนั้นจึงไม่ขึ้นอยู่กับข้อกำหนดใดๆ
เมื่อคุณอ่านแผนการสืบค้นของฟังก์ชัน CALCULATABLE คุณไม่ได้เริ่มต้นด้วยอาร์กิวเมนต์แรก คุณต้องเข้าใจบริบทตัวกรองที่ใช้ก่อน งั้นไปสาย 5 กัน
คุณจะเห็นว่า ตัวดำเนินการ VertiPaqต้องการคอลัมน์สีของผลิตภัณฑ์เนื่องจากตัวกรองที่ใช้ จากนั้นจะสแกนคอลัมน์นี้และใช้ ชุด ตัวกรอง Not IsEmptyเพื่อตรวจสอบสีของผลิตภัณฑ์เทียบกับแต่ละแถว
หลังจากเตรียมบริบทตัวกรองแล้ว อาร์กิวเมนต์ จะถูกดำเนินการ
เมื่อเข้าใจถึงปัญหาแล้ว หากคุณใช้ฟังก์ชัน FILTER คุณจะเห็นแผนการค้นหาที่แตกต่างกัน ดังนั้นอาร์กิวเมนต์ CROSSJOIN จะถูกดำเนินการก่อนที่จะระบุบริบทของตัวกรอง
ข้อเสียของแนวทางนี้คือไม่ส่งเงื่อนไขตัวกรองไปยัง Storage Engine คุณจะไม่สามารถใช้ ส่วนคำสั่ง WHEREภายใน xmSQL ซึ่งจะสร้างภาระหนักให้กับ Formula Engine
และเมื่อคุณทำงานกับหลายตาราง ชุดตัวกรองของฟังก์ชัน CROSSJOIN จะมีขนาดใหญ่มาก ซึ่งจะทำให้ประสิทธิภาพของโค้ด DAX ช้าลง ดังนั้น ในกรณีส่วนใหญ่ ขอแนะนำให้ใช้ฟังก์ชัน CLCULATETABLE
ดังนั้นแทนที่จะดำเนินการคำนวณทั้งหมดใน Formula Engine คุณสามารถแทรกเงื่อนไขตัวกรองภายในคลาส WHERE ของรหัส XMSQL
การเปลี่ยนบริบทสำหรับฟังก์ชัน DAX ที่คล้ายกัน
กำหนดเวลาเซิร์ฟเวอร์
แนวคิดนี้ใช้กับฟังก์ชัน CALCULATE ได้เช่นกัน ลองใช้โค้ด DAX ด้านล่างเป็นตัวอย่าง
การวัดจะมีฟังก์ชันคำนวณโดยอัตโนมัติรอบๆ
เมื่อคุณรันโค้ดนี้ คุณจะได้ตารางแสดงยอดขายรวมสำหรับแต่ละสี
ในแท็บ Server Timings คุณจะเห็นว่าโค้ดกำลังดำเนินการค้นหาสองรายการ แบบสอบถามแรกกำลังคำนวณผลรวมของยอดขายจากตารางการขายที่เกี่ยวข้องกับตารางผลิตภัณฑ์
ในทางกลับกัน คิวรีที่สองจะดึงสีของผลิตภัณฑ์อีกครั้งจากตารางผลิตภัณฑ์ ซึ่งสอดคล้องกับ ฟังก์ชัน ในรหัส DAX
Formula Engine วางแคชข้อมูลของสองแบบสอบถามเคียงข้างกัน เริ่มต้นด้วยการดึงค่าจากแคชข้อมูลที่สอง จากนั้นทำการค้นหาในแคชข้อมูลแรก
แผนการค้นหา
ในแท็บ แผนการสืบค้น แผนการสืบค้นเชิงตรรกะจะสแกนสีของผลิตภัณฑ์เนื่องจากอาร์กิวเมนต์
จากนั้น VertiPaq จะสรุปยอดขายรวมโดยขึ้นอยู่กับสีของผลิตภัณฑ์ ดำเนินการเปลี่ยนบริบทที่แปลงค่าสีของผลิตภัณฑ์เป็นบริบทตัวกรองที่เทียบเท่า
ตัวกรองที่สร้างขึ้นโดยการเปลี่ยนบริบทจะถูกแปลเป็น คุณสมบัติ DependOnColsใน Query Plan หลังจาก VertiPaq สแกนคอลัมน์ที่จำเป็นในการคำนวณยอดขายรวม มันจะคูณปริมาณการขายด้วยราคาสุทธิ
ยอดขายรวมจะถูกส่งกลับเป็นผลลัพธ์ในรูปแบบของประเภทข้อมูลสกุลเงิน และสุดท้าย ADDCOLUMNS ส่งคืนตารางที่มีสองคอลัมน์ที่มีสีและยอดขายรวม
บทสรุป
แผนคิวรีอาจมีผลกระทบอย่างมากต่อประสิทธิภาพของคิวรี เนื่องจากแผนคิวรีที่แตกต่างกันอาจมีระดับประสิทธิภาพต่างกัน
เมื่อใช้ฟังก์ชัน CALCULATABLE และ FILTER ในแบบสอบถาม DAX แผนการสืบค้นอาจแตกต่างกันไปขึ้นอยู่กับสถานการณ์เฉพาะและปัจจัยต่างๆ เช่น นิพจน์สูตรเฉพาะที่ใช้และความสามารถของเครื่องมือสืบค้นข้อมูล
โดยทั่วไป เป็นความคิดที่ดีที่จะทดสอบและเปรียบเทียบประสิทธิภาพของแผนการสืบค้นต่างๆ เพื่อกำหนดแนวทางที่มีประสิทธิภาพสูงสุดสำหรับสถานการณ์ที่กำหนด
สิ่งที่ดีที่สุด
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้