ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
เมื่อคุณ ปรับโมเดลข้อมูลและ DAX ของคุณสำหรับ LuckyTemplates ให้เหมาะสม คุณควรจำไว้ว่ามีกลไกสองตัวที่ทำงานอยู่เบื้องหลัง — กลไกจัดการสูตรและกลไกการจัดเก็บ
เอ็นจิ้นทั้งสองนี้ทำงานร่วมกันเพื่อส่งคืนผลลัพธ์ที่จำเป็นกลับไปยังผู้ใช้ พวกเขาให้ผลลัพธ์ที่ตั้งไว้ในรูปแบบของตารางหรือค่ามาตราส่วน
สารบัญ
บทบาทของเครื่องยนต์สูตร
ในบทความนี้ เราจะมุ่งเน้นไปที่เครื่องยนต์สูตร
กลไกจัดการสูตรเป็นเครื่องมือระดับบนสุดที่จัดการสถาปัตยกรรมทั้งหมดของคิวรี
ไม่ว่าคุณจะทำอะไรในขณะที่ดำเนินการค้นหาหรือในขณะที่สร้างคอลัมน์จากการคำนวณหรือตารางจากการคำนวณ กลไกจัดการสูตรจะทำงาน
กลไกจัดการสูตรเข้าใจข้อความค้นหาที่ได้รับไม่เพียงแต่ใน DAX เท่านั้น แต่ยังรวมถึงใน MDX ด้วย ตัวอย่างเช่น เมื่อคุณใช้ Excel คุณจะสร้างแบบจำลอง Pivot ตามตาราง Pivot และตาราง Pivot จะใช้ภาษา MDX
นี่คือที่มาของโปรแกรมสูตร เนื่องจากเข้าใจทั้ง DAX และ MDX คุณจึงสามารถใช้โมเดล LuckyTemplates อื่นได้ ข้อความค้นหาที่ส่งจากโมเดลข้อมูลนี้จะใช้ DAX ในขณะที่ข้อความค้นหาที่มาจากโมเดล Pivot จะใช้ MDX
เครื่องยนต์ Formula ทำงานอย่างไร
การทำความเข้าใจการสืบค้นที่มาจากแหล่ง MDX หรือแหล่ง DAX เป็นเพียงปัจจัยหนึ่งในประสิทธิภาพของกลไกจัดการสูตร นอกจากนี้ยังต้องผ่านขั้นตอนอื่นๆ เพื่อช่วยคุณดำเนินการกับคำค้นหาของคุณ
ขั้นแรก ต้องสร้างแผนการสืบค้นที่เครื่องมือจัดเก็บข้อมูลเข้าใจ ในฐานะที่เป็นเอ็นจิ้นระดับล่าง เอ็นจินการจัดเก็บไม่ทราบว่าตาราง Pivot ภายใน Excel หรือวิชวลภายใน LuckyTemplates ดำเนินการคิวรีหรือไม่
ในการสร้างแผนคิวรีกลไกจัดการสูตรจะสร้างแผนคิวรีเชิงตรรกะก่อน แล้วจึงสร้างแผนคิวรีจริง ทั้งแผนแบบสอบถามเชิงตรรกะและเชิงกายภาพควรมีลักษณะเหมือนกัน
หลังจากเสร็จสิ้นแผนคิวรีจริง ผู้ใช้หรือเครื่องมือไคลเอ็นต์จะได้รับชุดผลลัพธ์ จากนั้นเครื่องมือไคลเอนต์จะกำหนดวิธีการใช้ผลลัพธ์หรือชุดข้อมูลเพื่อแสดงผลสุดท้ายแก่ผู้ใช้
ข้อจำกัดหลักของ Formula Engine
กลไกจัดการสูตรมีบทบาทอย่างมากเมื่อคุณปรับ DAX สำหรับ LuckyTemplates ให้เหมาะสมโดยใช้ DAX Studio อย่างไรก็ตาม มันก็มาพร้อมกับข้อจำกัดบางอย่างเช่นกัน
ประการแรกกลไกจัดการสูตรจะใช้คอร์เดียวเสมอเพื่อจัดการการทำงานทั้งหมดของคุณ โดยไม่คำนึงว่าระบบของคุณจะมีคอร์ CPU กี่คอร์
เมื่อฉันเปิดตัวจัดการงาน คุณจะเห็นว่า CPU ของฉันมีหกคอร์
แม้จะมีข้อเท็จจริงนี้ เอ็นจิ้นสูตรจะยังคงเลือกหนึ่งในหกคอร์ที่จะทำงานด้วย ในขณะที่ปล่อยให้เอนจินสตอเรจใช้ส่วนที่เหลือ
ประการที่สอง กลไก จัดการสูตรไม่สามารถเข้าถึงฐานข้อมูลของคุณได้โดยตรง เนื่องจากข้อจำกัดนี้ คุณจะต้องจัดเก็บข้อมูลภายในหน่วยความจำภายใน หรือคุณสามารถจัดเก็บไว้ในฐานข้อมูลและสร้าง DirectQuery บนฐานข้อมูลนั้น
นอกจากนี้ยังอาศัยกลไกการจัดเก็บข้อมูลเพื่อรับข้อมูลในรูปแบบของแคชข้อมูล จากนั้นกลไกจัดการสูตรจะวนซ้ำแคชข้อมูลนั้นเพื่อดำเนินการต่อก่อนที่จะสามารถให้ผลลัพธ์แก่ผู้ใช้ปลายทางได้
Formula Engine ช่วยเพิ่มประสิทธิภาพ DAX สำหรับ LuckyTemplates อย่างไร
บางครั้ง เมื่อคุณพยายามปรับโมเดลข้อมูลของคุณหรือ DAX สำหรับ LuckyTemplates ให้เหมาะสม คุณจะสังเกตเห็นว่ากลไกการจัดเก็บข้อมูลทำงานช้าลงเมื่อดำเนินการค้นหา ในกรณีนี้ คุณสามารถใช้กลไกจัดการสูตรในการคำนวณทั้งหมดเพื่อเพิ่มประสิทธิภาพกระบวนการ
โปรดทราบว่าหากกลไกจัดการสูตรสร้างตารางทั้งหมดด้วยตัวเอง ชุดผลลัพธ์ที่สร้างขึ้นในกระบวนการจะไม่ถูกนำมาใช้ในการสืบค้นที่ตามมา ซึ่งจะสร้างขึ้นโดยเครื่องมือไคลเอ็นต์ หากชุดผลลัพธ์นั้นคล้ายกับการสืบค้นที่ดำเนินการก่อนหน้านี้ แต่ในกรณีที่กลไกการจัดเก็บข้อมูลมีแคชข้อมูล แคชข้อมูลนั้นสามารถเก็บไว้ในหน่วยความจำเพื่อให้สามารถเพิ่มประสิทธิภาพคำขอที่มาจากเครื่องมือไคลเอนต์ได้
วิธีการทำงาน?
สมมติว่าเราเขียนคิวรีเพื่อดำเนินการโดยเอ็นจิ้นการจัดเก็บข้อมูลอย่างสมบูรณ์ แต่มีบางแง่มุมที่ต้องคำนวณโดยเอ็นจิ้นสูตร ในกรณีนี้ เอ็นจิ้นการจัดเก็บข้อมูลจะส่งแคชข้อมูลกลับไปยังเอนจิ้นสูตร และแคชข้อมูลนั้น (ในกรณีที่เป็นแคชธรรมดา) สามารถเก็บไว้ในหน่วยความจำได้
ตอนนี้ หากข้อความค้นหาที่คล้ายกันปรากฏขึ้นในอีกไม่กี่วินาทีต่อมา แทนที่จะสแกนแบบจำลองข้อมูลทั้งหมดอีกครั้ง กลไกจัดการสูตรหรือเครื่องมือจัดเก็บจะใช้แคชข้อมูลเฉพาะนั้น เพื่อลดเวลาในการค้นหาและประสบการณ์ของผู้ใช้ ดีขึ้น
การลดภาระของเครื่องยนต์ Formula
อีกครั้ง กลไกจัดการสูตรเข้าใจรหัส DAX และ MDX
ดังนั้น หากคุณใช้ , และงานอื่นๆ กลไกจัดการสูตรจะรู้จักฟังก์ชันทั้งหมดที่คุณกำลังใช้ภายในภาษา DAX และจะสามารถแก้ปัญหาทั้งหมดได้ด้วยตัวเอง อย่างไรก็ตาม สิ่งนี้อาจส่งผลกระทบต่อประสิทธิภาพของคิวรี โดยเฉพาะอย่างยิ่งเนื่องจากกลไกจัดการสูตรพยายามทำทุกอย่างโดยใช้คอร์เดียว
นี่คือเหตุผลที่เราต้องคำนึงถึงการลดภาระของเครื่องยนต์สูตรและเพิ่มภาระของกลไกการจัดเก็บ
ตัวอย่างที่ดีของความแตกต่างของการคำนวณภายในกลไก จัดการสูตรกับกลไกการจัดเก็บคือการใช้ CROSSJOIN กับ
เมื่อคุณใช้ CROSSJOIN ข้อมูลจำนวนจำกัดเท่านั้นที่จะถูกจัดการผ่านเครื่องมือจัดเก็บข้อมูล สำหรับการคำนวณส่วนที่เหลือทั้งหมดจะดำเนินการโดยเครื่องมือสูตร ในการเปรียบเทียบ การใช้ SUMMARIZE หมายถึงการดำเนินการค้นหาทั้งหมดภายในกลไกการจัดเก็บข้อมูล
แน่นอนว่าสิ่งนี้จะขึ้นอยู่กับวิธีการใช้ SUMMARIZE ด้วย
หากใช้ SUMMARIZE เป็นฟังก์ชันที่อยู่ด้านในสุด ฟังก์ชันนั้นจะถูกผลักลงไปที่เครื่องมือจัดเก็บข้อมูลอย่างแน่นอน แต่ในบางกรณี SUMMARIZE จะใช้ร่วมกับโค้ดอื่นที่ต้องใช้กลไกจัดการสูตรในการทำงาน ในกรณีนี้ กลไกจัดการสูตรจะเข้ามาทำงานแทน
การรู้ว่าภาระงานไปอยู่ที่ใดสามารถช่วยเพิ่มประสิทธิภาพการสืบค้นของคุณ โดยเฉพาะอย่างยิ่งเมื่อคุณคำนึงถึงความจุและข้อจำกัดสำหรับเครื่องมือที่คุณมี
เครื่องมือที่สามารถช่วยเพิ่มประสิทธิภาพ DAX สำหรับ LuckyTemplates
การเพิ่มประสิทธิภาพ DAX จะง่ายขึ้นหากคุณเพิ่มเครื่องมือที่ทำให้เป็นไปได้ DAX Studioเป็นหนึ่งในเครื่องมือเหล่านั้น
ลองมาดูตัวอย่างก่อนหน้านี้ที่กลไกจัดการสูตรรับภาระทั้งหมดของการคำนวณให้เสร็จสมบูรณ์ เมื่อใช้ฟังก์ชัน SUMMARIZE DAX Studio สามารถช่วยคุณเขียนโค้ดของคุณใหม่ในลักษณะที่ส่ง SUMMARIZE เข้าไปในเครื่องมือจัดเก็บข้อมูล ช่วยเพิ่มภาระให้กับเครื่องมือสูตร สิ่งนี้อาจช่วยปรับปรุงประสิทธิภาพของโมเดลข้อมูลและการสืบค้นของคุณ
แน่นอนว่าสิ่งนี้ควรทำงานได้อย่างราบรื่นสำหรับข้อความค้นหาง่ายๆ นอกจากนี้ยังมีสถานการณ์ที่ซับซ้อนมากขึ้น
ตัวอย่างเช่น คุณสามารถสร้างโมเดลแบบผสมที่ใช้กลไกการจัดเก็บข้อมูลสองตัวภายในโมเดลข้อมูลได้ อันหนึ่งอาจเป็นของ Vertipaq ส่วนอีกอันอาจเป็นของ DirectQuery ในกรณีนี้ ฐานข้อมูลของคุณต้องได้รับการปรับให้เหมาะสมในแบบที่จะสร้างแบบสอบถามที่สร้างขึ้นสำหรับโมเดลข้อมูลเชิงสัมพันธ์นั้น
สมมติว่าคุณมีสองตารางภายในแบบจำลองวันที่ของคุณ — ตารางผลิตภัณฑ์และตารางการขาย ตารางผลิตภัณฑ์อยู่ในที่เก็บข้อมูล Vertipaq ในขณะที่ตาราง Sales ซึ่งเป็นตารางที่ใหญ่กว่าจะถูกเก็บไว้ภายในฐานข้อมูลโดยตรงผ่านการเชื่อมต่อ DirectQuery
สมมติว่าคุณกำลังลากคอลัมน์แบรนด์ลงในเมทริกซ์ รวมทั้งการวัดยอดขายทั้งหมดที่มาจากตารางการขายภายในการเชื่อมต่อ DirectQuery
ในกรณีนี้เครื่องยนต์สูตรจะต้องดำเนินการระหว่างเครื่องยนต์ทั้งสอง
ขั้นแรก จะดึงคอลัมน์ Product Key และ Brand จากตาราง Products จากนั้นจะดึงคอลัมน์ราคาสุทธิ ปริมาณ และคีย์ผลิตภัณฑ์จากตารางการขาย เมื่อมีแคชข้อมูลจากทั้ง Vertipaq และ DirectQuery แล้ว กลไกจัดการสูตรจะต้องใช้แคชข้อมูลและพยายามรวมเข้าด้วยกันเพื่อให้ผลลัพธ์แก่ผู้ใช้ปลายทาง
เทคนิคการเพิ่มประสิทธิภาพการสืบค้น DAX และบทเรียน
ประสิทธิภาพการสืบค้นข้อมูลและการตั้งค่า DAX Studio การ
เพิ่มประสิทธิภาพ DAX: ตำแหน่งที่จะค้นหากับดัก DAX ที่ซ่อนอยู่
บทสรุป
กลไกจัดการสูตรมีบทบาทอย่างมากเมื่อคุณทำงานกับ DAX อย่างไรก็ตาม สิ่งสำคัญคือต้องเข้าใจวิธีการทำงานก่อนที่จะลงมือ การเรียนรู้วิธีการทำให้กลไกจัดการสูตรและกลไกการจัดเก็บทำงานร่วมกันอย่างราบรื่นเป็นกุญแจสำคัญ โดยเฉพาะอย่างยิ่งหากคุณต้องการให้การสืบค้น DAX ของคุณทำงานได้ดีขึ้น
ในฐานะที่เป็นกลไกระดับบนสุดภายในสถาปัตยกรรมบริการวิเคราะห์ กลไกจัดการสูตรจึงต้องดำเนินการหลายอย่าง แต่เมื่อคุณเข้าใจรายละเอียดปลีกย่อยของกลไกการจัดเก็บข้อมูลแล้ว คุณจะสามารถทราบได้ว่าการดำเนินการใดที่จะพุชเข้าไปในกลไกการจัดเก็บข้อมูล และการดำเนินการใดที่จะปล่อยให้อยู่ในกลไกจัดการสูตร
เราจะเจาะลึกลงไปในเครื่องมือจัดเก็บข้อมูลในบทช่วยสอนแยกต่างหาก
สิ่งที่ดีที่สุด
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้