เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้เกี่ยวกับเทคนิคการบีบอัด LuckyTemplates ต่างๆ ในที่ช่วยเพิ่มประสิทธิภาพรายงานของคุณ

หลังจากโหลดข้อมูลทีละกลุ่มโดย Analysis Services ใน LuckyTemplates Power Pivot และSSASแล้ว เหตุการณ์สองเหตุการณ์จะเกิดขึ้น วิธีแรกคือพวกเขาพยายามใช้วิธีการเข้ารหัสต่างๆ เพื่อบีบอัดคอลัมน์เพื่อลดขนาด RAM โดยรวม ประการที่สองคือพวกเขาพยายามหาทุนจากลำดับการจัดเรียงที่ดีที่สุดซึ่งรวมค่าที่ซ้ำกัน วิธีนี้ยังเพิ่มการบีบอัดและลดแรงกดบนหน่วยความจำ

มีเทคนิคการบีบอัดต่างๆ ที่ใช้โดย Analysis Services บทช่วยสอนนี้ครอบคลุมสามวิธี โดยเฉพาะอย่างยิ่ง ได้แก่ การเข้ารหัสค่า การเข้ารหัสความยาวเรียกใช้ และการเข้ารหัสพจนานุกรม ในส่วนสุดท้ายของบทช่วยสอนนี้จะครอบคลุมถึงวิธีการเรียงลำดับการทำงานใน Analysis Services

สารบัญ

เทคนิคการบีบอัด LuckyTemplates #1: การเข้ารหัสค่า

อันแรกเรียกว่าการเข้ารหัสค่า

การเข้ารหัสค่าจะค้นหาความสัมพันธ์ทางคณิตศาสตร์ระหว่างแต่ละค่าในคอลัมน์เพื่อลดหน่วยความจำ นี่คือตัวอย่างใน Microsoft Excel:

คอลัมน์นี้ต้องการ 16,384 บิตเพื่อเก็บค่าต่างๆ

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

ในการคำนวณบิตที่ต้องการ ขั้นแรกให้ใช้ฟังก์ชัน MAX() ใน Excel เพื่อรับค่าสูงสุดในคอลัมน์ ในกรณีนี้คือ 9144 จากนั้นใช้ฟังก์ชัน POWER() เพื่อคำนวณบิตที่ต้องการ ใช้อาร์กิวเมนต์ POWER(2, X) โดยที่ X คือค่าบวกใดๆ ที่จะส่งคืนคำตอบที่มากกว่าค่า MAX ในกรณีนี้ X ยังแสดงถึงบิตที่ต้องการด้วย สำหรับตัวอย่างนี้ ค่าของ X คือ 14 ซึ่งได้ผลลัพธ์เป็น16,384 ดังนั้นคอลัมน์จึงต้องการพื้นที่เก็บข้อมูล 14 บิต

หากต้องการลดบิตที่ต้องการโดยใช้การเข้ารหัสค่า VertiPaq จะค้นหาค่า MIN ในคอลัมน์และลบออกจากแต่ละค่า ในกรณีนี้ ค่า MIN ในคอลัมน์คือ 9003 หากคุณลบค่านี้ออกจากคอลัมน์ ค่านี้จะส่งคืนค่าเหล่านี้:

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

เมื่อใช้ฟังก์ชันและอาร์กิวเมนต์เดียวกัน คุณจะเห็นว่าสำหรับคอลัมน์ใหม่ ค่า MAX คือ 141 และการใช้8เป็นค่าของ X จะได้ผลลัพธ์เป็น256 ดังนั้นคอลัมน์ใหม่ต้องการเพียง 8 บิต

คุณสามารถดูการบีบอัดที่สองเมื่อเทียบกับคอลัมน์แรก

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

อย่างไรก็ตาม การเข้ารหัสค่าจะทำงานเฉพาะในคอลัมน์ที่มีเลขจำนวนเต็มหรือค่าที่มีทศนิยมคงที่เท่านั้น

เทคนิคการบีบอัด LuckyTemplates #2: เรียกใช้การเข้ารหัสความยาว

วิธีการเข้ารหัสที่สองเรียกว่า Run Length Encoding

Run Length Encodingสร้างโครงสร้างข้อมูลที่ประกอบด้วยค่าที่แตกต่างกัน คอลัมน์ Start และคอลัมน์ Count

ลองมาเป็นตัวอย่าง:

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

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

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

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

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

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

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

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

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

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

เทคนิคการบีบอัด LuckyTemplates #3: การเข้ารหัสพจนานุกรม

วิธีการเข้ารหัสที่สามเรียกว่าการเข้ารหัสพจนานุกรม

การเข้ารหัสพจนานุกรมสร้างโครงสร้างคล้ายพจนานุกรมที่มีค่าเฉพาะของคอลัมน์ นอกจากนี้ยังกำหนดดัชนีให้กับค่าเฉพาะนั้น

จากตัวอย่างก่อนหน้านี้ มาดูกันว่าการเข้ารหัสพจนานุกรมทำงานอย่างไร ในกรณีนี้ ค่าสีแดง สีดำ และสีน้ำเงินจะได้รับดัชนีเป็น 0, 1 และ 2 ตามลำดับ

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

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

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

สิ่งนี้ยังช่วยลดการใช้ RAM เนื่องจากตัวเลขใช้พื้นที่น้อยกว่าค่าสตริง

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

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

ดังนั้นขึ้นอยู่กับประเภทข้อมูลที่คุณเลือก เมื่อใช้การเข้ารหัสพจนานุกรมในคอลัมน์ คุณสามารถใช้การเข้ารหัสความยาวการเรียกใช้ได้ในภายหลัง

ในกรณีนี้ Analysis Services จะสร้างโครงสร้างข้อมูลสองแบบ ขั้นแรกจะสร้างพจนานุกรม จากนั้นจึงใช้ Run Length Encoding เพื่อเพิ่มการบีบอัดคอลัมน์เพิ่มเติม

เรียงลำดับในบริการวิเคราะห์

สำหรับส่วนสุดท้ายของบทช่วยสอนนี้ เรามาคุยกันถึงวิธีการที่ Analysis Services ตัดสินใจเลือกวิธีการจัดเรียงข้อมูลที่เหมาะสมที่สุด

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

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

ตอนนี้เติมทั้งคอลัมน์ใน Excel ด้วยค่าเหล่านี้ ใช้อาร์กิวเมนต์นี้เพื่อสร้างคอลัมน์ที่มีค่าเหล่านี้แบบสุ่ม

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

ลากสูตรจนถึงแถวสุดท้าย คลิกตกลงหากหน้าต่างป๊อปอัปการทำงานขนาดใหญ่ ปรากฏขึ้น ตอนนี้จะมีลักษณะดังนี้:

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

ถัดไป คัดลอกทั้งคอลัมน์แล้ววางเป็นค่า

เทคนิคการบีบอัด LuckyTemplates ใน DAX Studio

ตอนนี้ ถ้าคุณไปที่ ตัวเลือก Fileในเอกสาร Excel แล้วคลิกInfo คุณจะ เห็นว่าคอลัมน์นั้นใช้พื้นที่14.1MB

หากต้องการลดปริมาณ RAM ที่ใช้ไป คุณสามารถจัดเรียงคอลัมน์จาก A ถึง Z หากคุณตรวจสอบขนาด อีกครั้ง คุณจะเห็นว่ามันลดลงเหลือ12.5 MB

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

บทสรุป

เมื่อข้อมูลของคุณได้รับการจัดเรียงในลักษณะที่เหมาะสมที่สุดแล้ว Analysis Services จะใช้เทคนิคการบีบอัดหนึ่งในสามแบบโดยขึ้นอยู่กับประเภทข้อมูล

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


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