การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

ในบทช่วยสอนนี้ เราจะกล่าวถึงความแตกต่างเกี่ยวกับวิธีการทำงานของการทำดัชนีข้อมูลในฐานข้อมูลเชิงสัมพันธ์กับใน Vertipaq

ฐานข้อมูลเชิงสัมพันธ์เก็บข้อมูลเป็นแถวต่อแถว ในทางกลับกัน Vertipaq ทำทีละคอลัมน์

มาดูกันว่าวิธีจัดเก็บและจัดทำดัชนีข้อมูลทั้ง 2 วิธีนี้จะส่งผลต่อกระบวนการพัฒนารายงานของคุณอย่างไร โดยเฉพาะอย่างยิ่งเมื่อเรียกใช้การค้นหาของคุณ

สารบัญ

การทำดัชนีข้อมูลต่อแถว

การจัดเก็บข้อมูลทีละแถวเป็นวิธีดั้งเดิมในการจัดเก็บข้อมูล อย่างไรก็ตาม กระบวนการนี้ใช้เวลามากขึ้น ซึ่งจะส่งผลต่อประสิทธิภาพการค้นหาของคุณ

สมมติว่าเรามีตารางที่มียี่ห้อ สี เพศ ปริมาณ และราคาสุทธิ

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

ถ้าเราเก็บทุกอย่างในตารางนี้ไว้ในฐานข้อมูล มันจะเก็บข้อมูลเป็นแถวต่อแถว นั่นเป็นเหตุผลที่โครงสร้างการจัดเก็บข้อมูลแบบดั้งเดิมเรียกว่าเป็นที่เก็บแถว

ขั้นแรก ในบรรทัดเดียวกัน มันจะเก็บส่วนหัวของคอลัมน์ที่พบในแถวแรก — ยี่ห้อ สี เพศ ปริมาณ และราคาสุทธิ จากนั้นจะไปยังบรรทัดถัดไปเพื่อจัดเก็บรายการแรกภายใต้แต่ละคอลัมน์ — A. Datum, Azure, ช่องว่าง, 1 และ 103.2 สิ่งนี้ดำเนินต่อไปทีละแถว

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

แล้วเราจะคำนวณผลของปริมาณโดยใช้วิธีการจัดทำดัชนีข้อมูลนี้ได้ อย่างไร

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

เมื่อได้จัดสรรปริมาณทั้งหมดจากแต่ละแถวแล้ว นั่นคือครั้งเดียวที่การคำนวณเสร็จสมบูรณ์

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

การทำดัชนีข้อมูลต่อคอลัมน์

เพื่อหลีกเลี่ยงกระบวนการที่ใช้เวลานาน คุณมีตัวเลือกในการจัดเก็บข้อมูลแบบคอลัมน์ต่อคอลัมน์ผ่าน Vertipaq เมื่อคุณเลือกโหมดการนำเข้า

เมื่อคุณใช้ที่เก็บคอลัมน์แทนการเก็บแถว แบรนด์ สี เพศ ปริมาณ และราคาสุทธิ แต่ละรายการจะถูกจัดเก็บไว้ในโครงสร้างข้อมูลที่แตกต่างกัน

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

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

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

ด้วยเหตุนี้ แบบสอบถามจะดำเนินการได้เร็วกว่าเมื่อเทียบกับการดำเนินการจากซ้ายไปขวา

การเปรียบเทียบเวลาดำเนินการในแบบสอบถามอย่างง่าย

เพื่อให้เห็นความแตกต่างอย่างมากระหว่างที่เก็บแถวและที่เก็บคอลัมน์ ลองทดสอบการสืบค้นทั้งใน SQL และ Vertipaq เวลาดำเนินการควรบอกเราว่ากระบวนการหนึ่งเร็วแค่ไหนเมื่อเทียบกับอีกกระบวนการหนึ่ง

เริ่มจากแบบสอบถามอย่างง่ายใน SQL เราจะคำนวณผลรวมของคอลัมน์ปริมาณในตารางยอดขาย

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

อย่างที่คุณเห็น เวลาดำเนินการทั้งหมดคือ 2.2 วินาที

ตอนนี้ ไปที่ DAX Studio และใช้ ฟังก์ชัน EVALUATEเพื่อดำเนินการค้นหาเดียวกัน เราจำเป็นต้องเปิดการกำหนดเวลาของเซิร์ฟเวอร์และรอให้การติดตามเสร็จสิ้น

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

เราต้องตรวจสอบให้แน่ใจว่าได้เลือกตัวเลือก "ล้างแคชแล้วเรียกใช้" เมื่อเราเรียกใช้แบบสอบถาม

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

