เทคนิคการลดข้อมูลสำหรับการสร้างแบบจำลองแบบการนำเข้า

บทความนี้มีเป้าหมายให้ตัวสร้างแบบจําลองข้อมูล Power BI Desktop พัฒนาแบบจําลองการนําเข้า ซึ่งอธิบายเทคนิคที่แตกต่างกันเพื่อช่วยลดข้อมูลที่โหลดลงในแบบจําลองการนําเข้า

แบบจําลองการนําเข้าจะถูกโหลดด้วยข้อมูลที่บีบอัดและปรับให้เหมาะสม จากนั้นจึงเก็บข้อมูลลงในดิสก์โดยกลไกที่จัดเก็บข้อมูล VertiPaq เมื่อมีการโหลดข้อมูลต้นฉบับลงในหน่วยความจํา อาจเป็นไปได้ที่จะเห็นการบีบอัด 10 เท่า ดังนั้นจึงเป็นเรื่องสมเหตุสมผลที่ว่าข้อมูลต้นฉบับ 10 GB สามารถบีบอัดได้ขนาดประมาณ 1 GB นอกจากนี้ เมื่อยังอยู่ในดิสก์ การลดลง 20% เพิ่มเติมสามารถดําเนินการได้

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

  • ขนาดของแบบจําลองขนาดใหญ่อาจไม่ได้รับการสนับสนุนโดยความจุของคุณ ความจุที่ใช้ร่วมกันสามารถโฮสต์แบบจําลองได้สูงสุดถึง 1 GB ในขณะที่ความจุแบบพรีเมียมสามารถโฮสต์แบบจําลองขนาดใหญ่ได้ทั้งนี้ขึ้นอยู่กับ SKU สําหรับข้อมูลเพิ่มเติม โปรดอ่านบทความ การสนับสนุนของ Power BI Premium สําหรับแบบจําลอง ความหมายขนาดใหญ่ (แบบจําลองความหมายก่อนหน้านี้เรียกว่า ชุดข้อมูล)
  • ขนาดแบบจําลองขนาดเล็กช่วยลดการช่วงการเปลี่ยนรูปสําหรับทรัพยากรความจุในหน่วยความจําเฉพาะ การดําเนินการนี้จะช่วยให้สามารถโหลดแบบจําลองที่พร้อมกันได้มากขึ้นสําหรับระยะเวลาที่ยาวขึ้น ซึ่งส่งผลให้อัตราการขับออกของข้อมูลลดลง
  • แบบจําลองขนาดเล็กทําให้เกิดการรีเฟรชข้อมูลได้เร็วขึ้น ซึ่งส่งผลให้มีการรายงานเวลาแฝงที่ต่ํากว่า ปริมาณการรีเฟรชแบบจําลองเชิงความหมายที่สูงขึ้น และแรงดันน้อยลงในระบบต้นทางและทรัพยากรความจุ
  • จํานวนแถวตารางที่มีขนาดเล็กกว่าอาจส่งผลให้มีการประเมินการคํานวณที่รวดเร็วกว่า ซึ่งสามารถส่งมอบประสิทธิภาพการทํางานของคิวรีโดยรวมได้ดียิ่งขึ้น

การลดข้อมูลที่แตกต่างกันที่ครอบคลุมในบทความนี้มีอยู่แปดเทคนิค เทคนิคเหล่านี้รวมถึง:

ลบคอลัมน์ที่ไม่จําเป็นออก

คอลัมน์ของตารางแบบจําลองมีวัตถุประสงค์หลักสองประการ:

  • การรายงาน เพื่อให้ได้การออกแบบรายงานที่เหมาะสมกับตัวกรอง กลุ่ม และสรุปข้อมูลแบบจําลอง
  • โครงสร้างแบบจําลอง โดยการสนับสนุนความสัมพันธ์ของแบบจําลอง การคํานวณแบบจําลอง บทบาทการรักษาความปลอดภัย และแม้แต่การจัดรูปแบบสีข้อมูล

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

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

ลบแถวที่ไม่จําเป็นออก

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

การกรองตามเอนทิตี เกี่ยวข้องกับการโหลดชุดย่อยของข้อมูลต้นทางลงในแบบจําลอง ตัวอย่างเช่น โหลดข้อเท็จจริงสําหรับภูมิภาคเดียวเท่านั้น แทนที่จะโหลดข้อมูลการขายสําหรับภูมิภาคการขายทั้งหมด วิธีการออกแบบนี้จะส่งผลให้มีแบบจําลองที่มีขนาดเล็กกว่า และยังสามารถกําจัดความจําเป็นในการกําหนดความปลอดภัยระดับแถว (แต่จะต้องให้สิทธิ์แบบจําลองความหมายเฉพาะในบริการของ Power BI และสร้างรายงาน "ซ้ํา" ที่เชื่อมต่อกับแต่ละแบบจําลองความหมาย) คุณสามารถใช้พารามิเตอร์ Power Query และไฟล์ Power BI Template เพื่อลดความซับซ้อนของการจัดการและการเผยแพร่ สําหรับข้อมูลเพิ่มเติม อ่านรายการเจาะลึกลงใน พารามิเตอร์คิวรีและบล็อกเทมเพลต Power BI

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

จัดกลุ่มตามและสรุป

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

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

ปรับชนิดข้อมูลคอลัมน์ให้เหมาะสม

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

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

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

การตั้งค่าสําหรับคอลัมน์แบบกําหนดเอง

กลไกที่จัดเก็บข้อมูล VertiPaq จัดเก็บคอลัมน์จากการคํานวณแบบจําลอง (ที่กําหนดใน DAX) เช่นเดียวกับคอลัมน์ที่มีแหล่งที่มาจาก Power Query ตามปกติ อย่างไรก็ตาม โครงสร้างข้อมูลจะถูกจัดเก็บแตกต่างกันเล็กน้อย และโดยทั่วไปแล้วจะบรรลุการบีบอัดที่มีประสิทธิภาพน้อยลง นอกจากนี้ยังถูกสร้างขึ้นเมื่อมีการโหลดตาราง Power Query ทั้งหมด ซึ่งอาจส่งผลให้เวลาในการรีเฟรชข้อมูลขยายเวลา ดังนั้นจึงมีประสิทธิภาพน้อยกว่าในการเพิ่มคอลัมน์ตารางเป็นคอลัมน์จากการคํานวณมากกว่าคอลัมน์จากการคํานวณ Power Query (ที่กําหนดไว้ใน M)

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

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

ปิดใช้งานการโหลดคิวรี Power Query

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

Screenshot of Power Query showing

ปิดใช้งานวันที่/เวลาอัตโนมัติ

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

สลับไปยังโหมดผสม

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

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

อย่างไรก็ตาม ยังมีการรักษาความปลอดภัยและผลกระทบต่อประสิทธิภาพการทํางานที่เกี่ยวข้องกับแบบจําลองแบบรวมจํานวนมาก สําหรับข้อมูลเพิ่มเติม อ่านบทความ ใช้แบบจําลองแบบรวมใน Power BI Desktop

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบแบบจําลองการนําเข้า Power BI ให้ดูบทความต่อไปนี้: