แก้ไขปัญหาการรีเฟรชแบบเพิ่มหน่วยและข้อมูลในเวลาจริง
มีสองขั้นตอนเมื่อใช้การรีเฟรชแบบเพิ่มหน่วยและโซลูชันข้อมูลแบบเรียลไทม์ ครั้งแรกคือการกําหนดค่าพารามิเตอร์ การกรอง และการกําหนดนโยบายใน Power BI Desktop และลําดับที่สองเป็นการดําเนินการรีเฟรชแบบจําลองความหมายเริ่มต้นและการรีเฟรชในภายหลังในบริการ บทความนี้อธิบายถึงการแก้ไขปัญหาต่าง ๆ สําหรับแต่ละระยะเหล่านี้
การแบ่งพาร์ติชันตารางใน บริการของ Power BI สิ่งสําคัญคือต้องจําไว้ว่าตารางที่รีเฟรชแบบเพิ่มหน่วยที่ได้รับข้อมูลแบบเรียลไทม์ด้วย DirectQuery กําลังทํางานในโหมดไฮบริดซึ่งหมายความว่าตารางทํางานทั้งในโหมดนําเข้าและโหมด DirectQuery ตารางใดก็ตามที่มีความสัมพันธ์กับตารางแบบไฮบริดที่รีเฟรชแบบเพิ่มหน่วยต้องใช้โหมดคู่เพื่อให้สามารถใช้ในโหมดนําเข้าและโหมด DirectQuery ได้โดยไม่มีบทลงโทษด้านประสิทธิภาพ นอกจากนี้ วิชวลรายงานอาจแคชผลลัพธ์เพื่อหลีกเลี่ยงการส่งคิวรีกลับไปยังแหล่งข้อมูล ซึ่งจะป้องกันไม่ให้ตารางรับการอัปเดตข้อมูลล่าสุดในเวลาจริง ส่วนการแก้ไขปัญหาขั้นสุดท้ายครอบคลุมปัญหาโหมดไฮบริดเหล่านี้
ก่อนการแก้ไขปัญหาการรีเฟรชแบบเพิ่มหน่วยและข้อมูลแบบเรียลไทม์ โปรดแน่ใจว่าได้ตรวจทาน การรีเฟรชแบบเพิ่มหน่วยสําหรับแบบจําลองและข้อมูล แบบเรียลไทม์และข้อมูลทีละขั้นตอนใน กําหนดค่าการรีเฟรชแบบเพิ่มหน่วย และข้อมูลในเวลาจริง
ปัญหาส่วนใหญ่ที่เกิดขึ้นเมื่อกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยและข้อมูลแบบเรียลไทม์จะต้องดําเนินการกับ Query Folding ตามที่อธิบายไว้ใน การรีเฟรชแบบเพิ่มหน่วย สําหรับภาพรวมแบบจําลอง - แหล่งข้อมูลที่สนับสนุน แหล่งข้อมูลของคุณต้องสนับสนุน Query Folding
ในตัวแก้ไข Power Query หลังจากเลือกนําไปใช้การโหลดข้อมูลจะใช้เวลาและทรัพยากรคอมพิวเตอร์มากเกินไป มีหลายสาเหตุที่เป็นไปได้
ปัญหานี้อาจเกิดจากชนิดข้อมูลที่ไม่ตรงกัน ซึ่งเป็น Date/Time
ชนิดข้อมูลที่จําเป็นสําหรับ RangeStart
พารามิเตอร์ และ RangeEnd
แต่คอลัมน์วันที่ของตารางที่ใช้ตัวกรองไม่ใช่ Date/Time
ชนิดข้อมูล หรือในทางกลับกัน ทั้งชนิดข้อมูลพารามิเตอร์และคอลัมน์ข้อมูลที่กรองแล้วต้องเป็น Date/Time
ชนิดข้อมูลและรูปแบบต้องเหมือนกัน ถ้าไม่ใช่ จะไม่สามารถพับคิวรีได้
ตรวจสอบคอลัมน์วันที่/เวลาสําหรับตารางการรีเฟรชแบบเพิ่มหน่วยเป็น Date/Time
ชนิดข้อมูล ถ้าตารางของคุณไม่มีคอลัมน์ของ Date/Time
ชนิดข้อมูล แต่ใช้ชนิดข้อมูลจํานวนเต็มแทน คุณสามารถสร้างฟังก์ชันที่แปลงค่าวันที่/เวลาใน RangeStart
พารามิเตอร์ และ RangeEnd
เพื่อให้ตรงกับคีย์ตัวแทนจํานวนเต็มของตารางแหล่งข้อมูลได้ เมื่อต้องการเรียนรู้เพิ่มเติม ดูกําหนดค่าการรีเฟรชแบบเพิ่มหน่วย - แปลงวันที่เวลาเป็นจํานวนเต็ม
ตามที่อธิบายไว้ใน การรีเฟรชแบบเพิ่มหน่วยและข้อมูลแบบเรียลไทม์สําหรับแบบจําลอง - ข้อกําหนดการรีเฟรชแบบเพิ่มหน่วยได้รับการออกแบบมาสําหรับแหล่งข้อมูลที่สนับสนุนการพับคิวรี ตรวจสอบให้แน่ใจว่ามีการพับคิวรีแหล่งข้อมูลใน Power BI Desktop ก่อนที่จะเผยแพร่ไปยังบริการ ซึ่งปัญหาการพับคิวรีสามารถเกิดขึ้นได้อย่างมาก วิธีการนี้มีความสําคัญโดยเฉพาะอย่างยิ่งเมื่อรวมข้อมูลแบบเรียลไทม์ในนโยบายการรีเฟรชแบบเพิ่มหน่วย เนื่องจากพาร์ติชัน DirectQuery แบบเรียลไทม์ต้องการการพับคิวรี
ในกรณีส่วนใหญ่ คําเตือนจะแสดงในกล่องโต้ตอบนโยบายการรีเฟรชแบบเพิ่มหน่วยที่ระบุว่าคิวรีที่จะดําเนินการกับแหล่งข้อมูลไม่สนับสนุนการพับคิวรีหรือไม่ อย่างไรก็ตาม ในบางกรณีอาจจําเป็นเพื่อให้แน่ใจว่าสามารถทําการพับคิวรีได้ ถ้าเป็นไปได้ ให้ตรวจสอบคิวรีที่ถูกส่งผ่านไปยังแหล่งข้อมูลโดยใช้เครื่องมือ เช่น SQL Profiler คิวรีที่มีตัวกรองที่ RangeStart
ยึดตาม และ RangeEnd
ต้องดําเนินการในคิวรีเดียว
คุณยังสามารถระบุช่วงเวลาวันที่/เวลาสั้น ๆ ใน RangeStart
พารามิเตอร์ และ RangeEnd
ที่มีแถวไม่เกินสองถึงสามพันแถว ถ้าการโหลดของข้อมูลที่ถูกกรองจากแหล่งข้อมูลไปยังแบบจําลองใช้เวลานาน และการประมวลผลมาก อาจหมายความว่าไม่มีการพับคิวรี
ถ้าคุณตัดสินใจว่าไม่มีการพับคิวรี ให้ดู คําแนะนํา Query Folding ใน Power BI Desktop และ Power Query query folding สําหรับความช่วยเหลือเกี่ยวกับการระบุสิ่งที่อาจขัดขวางมิให้มีการพับคิวรีและวิธีการ หรือถ้าแหล่งข้อมูลสามารถรองรับการพับคิวรีได้
การแก้ไขปัญหาการรีเฟรชแบบเพิ่มหน่วยในบริการแตกต่างกันโดยขึ้นอยู่กับประเภทของความจุที่แบบจําลองของคุณได้รับการเผยแพร่ แบบจําลองเชิงความหมายบนความจุแบบพรีเมียมสนับสนุนการใช้เครื่องมือ เช่น SQL Server Management Studio (SSMS) เพื่อดูและเลือกรีเฟรชพาร์ติชันแต่ละรายการ ในทางกลับกัน แบบจําลอง Power BI Pro ไม่ได้ให้การเข้าถึงเครื่องมือผ่านตําแหน่งข้อมูล XMLA ดังนั้นการแก้ไขปัญหาการรีเฟรชแบบเพิ่มหน่วยอาจจําเป็นต้องมีการทดลองใช้และข้อผิดพลาดมากขึ้นเล็กน้อย
การรีเฟรชตามกําหนดการสําหรับแบบจําลอง Power BI Pro บนความจุที่ใช้ร่วมกันมีขีดจํากัดเวลาสองชั่วโมง ขีดจํากัดเวลานี้จะเพิ่มขึ้นเป็นห้าชั่วโมงสําหรับแบบจําลองในความจุแบบพรีเมียม ระบบแหล่งข้อมูลอาจกําหนดการจํากัดขนาดคิวรีหรือการหมดเวลาของคิวรี
แม้ว่าปัญหาเกี่ยวกับ Query Folding มักจะสามารถกําหนดได้ใน Power BI Desktop ก่อนเผยแพร่ไปยังบริการ อาจเป็นไปได้ว่าไม่มีการพับคิวรีการรีเฟรชแบบจําลอง ซึ่งนําไปสู่เวลาการรีเฟรชที่มากเกินไปและการใช้ทรัพยากรกลไกจัดการผสมเข้าด้วยกันของคิวรี สถานการณ์นี้เกิดขึ้นเนื่องจากคิวรีถูกสร้างขึ้นสําหรับทุกพาร์ติชันในแบบจําลอง ถ้าไม่มีการพับคิวรี และข้อมูลจะไม่ถูกกรองที่แหล่งข้อมูล กลไกจะพยายามกรองข้อมูล
ใช้เครื่องมือการติดตามที่แหล่งข้อมูลเพื่อกําหนดคิวรีที่จะส่งผ่านสําหรับแต่ละพาร์ติชันเป็นคิวรีเดียวที่มีตัวกรองที่ยึดตามพารามิเตอร์ RangeStart และ RangeEnd ถ้าไม่มี ให้ตรวจสอบการพับคิวรีที่เกิดขึ้นในแบบจําลอง Power BI Desktop เมื่อโหลดข้อมูลจํานวนเล็กน้อยที่กรองแล้วลงในแบบจําลอง หากไม่มีการแก้ไขในแบบจําลองก่อนดําเนินการอัปเดตเมตาดาต้าไปยังแบบจําลองเท่านั้น (โดยใช้ตําแหน่งข้อมูล XMLA) หรือหากแบบจําลอง Power BI Pro บนความจุที่ใช้ร่วมกันลบแบบจําลองที่ไม่สมบูรณ์ในบริการเผยแพร่ใหม่และลองการดําเนินการรีเฟรชเริ่มต้นอีกครั้ง
ถ้าคุณตัดสินใจว่าไม่มีการพับคิวรี โปรดดู คําแนะนํา Query Folding ใน Power BI Desktop และ Power Query Query Folding สําหรับความช่วยเหลือเกี่ยวกับการระบุสิ่งที่อาจขัดขวางมิให้มีการพับคิวรี
ในหลายกรณี การหมดเวลาเกิดขึ้นจากจํานวนข้อมูลที่ต้องคิวรี และโหลดลงในพาร์ติชันแบบจําลองเกินขีดจํากัดเวลาที่กําหนดโดยความจุ ลดขนาดหรือความซับซ้อนของแบบจําลองของคุณ หรือพิจารณาแบ่งแบบจําลองเป็นขนาดที่เล็กลง
สําหรับแบบจําลองที่เผยแพร่ไปยังความจุแบบพรีเมียม หากแบบจําลองขยายเกินกว่า 1 GB หรือมากกว่า คุณสามารถปรับปรุงประสิทธิภาพการดําเนินการรีเฟรชและตรวจสอบให้แน่ใจว่าแบบจําลองไม่จํากัดขนาดสูงสุดโดยการเปิดใช้งานรูปแบบ พื้นที่จัดเก็บแบบจําลองขนาดใหญ่ก่อน ดําเนินการรีเฟรชครั้งแรกในบริการ หากต้องการเรียนรู้เพิ่มเติม โปรดดู แบบจําลองขนาดใหญ่ใน Power BI Premium
สําหรับแบบจําลองที่เผยแพร่ไปยังความจุแบบพรีเมียม คุณสามารถบูทสเตรปการดําเนินการรีเฟรชเริ่มต้นได้ การบูทสเตรปช่วยให้บริการสามารถสร้างออบเจ็กต์ตารางและพาร์ติชันสําหรับแบบจําลอง แต่ไม่โหลดและประมวลผลข้อมูลในอดีตลงในพาร์ติชันใดๆ เมื่อต้องการเรียนรู้เพิ่มเติม ดู การรีเฟรชแบบเพิ่มหน่วยขั้นสูง - ป้องกันการหมดเวลาในการรีเฟรชแบบเต็มเริ่มต้น
คิวรีอาจถูกจํากัดตามขีดจํากัดเวลาเริ่มต้นสําหรับแหล่งข้อมูล
แหล่งข้อมูลจํานวนมากอนุญาตให้แทนที่ขีดจํากัดเวลาในนิพจน์คิวรี หากต้องการเรียนรู้เพิ่มเติม โปรดดู การรีเฟรชแบบเพิ่มหน่วยสําหรับแบบจําลอง - ขีดจํากัดเวลา
ด้วยการดําเนินการรีเฟรช เฉพาะข้อมูลที่มีการเปลี่ยนแปลงในแหล่งข้อมูลเท่านั้นที่จะถูกรีเฟรชในแบบจําลอง เนื่องจากข้อมูลถูกหารด้วยวันที่ ขอแนะนําให้วันที่โพสต์ (ธุรกรรม) ไม่เปลี่ยนแปลง
ถ้ามีการเปลี่ยนแปลงวันที่โดยไม่ได้ตั้งใจ จากนั้นสองปัญหาสามารถเกิดขึ้นได้: ผู้ใช้สังเกตเห็นว่าบางผลรวมมีการเปลี่ยนแปลงในข้อมูลในอดีต (ซึ่งไม่ควรเกิดขึ้น) หรือในระหว่างการรีเฟรชข้อผิดพลาดจะถูกส่งกลับโดยระบุว่าค่าที่ไม่ซ้ํากันไม่ได้เป็นค่าเฉพาะ
สําหรับอย่างหลัง สถานการณ์นี้อาจเกิดขึ้นได้เมื่อตารางที่มีการกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยใน 1:N
ความสัมพันธ์กับตารางอื่นเป็น 1
อีกด้านหนึ่ง และควรมีค่าที่ไม่ซ้ํากัน เมื่อข้อมูลมีการเปลี่ยนแปลงสําหรับ ID เฉพาะ ID นั้นจะปรากฏในพาร์ติชันอื่นและกลไกจัดการตรวจพบค่าไม่ซ้ํากัน
ในกรณีที่ธุรกิจจําเป็นต้องเปลี่ยนแปลงข้อมูลที่ผ่านมาบางส่วนจากวันที่ โซลูชันที่เป็นไปได้คือการใช้ SSMS เพื่อรีเฟรชพาร์ติชันทั้งหมดจากจุดที่การเปลี่ยนแปลงอยู่จนถึงพาร์ติชันการรีเฟรชปัจจุบัน ดังนั้นจึงทําให้ 1
ด้านของความสัมพันธ์ไม่ซ้ํากัน
บางแหล่งข้อมูล เช่น Azure Data Explorer, Log Analytics และ Application Insights มีขีดจํากัด 64 เมกะไบต์ (บีบอัด) บนข้อมูลที่สามารถส่งกลับสําหรับคิวรีภายนอก Azure Data Explorer อาจส่งกลับข้อผิดพลาดที่ชัดเจน แต่สําหรับผู้อื่น เช่น Log Analytics และ Application Insights ข้อมูลที่ส่งกลับจะถูกตัดทอน
ระบุระยะเวลาการรีเฟรชและร้านค้าที่มีขนาดเล็กลงในนโยบาย ตัวอย่างเช่น ถ้าคุณระบุระยะเวลาการรีเฟรชของหนึ่งปี และระบบจะส่งกลับข้อผิดพลาดของคิวรีหรือข้อมูลที่ส่งกลับถูกตัดทอน โปรดลองระยะเวลาการรีเฟรช 12 เดือน คุณต้องการตรวจสอบให้แน่ใจว่าคิวรีสําหรับพาร์ติชันรีเฟรชปัจจุบันหรือพาร์ติชันในอดีตใด ๆ ตามช่วงเวลาการรีเฟรชและร้านค้าไม่ส่งกลับมากกว่า 64 เมกะไบต์ข้อมูล
ตัวกรองบนคอลัมน์วันที่จะถูกใช้เพื่อพาร์ติชันข้อมูลเป็นช่วงระยะเวลาในบริการของ Power BI แบบไดนามิก การรีเฟรชแบบเพิ่มหน่วยไม่ได้ออกแบบมาเพื่อสนับสนุนกรณีที่มีการอัปเดตคอลัมน์วันที่ถูกกรองในระบบต้นทาง การอัปเดตจะถูกแปลเป็นการแทรกและการลบ ไม่ใช่การอัปเดตจริง ถ้าการลบเกิดขึ้นในช่วงอดีตและไม่ใช่ช่วงเพิ่มหน่วย การลบนั้นจะไม่ถูกเลือก ซึ่งอาจทําให้เกิดความล้มเหลวในการรีเฟรชข้อมูลเนื่องจากข้อขัดแย้งของคีย์พาร์ติชัน
เมื่อ Power BI ใช้นโยบายการรีเฟรชแบบเพิ่มหน่วยกับข้อมูลแบบเรียลไทม์ จะเปลี่ยนตารางที่รีเฟรชแบบเพิ่มหน่วยเป็นตารางแบบไฮบริดที่ทํางานทั้งในโหมดนําเข้าและโหมด DirectQuery โปรดสังเกตพาร์ติชัน DirectQuery ที่ส่วนท้ายของรายการพาร์ติชันต่อไปนี้ของตารางตัวอย่าง การปรากฏของพาร์ติชัน DirectQuery มีผลกระทบสําหรับตารางที่เกี่ยวข้องและวิชวลรายงานที่คิวรีตารางนี้
ตารางแบบไฮบริดที่ทํางานทั้งในโหมดนําเข้าและโหมด DirectQuery จําเป็นต้องมีตารางใด ๆ ที่เกี่ยวข้องในการใช้งานในโหมดคู่เพื่อให้สามารถแคชหรือไม่แคชก็ได้ ขึ้นอยู่กับบริบทของคิวรีที่ส่งไปยังแบบจําลอง Power BI โหมดคู่ช่วยให้ Power BI สามารถลดจํานวนความสัมพันธ์ที่จํากัดในแบบจําลองและสร้างคิวรีแหล่งข้อมูลที่มีประสิทธิภาพเพื่อให้แน่ใจว่ามีประสิทธิภาพการทํางานที่ดี ไม่สามารถผลักความสัมพันธ์แบบจํากัดไปยังแหล่งข้อมูลที่จําเป็นต้องใช้ Power BI เพื่อรับข้อมูลเพิ่มเติมมากกว่าที่จําเป็น เนื่องจากตารางคู่สามารถทําหน้าที่เป็นตาราง DirectQuery หรือนําเข้าได้ สถานการณ์นี้จึงหลีกเลี่ยงได้
เมื่อกําหนดค่านโยบายการรีเฟรชแบบเพิ่มหน่วย Power BI Desktop จะแจ้งเตือนคุณให้สลับตารางใด ๆ ที่เกี่ยวข้องไปยังโหมดคู่เมื่อคุณเลือก รับข้อมูลล่าสุดแบบเรียลไทม์ด้วย DirectQuery (Premium เท่านั้น) นอกจากนี้ ตรวจสอบให้แน่ใจว่าคุณตรวจทานความสัมพันธ์ของตารางที่มีอยู่ทั้งหมดในมุมมองแบบจําลอง
ตารางที่กําลังทํางานในโหมด DirectQuery จะสลับไปยังโหมดคู่ได้อย่างง่ายดาย ในคุณสมบัติตาราง ภายใต้ ขั้นสูง เลือก คู่ จากรายการ โหมดที่เก็บข้อมูล อย่างไรก็ตาม ตารางที่กําลังทํางานในโหมดนําเข้าจําเป็นต้องทํางานด้วยตนเอง ตารางคู่มีข้อจํากัดเช่นเดียวกับตาราง DirectQuery ดังนั้น Power BI Desktop จึงไม่สามารถแปลงตารางนําเข้าได้เนื่องจากอาจขึ้นอยู่กับฟังก์ชันการทํางานอื่น ๆ ที่ไม่มีในโหมดคู่ คุณต้องสร้างตารางเหล่านี้ใหม่ด้วยตนเองในโหมด DirectQuery จากนั้นแปลงเป็นโหมดคู่ เมื่อต้องการเรียนรู้เพิ่มเติม ดูจัดการโหมดที่เก็บข้อมูลใน Power BI Desktop
ตามค่าเริ่มต้น Power BI จะแคชผลลัพธ์คิวรี เพื่อให้สามารถประมวลผลคิวรีของวิชวลรายงานได้อย่างรวดเร็วแม้ว่าจะอิงตาม DirectQuery ก็ตาม การหลีกเลี่ยงการคิวรีแหล่งข้อมูลที่ไม่จําเป็นช่วยปรับปรุงประสิทธิภาพการทํางานและลดการโหลดแหล่งข้อมูล แต่ยังอาจหมายความว่าการเปลี่ยนแปลงข้อมูลล่าสุดที่แหล่งข้อมูลนั้นไม่ได้รวมอยู่ในผลลัพธ์
หากต้องการดึงข้อมูลการเปลี่ยนแปลงล่าสุดจากแหล่งที่มา ให้กําหนดค่าการรีเฟรชหน้าอัตโนมัติสําหรับรายงานของคุณในบริการของ Power BI การรีเฟรชหน้าอัตโนมัติสามารถทําได้ในช่วงเวลาคงที่ เช่น ห้าวินาทีหรือสิบนาที เมื่อถึงช่วงเวลาที่กําหนด ภาพทั้งหมดในหน้าดังกล่าวจะส่งคิวรีอัปเดตไปยังแหล่งข้อมูลและอัปเดตข้อมูล อีกวิธีหนึ่งคือ คุณสามารถรีเฟรชวิชวลบนหน้าตามการตรวจหาการเปลี่ยนแปลงในข้อมูล วิธีการนี้จําเป็นต้องมีหน่วยวัดการตรวจหาการเปลี่ยนแปลงที่ Power BI ใช้ในการสํารวจแหล่งข้อมูลสําหรับการเปลี่ยนแปลง รองรับการตรวจหาการเปลี่ยนแปลงเฉพาะในพื้นที่ทํางานที่เป็นส่วนหนึ่งของความจุแบบพรีเมียมเท่านั้น เมื่อต้องการเรียนรู้เพิ่มเติม ดูรีเฟรชหน้าอัตโนมัติใน Power BI