กําหนดค่าการรีเฟรชแบบเพิ่มหน่วยและข้อมูลในเวลาจริง
บทความนี้อธิบายวิธีการกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยและข้อมูลแบบเรียลไทม์สําหรับ แบบจําลองเชิงความหมาย หากต้องการเรียนรู้เกี่ยวกับการกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยสําหรับกระแสข้อมูล โปรดดู คุณลักษณะพรีเมียมของกระแสข้อมูล - การรีเฟรชแบบเพิ่มหน่วย
การกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยรวมถึงการสร้างพารามิเตอร์ RangeStart และ RangeEnd การใช้ตัวกรอง และการกําหนดนโยบายการรีเฟรชแบบเพิ่มหน่วย หลังจากเผยแพร่ไปยังบริการของ Power BI แล้ว คุณจะดําเนินการรีเฟรชเริ่มต้นบนแบบจําลอง การดําเนินการรีเฟรชเริ่มต้นและการรีเฟรชที่ตามมาจะใช้นโยบายการรีเฟรชแบบเพิ่มหน่วยที่คุณกําหนดไว้ ก่อนที่จะทําตามขั้นตอนเหล่านี้ ตรวจสอบให้แน่ใจว่าคุณเข้าใจฟังก์ชันการทํางานที่อธิบายไว้ใน การรีเฟรชแบบเพิ่มหน่วย และข้อมูลในเวลาจริงสําหรับแบบจําลองเชิงความหมายอย่างสมบูรณ์
สร้างพารามิเตอร์
ในงานนี้ คุณจะใช้ตัวแก้ไข Power Query เพื่อสร้างพารามิเตอร์ RangeStart และ RangeEnd ด้วยค่าเริ่มต้น ค่าเริ่มต้นจะใช้เฉพาะเมื่อกรองข้อมูลที่จะโหลดลงในแบบจําลองใน Power BI Desktop เท่านั้น ค่าที่คุณป้อนควรมีเพียงข้อมูลล่าสุดจํานวนเล็กน้อยจากแหล่งข้อมูลของคุณ เมื่อเผยแพร่ไปยังบริการ ค่าช่วงเวลาเหล่านี้จะถูกแทนที่ด้วยนโยบายการรีเฟรชแบบเพิ่มหน่วย นั่นคือนโยบายสร้างหน้าต่างของข้อมูลขาเข้าซึ่งกันและกัน
ใน Power BI Desktop ให้เลือก แปลงข้อมูล บนริบบอน หน้าแรก เพื่อเปิดตัวแก้ไข Power Query
เลือก เมนูดรอปดาวน์ จัดการพารามิเตอร์ จากนั้นเลือก พารามิเตอร์ใหม่
ใน เขตข้อมูล ชื่อ ให้ใส่ ช่วงเริ่มต้น (ตรงตามตัวพิมพ์ใหญ่-เล็ก) ใน เขตข้อมูล ชนิด ให้เลือก วันที่/เวลา จากรายการดรอปดาวน์ ใน เขตข้อมูล ค่า ปัจจุบัน ให้ใส่ค่าวันที่และเวลาเริ่มต้น
เลือก ใหม่ เพื่อสร้างพารามิเตอร์ที่สองที่ชื่อว่า RangeEnd ในฟิลด์ ชนิด ให้เลือก วันที่/เวลา จากนั้นในเขตข้อมูล ค่าปัจจุบัน ให้ป้อนค่าวันที่และเวลาสิ้นสุด เลือก ตกลง
หลังจากที่คุณได้กําหนดพารามิเตอร์ RangeStart และ RangeEnd แล้ว คุณจะต้องกรองข้อมูลที่จะโหลดลงในแบบจําลองที่ยึดตามพารามิเตอร์เหล่านั้น
กรองข้อมูล
หมายเหตุ
ก่อนที่จะดําเนินต่อในงานนี้ ให้ตรวจสอบว่าตารางต้นทางของคุณมีคอลัมน์วันที่ของชนิดข้อมูลวันที่/เวลาหรือไม่ ถ้าไม่มีคอลัมน์ วันที่/เวลา แต่มีคอลัมน์วันที่ของคีย์ตัวแทนจํานวนเต็มในรูปแบบของ yyyymmdd
ให้ทําตามขั้นตอนใน แปลงวันที่เวลา เป็นจํานวนเต็ม ในภายหลังในบทความนี้ เพื่อสร้างฟังก์ชันที่แปลงค่าวันที่/เวลาในพารามิเตอร์เพื่อให้ตรงกับคีย์ตัวแทนจํานวนเต็มของตารางต้นทาง
ตอนนี้คุณจะใช้ตัวกรองโดยยึดตาม เงื่อนไข ในพารามิเตอร์ RangeStart และ RangeEnd
ในตัวแก้ไข Power Query ให้เลือกคอลัมน์วันที่ที่คุณต้องการกรอง จากนั้นเลือกลูกศร>ดรอปดาวน์ ตัวกรองวันที่ ตัวกรอง>แบบกําหนดเอง
ใน แถวตัวกรอง เพื่อระบุเงื่อนไขแรก เลือกอยู่หลังจากหรือเท่ากับ จากนั้นเลือก พารามิเตอร์ จากนั้นเลือก ช่วงเริ่มต้น
หากต้องการระบุเงื่อนไขที่สอง ถ้าคุณเลือกคือ หลังจากเงื่อนไขแรก จากนั้นเลือก อยู่ก่อนหรือเท่ากับ หรือถ้าคุณเลือกอยู่หลังหรือเท่ากับในเงื่อนไขแรก จากนั้นเลือก ก่อนเงื่อนไขที่สอง จากนั้นเลือก พารามิเตอร์ จากนั้นเลือก ช่วงท้าย
สิ่งสําคัญ: ตรวจสอบคิวรีที่มีค่าเท่ากับ (=) บน RangeStart หรือ RangeEnd แต่ไม่ใช่ทั้งสองอย่าง ถ้ามีค่าเท่ากับ (=) ในพารามิเตอร์ทั้งสอง แถวหนึ่งอาจเป็นไปตามเงื่อนไขสําหรับสองพาร์ติชัน ซึ่งอาจนําไปสู่ข้อมูลที่ซ้ํากันในแบบจําลองได้ ตัวอย่างเช่น
= Table.SelectRows(#"Changed Type", each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd)
อาจส่งผลให้มีข้อมูลที่ซ้ํากันถ้ามี OrderDate ที่เท่ากับทั้ง RangeStart และ RangeEndเลือก ตกลง เพื่อปิด
บนริบบอน หน้าแรก ใน ตัวแก้ไข Power Query ให้เลือก ปิด & นําไปใช้ Power Query จะโหลดข้อมูลตามตัวกรองที่กําหนดโดยพารามิเตอร์ RangeStart และ RangeEnd และตัวกรองอื่น ๆ ที่คุณกําหนดไว้
Power Query จะโหลดเฉพาะข้อมูลที่ระบุระหว่างพารามิเตอร์ RangeStart และ RangeEnd ตารางควรโหลดได้อย่างรวดเร็ว โดยขึ้นอยู่กับจํานวนข้อมูลในช่วงเวลานั้น ถ้าดูเหมือนว่าช้าและใช้กระบวนการมาก อาจเป็นไปได้ว่า คิวรีไม่ได้ทําการพับ
กําหนดนโยบาย
หลังจากที่คุณได้กําหนดพารามิเตอร์ RangeStart และ RangeEnd และข้อมูลที่กรองตามพารามิเตอร์เหล่านั้นแล้ว คุณจะต้องกําหนดนโยบายการรีเฟรชแบบเพิ่มหน่วย นโยบายนี้จะถูกนําไปใช้หลังจากเผยแพร่แบบจําลองไปยังบริการเท่านั้น และการดําเนินการรีเฟรชด้วยตนเองหรือตามกําหนดการจะดําเนินการ
ในมุมมองข้อมูล ให้คลิกขวาที่ตาราง ในบานหน้าต่าง ข้อมูล และเลือก การรีเฟรชแบบเพิ่มหน่วย
ในการรีเฟรชแบบเพิ่มหน่วยและข้อมูล>แบบเรียลไทม์ เลือกตาราง ตรวจสอบหรือเลือกตาราง ค่าเริ่มต้นของ กล่องรายการ เลือกตาราง คือตารางที่คุณเลือกในมุมมองข้อมูล
ระบุการตั้งค่าที่จําเป็น:
ใน ตั้งค่าช่วง>การนําเข้าและรีเฟรช แบบเพิ่มหน่วย ตารางนี้จะย้ายแถบเลื่อนไปยังเปิด ถ้าแถบเลื่อนถูกปิดใช้งาน นั่นหมายความว่านิพจน์ Power Query สําหรับตารางจะไม่รวมตัวกรองที่ยึดตามพารามิเตอร์ RangeStart และ RangeEnd
ในการเก็บถาวรข้อมูลเริ่มต้น ให้ระบุช่วงเวลาร้านค้าในอดีตที่คุณต้องการรวมไว้ในแบบจําลอง แถวทั้งหมดที่มีวันที่ในรอบระยะเวลานี้จะถูกโหลดลงในแบบจําลองในบริการ เว้นแต่ว่าใช้ตัวกรองอื่น ๆ
ในการรีเฟรชข้อมูลแบบเพิ่มหน่วยโดยเริ่มต้น ให้ระบุระยะเวลาการรีเฟรช แถวทั้งหมดที่มีวันที่ในรอบระยะเวลานี้จะถูกรีเฟรชในแบบจําลองทุกครั้งที่การดําเนินการรีเฟรชด้วยตนเองหรือตามกําหนดการดําเนินการโดยบริการของ Power BI
ระบุการตั้งค่าที่เลือกได้:
ใน เลือกการตั้งค่าที่เลือกได้ เลือก รับข้อมูลล่าสุดแบบเรียลไทม์ด้วย DirectQuery (Premium เท่านั้น) เพื่อรวมการเปลี่ยนแปลงข้อมูลล่าสุดที่เกิดขึ้นกับแหล่งข้อมูลหลังจากช่วงเวลาการรีเฟรชครั้งล่าสุด การตั้งค่านี้จะทําให้นโยบายการรีเฟรชแบบเพิ่มหน่วยเพิ่มพาร์ติชัน DirectQuery ไปยังตาราง
เลือก รีเฟรชเฉพาะวันที่ สมบูรณ์เพื่อรีเฟรชทั้งวันเท่านั้น ถ้าการดําเนินการรีเฟรชตรวจพบว่าหนึ่งวันไม่เสร็จสมบูรณ์ แถวสําหรับทั้งวันนั้นจะไม่ได้รับการรีเฟรช ตัวเลือกนี้จะเปิดใช้งานโดยอัตโนมัติเมื่อคุณเลือก รับข้อมูลล่าสุดในแบบเรียลไทม์ด้วย DirectQuery (Premium เท่านั้น)
เลือก ตรวจหาการเปลี่ยนแปลง ข้อมูล เพื่อระบุคอลัมน์วันที่/เวลาที่ใช้ในการระบุและรีเฟรชเฉพาะวันที่ข้อมูลมีการเปลี่ยนแปลงเท่านั้น ต้องมีคอลัมน์วันที่/เวลา ซึ่งโดยปกติแล้วเพื่อวัตถุประสงค์ในการตรวจสอบที่แหล่งข้อมูล คอลัมน์ นี้ไม่ควรเป็นคอลัมน์ เดียวกับที่ใช้ในการแบ่งพาร์ติชันข้อมูลด้วยพารามิเตอร์ RangeStart และ RangeEnd ค่าสูงสุดของคอลัมน์นี้จะถูกประเมินสําหรับแต่ละช่วงเวลาในช่วงที่เพิ่มขึ้น ถ้าไม่มีการเปลี่ยนแปลงตั้งแต่การรีเฟรชครั้งล่าสุด จะไม่มีการรีเฟรชช่วงเวลาปัจจุบัน สําหรับแบบจําลองที่เผยแพร่ไปยังความจุแบบพรีเมียม คุณยังสามารถระบุคิวรีแบบกําหนดเองได้ เมื่อต้องการเรียนรู้เพิ่มเติม ดู การรีเฟรชแบบเพิ่มหน่วยขั้นสูง - คิวรีแบบกําหนดเองสําหรับการตรวจหาการเปลี่ยนแปลงข้อมูล
นโยบายของคุณควรมีลักษณะดังนี้ ทั้งนี้ขึ้นอยู่กับการตั้งค่าของคุณ:
ตรวจสอบการตั้งค่าของคุณ จากนั้นเลือก นําไปใช้ เพื่อทําให้นโยบายการรีเฟรชเสร็จสมบูรณ์ ขั้นตอนนี้ไม่โหลดข้อมูล
บันทึกและเผยแพร่ไปยังบริการ
ตอนนี้พารามิเตอร์ RangeStart และ RangeEnd ของคุณ การกรอง และการรีเฟรชการตั้งค่านโยบายเสร็จสมบูรณ์ แล้วบันทึกแบบจําลองของคุณ แล้วเผยแพร่ไปยังบริการ หากแบบจําลองของคุณมีขนาดใหญ่ขึ้น ตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน รูปแบบพื้นที่จัดเก็บแบบจําลองขนาดใหญ่ก่อนที่จะ เรียกใช้การรีเฟรชครั้งแรกในบริการ
รีเฟรชแบบจําลอง
ในบริการ ให้รีเฟรชแบบจําลอง การรีเฟรชครั้งแรกจะโหลดข้อมูลใหม่และที่อัปเดตแล้วในระยะเวลาการรีเฟรชตลอดจนข้อมูลในอดีตสําหรับระยะเวลาการจัดเก็บทั้งหมด การรีเฟรชนี้อาจใช้เวลาสักครู่ ทั้งนี้ขึ้นอยู่กับจํานวนข้อมูล การรีเฟรชครั้งต่อมา ไม่ว่าด้วยตนเองหรือตามกําหนดการ จะเร็วกว่ามากเนื่องจากมีการใช้นโยบายการรีเฟรชแบบเพิ่มหน่วยและมีเพียงข้อมูลสําหรับช่วงเวลาที่ระบุในการตั้งค่านโยบายการรีเฟรช
แปลงวันที่เวลาเป็นจํานวนเต็ม
งานนี้จําเป็นถ้าตารางของคุณใช้คีย์ตัวแทนจํานวนเต็มแทนค่าวันที่/เวลาในคอลัมน์วันที่ที่คุณใช้สําหรับข้อกําหนดตัวกรอง RangeStart และ RangeEnd
ชนิดข้อมูลของพารามิเตอร์ RangeStart และ RangeEnd ต้องเป็นชนิดข้อมูลวันที่/เวลาโดยไม่คํานึงถึงชนิดข้อมูลของคอลัมน์วันที่ อย่างไรก็ตาม สําหรับแหล่งข้อมูลจํานวนมาก ตารางไม่มีคอลัมน์ของชนิดข้อมูลวันที่/เวลา แต่มีคอลัมน์วันที่ของคีย์ตัวแทนจํานวนเต็มในรูปแบบของ yyyymmdd
แทน โดยทั่วไปคุณไม่สามารถแปลงคีย์ตัวแทนจํานวนเต็มเหล่านี้เป็นชนิดข้อมูลวันที่/เวลาได้ เนื่องจากผลลัพธ์จะเป็นนิพจน์คิวรีแบบไม่พับ แต่คุณสามารถสร้างฟังก์ชันที่แปลงค่าวันที่/เวลาในพารามิเตอร์เพื่อให้ตรงกับคีย์ตัวแทนจํานวนเต็มของตารางแหล่งข้อมูลโดยไม่สูญเสียการพับ จากนั้นจะเรียกใช้ฟังก์ชันในขั้นตอนตัวกรอง จําเป็นต้องใช้ขั้นตอนการแปลงนี้หากตารางแหล่งข้อมูลประกอบด้วย เฉพาะ คีย์ตัวแทนเป็นชนิดข้อมูลจํานวนเต็ม
บนริบบอน หน้าแรก ใน ตัวแก้ไข Power Query ให้เลือกดรอปดาวน์ แหล่งข้อมูลใหม่ จากนั้นเลือก คิวรี่ว่างเปล่า
ในการตั้งค่าคิวรี ่ใส่ชื่อ ตัวอย่างเช่น DateKey จากนั้นในตัวแก้ไขสูตร ให้ใส่สูตรต่อไปนี้:
= (x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)
เมื่อต้องการทดสอบสูตร ใน ป้อนพารามิเตอร์ ให้ใส่ค่าวันที่/เวลา จากนั้นเลือก เรียก ถ้าสูตรถูกต้อง ค่าจํานวนเต็มสําหรับวันที่จะถูกส่งกลับ หลังจากตรวจสอบแล้ว ให้ลบคิวรีฟังก์ชันที่เรียกใช้ใหม่นี้
ใน คิวรี ให้เลือกตาราง จากนั้นแก้ไขสูตรคิวรีเพื่อเรียกใช้ฟังก์ชันด้วยพารามิเตอร์ RangeStart และ RangeEnd
= Table.SelectRows(#"Reordered Column OrderDateKey", each [OrderDateKey] > DateKey(RangeStart) and [OrderDateKey] <= DateKey(RangeEnd))