แชร์ผ่าน


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

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

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

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

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

สำคัญ

ในบางครั้งที่บทความนี้อ้างอิงถึง Power BI Premium หรือการสมัครใช้งานความจุ (P SKU) โปรดทราบว่าในขณะนี้ Microsoft กําลังรวมตัวเลือกการซื้อและหยุดใช้งาน Power BI Premium ต่อความจุ SKU ลูกค้าใหม่และลูกค้าที่มีอยู่ควรพิจารณาซื้อการสมัครใช้งานความจุ Fabric (F SKU) แทน

สําหรับข้อมูลเพิ่มเติม โปรดดู ที่ การอัปเดตที่สําคัญเกี่ยวกับการให้สิทธิ์การใช้งาน Power BI Premium และ คําถามที่ถามบ่อยของ Power BI Premium

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ภาพหน้าจอของ Power Query ที่แสดงตัวเลือกเปิดใช้งานโหลด

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

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

สําหรับข้อมูลเพิ่มเติม โปรดดูคําแนะนําวันที่/เวลาอัตโนมัติใน Power BI Desktop

ใช้โหมดที่เก็บข้อมูล DirectQuery

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

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

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

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