ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ในบทช่วยสอนนี้ เราจะกล่าวถึงความแตกต่างเกี่ยวกับวิธีการทำงานของการทำดัชนีข้อมูลในฐานข้อมูลเชิงสัมพันธ์กับใน Vertipaq
ฐานข้อมูลเชิงสัมพันธ์เก็บข้อมูลเป็นแถวต่อแถว ในทางกลับกัน Vertipaq ทำทีละคอลัมน์
มาดูกันว่าวิธีจัดเก็บและจัดทำดัชนีข้อมูลทั้ง 2 วิธีนี้จะส่งผลต่อกระบวนการพัฒนารายงานของคุณอย่างไร โดยเฉพาะอย่างยิ่งเมื่อเรียกใช้การค้นหาของคุณ
สารบัญ
การทำดัชนีข้อมูลต่อแถว
การจัดเก็บข้อมูลทีละแถวเป็นวิธีดั้งเดิมในการจัดเก็บข้อมูล อย่างไรก็ตาม กระบวนการนี้ใช้เวลามากขึ้น ซึ่งจะส่งผลต่อประสิทธิภาพการค้นหาของคุณ
สมมติว่าเรามีตารางที่มียี่ห้อ สี เพศ ปริมาณ และราคาสุทธิ
ถ้าเราเก็บทุกอย่างในตารางนี้ไว้ในฐานข้อมูล มันจะเก็บข้อมูลเป็นแถวต่อแถว นั่นเป็นเหตุผลที่โครงสร้างการจัดเก็บข้อมูลแบบดั้งเดิมเรียกว่าเป็นที่เก็บแถว
ขั้นแรก ในบรรทัดเดียวกัน มันจะเก็บส่วนหัวของคอลัมน์ที่พบในแถวแรก — ยี่ห้อ สี เพศ ปริมาณ และราคาสุทธิ จากนั้นจะไปยังบรรทัดถัดไปเพื่อจัดเก็บรายการแรกภายใต้แต่ละคอลัมน์ — A. Datum, Azure, ช่องว่าง, 1 และ 103.2 สิ่งนี้ดำเนินต่อไปทีละแถว
แล้วเราจะคำนวณผลของปริมาณโดยใช้วิธีการจัดทำดัชนีข้อมูลนี้ได้ อย่างไร
อันดับแรก จะเริ่มต้นด้วยแถวแรกซึ่งมีส่วนหัวของคอลัมน์ จากนั้นจะข้ามไปยังบรรทัดถัดไปและข้ามข้อมูลส่วนอื่นๆ จนกว่าจะถึงจำนวนแรกที่เห็น ซึ่งก็คือ 1 จากนั้นจะกระโดดจากบรรทัดหนึ่งไปยังอีกบรรทัดหนึ่ง โดยเรียกใช้ข้อมูลทั้งหมดที่แต่ละแถวมีและรวบรวมข้อมูลทั้งหมด พบปริมาณ
เมื่อได้จัดสรรปริมาณทั้งหมดจากแต่ละแถวแล้ว นั่นคือครั้งเดียวที่การคำนวณเสร็จสมบูรณ์
คุณอาจจินตนาการได้ว่ากระบวนการนี้น่าเบื่อเพียงใด หากคุณกำลังเตรียมรายงาน LuckyTemplates ที่ใช้การเชื่อมต่อ DirectQuery กับแหล่งข้อมูล SQL ในกรณีนี้ บริการวิเคราะห์จะแปลงโค้ด DAX เป็นภาษา SQL จากนั้นจึงเริ่มดำเนินการตามโครงสร้างข้อมูลทีละแถว
การทำดัชนีข้อมูลต่อคอลัมน์
เพื่อหลีกเลี่ยงกระบวนการที่ใช้เวลานาน คุณมีตัวเลือกในการจัดเก็บข้อมูลแบบคอลัมน์ต่อคอลัมน์ผ่าน Vertipaq เมื่อคุณเลือกโหมดการนำเข้า
เมื่อคุณใช้ที่เก็บคอลัมน์แทนการเก็บแถว แบรนด์ สี เพศ ปริมาณ และราคาสุทธิ แต่ละรายการจะถูกจัดเก็บไว้ในโครงสร้างข้อมูลที่แตกต่างกัน
สมมติว่าเราต้องการรับผลรวมของค่าในคอลัมน์ปริมาณ ไม่จำเป็นต้องผ่านยี่ห้อ สี และข้อมูลอื่นๆ นอกคอลัมน์ปริมาณ ในการสแกนครั้งเดียว เครื่องจะอ่านคอลัมน์ปริมาณทั้งหมดจากบนลงล่างและสรุปค่าทั้งหมด
ด้วยเหตุนี้ แบบสอบถามจะดำเนินการได้เร็วกว่าเมื่อเทียบกับการดำเนินการจากซ้ายไปขวา
การเปรียบเทียบเวลาดำเนินการในแบบสอบถามอย่างง่าย
เพื่อให้เห็นความแตกต่างอย่างมากระหว่างที่เก็บแถวและที่เก็บคอลัมน์ ลองทดสอบการสืบค้นทั้งใน SQL และ Vertipaq เวลาดำเนินการควรบอกเราว่ากระบวนการหนึ่งเร็วแค่ไหนเมื่อเทียบกับอีกกระบวนการหนึ่ง
เริ่มจากแบบสอบถามอย่างง่ายใน SQL เราจะคำนวณผลรวมของคอลัมน์ปริมาณในตารางยอดขาย
อย่างที่คุณเห็น เวลาดำเนินการทั้งหมดคือ 2.2 วินาที
ตอนนี้ ไปที่ DAX Studio และใช้ ฟังก์ชัน EVALUATEเพื่อดำเนินการค้นหาเดียวกัน เราจำเป็นต้องเปิดการกำหนดเวลาของเซิร์ฟเวอร์และรอให้การติดตามเสร็จสิ้น
เราต้องตรวจสอบให้แน่ใจว่าได้เลือกตัวเลือก "ล้างแคชแล้วเรียกใช้" เมื่อเราเรียกใช้แบบสอบถาม
เมื่อดำเนินการค้นหาแล้ว คุณจะเห็นว่ามันใช้เวลาเพียง 3 มิลลิวินาทีในการดำเนินการค้นหาแบบเดียวกับที่เราทำใน SQL ก่อนหน้านี้
ชุดผลลัพธ์ควรตรงกันสำหรับทั้ง SQL และ DAX Studio หากเราวางเคียงข้างกัน คุณจะเห็นว่าเรากำลังส่งคืนค่าเดียวกัน
คุณสามารถลองเรียกใช้แบบสอบถามอีกสองสามครั้งเพื่อดูว่าเวลาในการดำเนินการนั้นสอดคล้องกันเพียงใด
การเปรียบเทียบเวลาดำเนินการในแบบสอบถามที่ซับซ้อนมากขึ้น
คราวนี้ เรามาเปรียบเทียบเวลาการดำเนินการเมื่อเราเรียกใช้การค้นหาที่ซับซ้อนมากขึ้น
สมมติว่าเราต้องการระบุผลรวมของยอดขายสำหรับแต่ละแบรนด์ ในการทำเช่นนี้ เราสามารถใช้กับของแบรนด์สินค้าแต่ละรายการได้ ในบริบทที่ต่ำ เราจะสร้างตารางใหม่ที่ชื่อว่า Total Quantity ซึ่งเราจะผลรวมของปริมาณการขาย
หากเราเรียกใช้โค้ดนี้ คุณจะเห็นว่าเวลาดำเนินการทั้งหมดคือ 7 มิลลิวินาที
ในเบื้องหลัง โค้ดนี้กำลังรันการสืบค้นสองรายการ อันแรกนำคอลัมน์แบรนด์จากตารางผลิตภัณฑ์ จากนั้นเรียกใช้การรวมภายนอก บนคอลัมน์คีย์ผลิตภัณฑ์จากทั้งคอลัมน์การขายและคอลัมน์ผลิตภัณฑ์
ข้อความค้นหาที่สองเพียงแค่เรียกคอลัมน์แบรนด์จากตารางผลิตภัณฑ์
ถ้าฉันไปที่หน้าจอผลลัพธ์ คุณจะเห็นว่ามีการแบ่งการวัดปริมาณรวมตามแต่ละแบรนด์
ตอนนี้ไปที่เซิร์ฟเวอร์ SQL และเขียนแบบสอบถามเดียวกัน
เราจะพุชตาราง DaxStudio Sales ไปยังบรรทัดถัดไป โดยอ้างอิงตาราง Sales AS S จากนั้น เราจะดำเนินการ LEFT JOINในตารางผลิตภัณฑ์ DaxStudio ที่อ้างอิง AS P ด้วยรหัสผลิตภัณฑ์ S.Product เท่ากับ ป.รหัสผลิตภัณฑ์. เราจะใช้ P.Brand กับผลรวมของปริมาณและปริมาณรวมในคำสั่งSELECT สุดท้าย เราจะใช้สำหรับ P.brand
เมื่อเรารันโค้ดนี้ เราจะได้ตารางที่ประกอบด้วยปริมาณรวมที่แยกตามแต่ละแบรนด์ ซึ่งเหมือนกับที่เราได้รับใน Vertipaq ก่อนหน้านี้
สำหรับเวลาดำเนินการทั้งหมดนั้นยังคงช้ากว่ามากที่ 2.5 วินาที
DAX สำหรับ LuckyTemplates: การเพิ่มประสิทธิภาพโดยใช้ Formula Engines ใน DAX Studio
เทคนิคการเพิ่มประสิทธิภาพการสืบค้นข้อมูล DAX และ
ประสิทธิภาพการสืบค้นบทเรียนและการตั้งค่า DAX Studio
บทสรุป
เห็นได้ชัดว่าการจัดเก็บคอลัมน์ผ่าน Vertipaq นั้นรวดเร็วเพียงใดเมื่อเปรียบเทียบกับที่เก็บแถวในฐานข้อมูล SQL สิ่งนี้แสดงให้เห็นถึงความสำคัญของการทำความรู้จักวิธีการทำงานของการจัดทำดัชนีข้อมูลผ่านแพลตฟอร์มต่างๆ
ในตอนแรกอาจดูเหมือนเป็นการเสียสละเล็กน้อยหากคุณยังคงเลือกที่จะใช้เวลา 2.5 วินาทีที่ร้านค้าแถวเรียกใช้การค้นหาของคุณเมื่อเทียบกับ 7 มิลลิวินาที แต่เราทุกคนเรียกใช้ข้อความค้นหาหลายรายการเมื่อเราสร้างรายงาน และเวลาในการดำเนินการทั้งหมดนั้นจะเพิ่มขึ้น ส่งผลต่อประสิทธิภาพการทำงานและประสบการณ์ของผู้ใช้ในระยะยาว
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้