เมื่อดำเนินการค้นหาแล้ว คุณจะเห็นว่ามันใช้เวลาเพียง 3 มิลลิวินาทีในการดำเนินการค้นหาแบบเดียวกับที่เราทำใน SQL ก่อนหน้านี้

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

ชุดผลลัพธ์ควรตรงกันสำหรับทั้ง SQL และ DAX Studio หากเราวางเคียงข้างกัน คุณจะเห็นว่าเรากำลังส่งคืนค่าเดียวกัน

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

คุณสามารถลองเรียกใช้แบบสอบถามอีกสองสามครั้งเพื่อดูว่าเวลาในการดำเนินการนั้นสอดคล้องกันเพียงใด

การเปรียบเทียบเวลาดำเนินการในแบบสอบถามที่ซับซ้อนมากขึ้น

คราวนี้ เรามาเปรียบเทียบเวลาการดำเนินการเมื่อเราเรียกใช้การค้นหาที่ซับซ้อนมากขึ้น

สมมติว่าเราต้องการระบุผลรวมของยอดขายสำหรับแต่ละแบรนด์ ในการทำเช่นนี้ เราสามารถใช้กับของแบรนด์สินค้าแต่ละรายการได้ ในบริบทที่ต่ำ เราจะสร้างตารางใหม่ที่ชื่อว่า Total Quantity ซึ่งเราจะผลรวมของปริมาณการขาย

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

หากเราเรียกใช้โค้ดนี้ คุณจะเห็นว่าเวลาดำเนินการทั้งหมดคือ 7 มิลลิวินาที

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

ในเบื้องหลัง โค้ดนี้กำลังรันการสืบค้นสองรายการ อันแรกนำคอลัมน์แบรนด์จากตารางผลิตภัณฑ์ จากนั้นเรียกใช้การรวมภายนอก บนคอลัมน์คีย์ผลิตภัณฑ์จากทั้งคอลัมน์การขายและคอลัมน์ผลิตภัณฑ์

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

ข้อความค้นหาที่สองเพียงแค่เรียกคอลัมน์แบรนด์จากตารางผลิตภัณฑ์

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

ถ้าฉันไปที่หน้าจอผลลัพธ์ คุณจะเห็นว่ามีการแบ่งการวัดปริมาณรวมตามแต่ละแบรนด์

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

ตอนนี้ไปที่เซิร์ฟเวอร์ SQL และเขียนแบบสอบถามเดียวกัน

เราจะพุชตาราง DaxStudio Sales ไปยังบรรทัดถัดไป โดยอ้างอิงตาราง Sales AS S จากนั้น เราจะดำเนินการ LEFT JOINในตารางผลิตภัณฑ์ DaxStudio ที่อ้างอิง AS P ด้วยรหัสผลิตภัณฑ์ S.Product เท่ากับ ป.รหัสผลิตภัณฑ์. เราจะใช้ P.Brand กับผลรวมของปริมาณและปริมาณรวมในคำสั่งSELECT สุดท้าย เราจะใช้สำหรับ P.brand

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

เมื่อเรารันโค้ดนี้ เราจะได้ตารางที่ประกอบด้วยปริมาณรวมที่แยกตามแต่ละแบรนด์ ซึ่งเหมือนกับที่เราได้รับใน Vertipaq ก่อนหน้านี้

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์

สำหรับเวลาดำเนินการทั้งหมดนั้นยังคงช้ากว่ามากที่ 2.5 วินาที

การทำดัชนีข้อมูลใน Vertipaq: ที่เก็บแถวกับที่เก็บคอลัมน์


DAX สำหรับ LuckyTemplates: การเพิ่มประสิทธิภาพโดยใช้ Formula Engines ใน DAX Studio
เทคนิคการเพิ่มประสิทธิภาพการสืบค้นข้อมูล DAX และ
ประสิทธิภาพการสืบค้นบทเรียนและการตั้งค่า DAX Studio

บทสรุป

เห็นได้ชัดว่าการจัดเก็บคอลัมน์ผ่าน Vertipaq นั้นรวดเร็วเพียงใดเมื่อเปรียบเทียบกับที่เก็บแถวในฐานข้อมูล SQL สิ่งนี้แสดงให้เห็นถึงความสำคัญของการทำความรู้จักวิธีการทำงานของการจัดทำดัชนีข้อมูลผ่านแพลตฟอร์มต่างๆ

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


ตนเองคืออะไรใน 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 คืออะไร ทั้งหมดที่คุณต้องการรู้